From df416f53d2dcb21c700802f5c2602d19f6d6c70c Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Thu, 30 Jun 2016 11:48:41 -0600 Subject: [PATCH] Use memcache for keystone_authtoken This change updates where we calculate the memcache server information to the globals hiera data and updates all the openstack services to use the heira memcached_servers key for consistency. Additionally all api services have been updated to configure the memcached servers for the keystone_authtoken middleware configuration to improve the responsiveness of the service. Change-Id: Id1034e22d79c3ea6b25575d9bcf8e8750a02365d Closes-Bug: #1597512 --- .../examples/ironic/tasks.yaml | 4 +-- .../examples/keystone/tasks.yaml | 3 +- .../examples/openstack-controller/tasks.yaml | 2 +- .../openstack_tasks/examples/roles/tasks.yaml | 5 +--- .../openstack_tasks/examples/swift/tasks.yaml | 4 +-- .../openstack_tasks/manifests/aodh/aodh.pp | 28 +++++++++---------- .../manifests/ceilometer/controller.pp | 3 ++ .../manifests/glance/glance.pp | 4 +++ .../openstack_tasks/manifests/heat/heat.pp | 5 ++-- .../manifests/ironic/ironic.pp | 3 ++ .../manifests/ironic/ironic_compute.pp | 6 ++-- .../manifests/keystone/keystone.pp | 3 +- .../manifests/murano/murano.pp | 9 ++++++ .../openstack_cinder/openstack_cinder.pp | 2 ++ .../openstack_controller.pp | 8 ++---- .../openstack_network/server_config.pp | 2 ++ .../manifests/roles/compute.pp | 9 ++---- .../manifests/roles/ironic_conductor.pp | 2 ++ .../manifests/sahara/sahara.pp | 2 ++ .../manifests/swift/parts/proxy.pp | 7 ++--- .../manifests/swift/proxy_storage.pp | 5 ++-- .../manifests/globals/globals.pp | 2 ++ .../osnailyfacter/templates/globals_yaml.erb | 2 ++ tests/noop/spec/hosts/aodh/aodh_spec.rb | 7 ++--- .../spec/hosts/ceilometer/controller_spec.rb | 2 ++ tests/noop/spec/hosts/glance/glance_spec.rb | 5 ++++ tests/noop/spec/hosts/heat/heat_spec.rb | 11 ++++---- .../spec/hosts/ironic/ironic-compute_spec.rb | 23 ++------------- tests/noop/spec/hosts/ironic/ironic_spec.rb | 2 ++ .../noop/spec/hosts/keystone/keystone_spec.rb | 24 ++-------------- tests/noop/spec/hosts/murano/murano_spec.rb | 3 ++ .../openstack-cinder/openstack-cinder_spec.rb | 3 ++ .../openstack-controller_spec.rb | 23 +++------------ .../openstack-network/server-config_spec.rb | 20 +++++++++++-- tests/noop/spec/hosts/roles/compute_spec.rb | 28 ++++--------------- .../spec/hosts/roles/ironic-conductor_spec.rb | 3 ++ tests/noop/spec/hosts/sahara/sahara_spec.rb | 4 ++- .../spec/hosts/swift/proxy_storage_spec.rb | 12 ++++---- 38 files changed, 135 insertions(+), 155 deletions(-) diff --git a/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml b/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml index bad6b6b33d..e5a00132d7 100644 --- a/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml @@ -78,11 +78,11 @@ $.get('amqp_hosts'), $.rabbit, $.get('nova_report_interval', '60'), $.get('nova_service_down_time', '180'), $.quantum_settings, - $.get('memcached_addresses'), + $.get('memcached_servers'), $.network_metadata.nodes.values().where( ('controller' in $.node_roles) or ('primary-controller' in $.node_roles)), - $.get('memcache_server_port'), $.get('use_ssl')) + $.get('use_ssl')) required_for: [deploy_end] requires: [primary-openstack-controller, openstack-controller, ironic-api] refresh_on: [nova_config, nova_paste_api_ini] diff --git a/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml b/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml index c7af8a769c..62056d904e 100644 --- a/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml @@ -13,8 +13,7 @@ $.quantum_settings.keystone, $.get('default_log_levels'), ('primary-controller' in $.roles), $.get('kombu_compression'), $.get('region'), $.public_ssl, $.get('use_ssl'), - $.get('memcache_server_port'), $.get('memcached_addresses'), - $.get('memcache_roles'), + $.get('memcached_servers'), $.network_metadata.nodes.values().where( ('controller' in $.node_roles) or ('primary-controller' in $.node_roles)), diff --git a/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml b/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml index 378282c8a4..9323224a17 100644 --- a/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml @@ -14,7 +14,7 @@ $.get('nova_service_down_time', '180'), $.rabbit, $.get('use_ssl'), $.get('kombu_compression'), $.get('glance_endpoint'), $.get('glance_api_servers'), $.get('region', 'RegionOne'), $.ironic, - $.get('memcached_addresses'), $.get('memcache_server_port'), + $.get('memcached_servers'), $.get('openstack_controller'), $.get('external_lb'), $.quantum_settings, $.get('database_vip'), $.nova_quota, $.use_vcenter, $.libvirt_type, $.network_metadata.nodes.values().where( diff --git a/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml b/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml index f9030aba1d..6f7f41f9d6 100644 --- a/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml @@ -32,10 +32,7 @@ $.get('block_device_allocate_retries', 300), $.get('block_device_allocate_retries_interval', 3), $.get('queue_provider', 'rabbit'), $.quantum_settings, - $.get('memcached_addresses', ''), $.get('memcache_roles', ''), - $.network_metadata.nodes.values().where( - $.network_roles.get('mgmt/memcache') != null), - $.get('memcache_server_port'), + $.get('memcached_servers', ''), $.network_metadata.nodes.values().where( $.node_roles.any($.matches('controller'))).network_roles.select( $.get('mgmt/messaging')), diff --git a/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml b/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml index 4d9e23d32d..79ddaa0106 100644 --- a/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml @@ -11,7 +11,7 @@ (changedAny($.network_scheme, $.network_metadata, $.swift, $.get('swift_master_role', 'primary-controller'), $.get('swift_object_roles'), ('primary-controller' in $.roles), - $.get('swift_proxy_roles'), $.get('memcached_addresses'), + $.get('swift_proxy_roles'), $.get('memcached_servers'), $.network_metadata.nodes.values().where( ('controller' in $.node_roles) or ('primary-controller' in $.node_roles)), @@ -21,7 +21,7 @@ $.network_metadata.nodes.values().where( $.node_roles.any($.matches('controller'))).network_roles.select( $.get('mgmt/messaging')), $.get('amqp_hosts'), - $.get('memcache_server_port'), $.ceilometer.enabled, $.mp, + $.ceilometer.enabled, $.mp, $.get('swift_partition'), $.get('deploy_swift_storage'))) cross-depends: - name: /glance/ diff --git a/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp b/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp index d24339add8..90a93b714f 100644 --- a/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp +++ b/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp @@ -77,8 +77,7 @@ class openstack_tasks::aodh::aodh { $ssl_hash = hiera_hash('use_ssl', {}) $public_cert = get_ssl_property($ssl_hash, $public_ssl_hash, 'keystone', 'public', 'path', ['']) - $memcache_address = get_network_role_property('mgmt/memcache', 'ipaddr') - $memcache_servers = "${memcache_address}:11211" + $memcached_servers = hiera('memcached_servers') $internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http') $internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$management_vip]) @@ -136,21 +135,22 @@ class openstack_tasks::aodh::aodh { # keystone aodh_config { - 'keystone_authtoken/memcache_servers': value => $memcache_servers; - 'keystone_authtoken/signing_dir' : value => '/tmp/keystone-signing-aodh'; + 'keystone_authtoken/signing_dir': value => '/tmp/keystone-signing-aodh'; } + class { '::aodh::api': - enabled => true, - manage_service => true, - package_ensure => 'present', - keystone_user => $aodh_user_name, - keystone_password => $aodh_user_password, - keystone_tenant => $tenant, - keystone_auth_uri => $keystone_auth_uri, - keystone_auth_url => $keystone_auth_url, - host => $aodh_api_bind_host, - port => $aodh_api_bind_port, + enabled => true, + manage_service => true, + package_ensure => 'present', + keystone_user => $aodh_user_name, + keystone_password => $aodh_user_password, + keystone_tenant => $tenant, + keystone_auth_uri => $keystone_auth_uri, + keystone_auth_url => $keystone_auth_url, + host => $aodh_api_bind_host, + port => $aodh_api_bind_port, + memcached_servers => $memcached_servers, } $haproxy_stats_url = "http://${management_vip}:10000/;csv" diff --git a/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp b/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp index 345de088f8..8787b3951c 100644 --- a/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp +++ b/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp @@ -46,6 +46,8 @@ class openstack_tasks::ceilometer::controller { $keystone_identity_uri = "${internal_auth_protocol}://${internal_auth_endpoint}:35357/" $keystone_auth_uri = "${internal_auth_protocol}://${internal_auth_endpoint}:5000/" + $memcached_servers = hiera('memcached_servers') + #as $ssl default value in ceilometer::wsgi::apache is true and #we use SSL at HAproxy, but not the API host we should set 'false' #value for $ssl. @@ -195,6 +197,7 @@ class openstack_tasks::ceilometer::controller { keystone_user => $ceilometer_hash['user'], keystone_password => $ceilometer_hash['user_password'], keystone_tenant => $ceilometer_hash['tenant'], + memcached_servers => $memcached_servers, host => $api_bind_address, service_name => 'httpd', api_workers => $service_workers, diff --git a/deployment/puppet/openstack_tasks/manifests/glance/glance.pp b/deployment/puppet/openstack_tasks/manifests/glance/glance.pp index e047553ac1..1179633b74 100644 --- a/deployment/puppet/openstack_tasks/manifests/glance/glance.pp +++ b/deployment/puppet/openstack_tasks/manifests/glance/glance.pp @@ -28,6 +28,7 @@ class openstack_tasks::glance::glance { $ironic_hash = hiera_hash('ironic', {}) $primary_controller = hiera('primary_controller') $kombu_compression = hiera('kombu_compression', $::os_service_default) + $memcached_servers = hiera('memcached_servers') $override_configuration = hiera_hash('configuration', {}) @@ -175,6 +176,7 @@ class openstack_tasks::glance::glance { token_cache_time => '-1', image_cache_stall_time => '86400', image_cache_max_size => $glance_image_cache_max_size, + memcached_servers => $memcached_servers, } # TODO (dmburmistrov): remove this workaround after puppet-glance @@ -220,6 +222,7 @@ class openstack_tasks::glance::glance { auth_region => $region, signing_dir => '/tmp/keystone-signing-glance', token_cache_time => '-1', + memcached_servers => $memcached_servers, } glance_api_config { @@ -255,6 +258,7 @@ class openstack_tasks::glance::glance { sync_db => $primary_controller, signing_dir => '/tmp/keystone-signing-glance', os_region_name => $region, + memcached_servers => $memcached_servers, } class { '::glance::notify::rabbitmq': diff --git a/deployment/puppet/openstack_tasks/manifests/heat/heat.pp b/deployment/puppet/openstack_tasks/manifests/heat/heat.pp index 0fe6aaf2be..17139de5f0 100644 --- a/deployment/puppet/openstack_tasks/manifests/heat/heat.pp +++ b/deployment/puppet/openstack_tasks/manifests/heat/heat.pp @@ -48,7 +48,7 @@ class openstack_tasks::heat::heat { $syslog_log_facility = hiera('syslog_log_facility_heat') $deployment_mode = hiera('deployment_mode') $bind_host = get_network_role_property('heat/api', 'ipaddr') - $memcache_address = get_network_role_property('mgmt/memcache', 'ipaddr') + $memcached_servers = hiera('memcached_servers') $keystone_user = pick($heat_hash['user'], 'heat') $keystone_tenant = pick($heat_hash['tenant'], 'services') $region = hiera('region', 'RegionOne') @@ -123,7 +123,7 @@ class openstack_tasks::heat::heat { heat_config { 'cache/enabled': value => true; 'cache/backend': value => 'oslo_cache.memcache_pool'; - 'cache/memcache_servers': value => "${memcache_address}:11211"; + 'cache/memcache_servers': value => join(any2array($memcached_servers), ',') } #------------------------------ @@ -239,6 +239,7 @@ class openstack_tasks::heat::heat { database_max_retries => $max_retries, kombu_compression => $kombu_compression, + memcached_servers => $memcached_servers } # Engine diff --git a/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp b/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp index 65e1c6fc30..5b0fc69e38 100644 --- a/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp +++ b/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp @@ -26,6 +26,8 @@ class openstack_tasks::ironic::ironic { $amqp_durable_queues = pick($ironic_hash['amqp_durable_queues'], false) $kombu_compression = hiera('kombu_compression', $::os_service_default) + $memcached_servers = hiera('memcached_servers') + $db_type = 'mysql' $db_host = pick($ironic_hash['db_host'], $database_vip) $db_user = pick($ironic_hash['db_user'], 'ironic') @@ -98,5 +100,6 @@ class openstack_tasks::ironic::ironic { admin_password => $ironic_user_password, neutron_url => "${neutron_protocol}://${neutron_endpoint}:9696", public_endpoint => "${public_protocol}://${public_address}:6385", + memcached_servers => $memcached_servers, } } diff --git a/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp b/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp index 952457d392..8f84f9db03 100644 --- a/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp @@ -56,9 +56,7 @@ class openstack_tasks::ironic::ironic_compute { 'extra' => $extra_params }) - $memcached_servers = hiera('memcached_addresses') - $memcached_port = hiera('memcache_server_port', '11211') - $memcached_addresses = suffix($memcached_servers, ":${memcached_port}") + $memcached_servers = hiera('memcached_servers') $notify_on_state_change = 'vm_and_task_state' $ssl_hash = hiera_hash('use_ssl', {}) @@ -115,7 +113,7 @@ class openstack_tasks::ironic::ironic_compute { report_interval => $nova_report_interval, service_down_time => $nova_service_down_time, notify_on_state_change => $notify_on_state_change, - memcached_servers => $memcached_addresses, + memcached_servers => $memcached_servers, } class { '::nova::compute': diff --git a/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp b/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp index 035d9f5be2..76aad25e87 100644 --- a/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp +++ b/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp @@ -87,9 +87,8 @@ class openstack_tasks::keystone::keystone { $local_address_for_bind = get_network_role_property('keystone/api', 'ipaddr') - $memcache_server_port = hiera('memcache_server_port', '11211') $memcache_pool_maxsize = '100' - $memcache_servers = suffix(hiera('memcached_addresses'), inline_template(':<%= @memcache_server_port %>')) + $memcache_servers = hiera('memcached_servers') $cache_backend = 'keystone.cache.memcache_pool' $token_caching = false $token_driver = 'keystone.token.persistence.backends.memcache_pool.Token' diff --git a/deployment/puppet/openstack_tasks/manifests/murano/murano.pp b/deployment/puppet/openstack_tasks/manifests/murano/murano.pp index 5c7986bfc1..a519da51af 100644 --- a/deployment/puppet/openstack_tasks/manifests/murano/murano.pp +++ b/deployment/puppet/openstack_tasks/manifests/murano/murano.pp @@ -28,6 +28,7 @@ class openstack_tasks::murano::murano { $ssl_hash = hiera_hash('use_ssl', {}) $primary_controller = hiera('primary_controller') $kombu_compression = hiera('kombu_compression', $::os_service_default) + $memcached_servers = hiera('memcached_servers') $public_auth_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'keystone', 'public', 'protocol', 'http') $public_auth_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'keystone', 'public', 'hostname', [$public_ip]) @@ -145,8 +146,16 @@ class openstack_tasks::murano::murano { external_network => $external_network, use_trusts => true, kombu_compression => $kombu_compression, + # TODO(aschultz): https://review.openstack.org/336261 + #memcached_servers => $memcached_servers, } + # TODO(aschultz): remove this and switch to the murano param + ensure_resource('murano_config', 'keystone_authtoken/memcached_servers', { + value => join(any2array($memcached_servers), ',') + }) + + class { '::murano::api': host => $api_bind_host, port => $api_bind_port, diff --git a/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp b/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp index 24c46ff0ed..89decd3b1c 100644 --- a/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp +++ b/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp @@ -22,6 +22,7 @@ class openstack_tasks::openstack_cinder::openstack_cinder { $primary_controller = hiera('primary_controller') $proxy_port = hiera('proxy_port', '8080') $kombu_compression = hiera('kombu_compression', $::os_service_default) + $memcached_servers = hiera('memcached_servers') $db_type = 'mysql' $db_host = pick($cinder_hash['db_host'], hiera('database_vip')) @@ -180,6 +181,7 @@ class openstack_tasks::openstack_cinder::openstack_cinder { nova_catalog_admin_info => 'compute:nova:adminURL', nova_catalog_info => 'compute:nova:internalURL', sync_db => $primary_controller, + memcached_servers => $memcached_servers, } class { 'cinder::scheduler': } diff --git a/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp b/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp index b470842089..2e2271fc5b 100644 --- a/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp +++ b/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp @@ -69,8 +69,6 @@ class openstack_tasks::openstack_controller::openstack_controller { $ironic_hash = hiera_hash('ironic', {}) - $memcached_server = hiera('memcached_addresses') - $memcached_port = hiera('memcache_server_port', '11211') $openstack_controller_hash = hiera_hash('openstack_controller', {}) $external_lb = hiera('external_lb', false) @@ -164,7 +162,7 @@ class openstack_tasks::openstack_controller::openstack_controller { } } - $memcached_addresses = suffix($memcached_server, inline_template(":<%= @memcached_port %>")) + $memcached_servers = hiera('memcached_servers') $rpc_backend = 'nova.openstack.common.rpc.impl_kombu' $amqp_hosts = hiera('amqp_hosts','') @@ -200,7 +198,7 @@ class openstack_tasks::openstack_controller::openstack_controller { notify_api_faults => pick($nova_hash['notify_api_faults'], false), notification_driver => $ceilometer_hash['notification_driver'], notify_on_state_change => $notify_on_state_change, - memcached_servers => $memcached_addresses, + memcached_servers => $memcached_servers, cinder_catalog_info => pick($nova_hash['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'), database_max_pool_size => $max_pool_size, database_max_retries => $max_retries, @@ -219,7 +217,7 @@ class openstack_tasks::openstack_controller::openstack_controller { class { '::nova::cache': enabled => true, backend => 'oslo_cache.memcache_pool', - memcache_servers => $memcached_addresses, + memcache_servers => $memcached_servers, } } else { ensure_packages($pymemcache_package_name) diff --git a/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp b/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp index 61f10f9eda..230a38b474 100644 --- a/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp +++ b/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp @@ -62,6 +62,7 @@ class openstack_tasks::openstack_network::server_config { $project_name = pick($neutron_config['keystone']['admin_tenant'], 'services') $region_name = hiera('region', 'RegionOne') $auth_endpoint_type = 'internalURL' + $memcached_servers = hiera('memcached_servers') $ssl_hash = hiera_hash('use_ssl', {}) @@ -229,6 +230,7 @@ class openstack_tasks::openstack_network::server_config { qos_notification_drivers => $qos_notification_drivers, enabled => true, manage_service => true, + memcached_servers => $memcached_servers, } include ::neutron::params diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp index 520cff3b2b..60985302e7 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp @@ -80,10 +80,7 @@ class openstack_tasks::roles::compute { ##CALCULATED PARAMETERS - # TODO(xarses): Wait Nova compute uses memcache? - $cache_server_ip = hiera('memcached_addresses') - $cache_server_port = hiera('memcache_server_port', '11211') - $memcached_addresses = suffix($cache_server_ip, inline_template(':<%= @cache_server_port %>')) + $memcached_servers = hiera('memcached_servers') # TODO(xarses): We need to validate this is needed if ($storage_hash['volumes_lvm']) { @@ -279,7 +276,7 @@ class openstack_tasks::roles::compute { service_down_time => $nova_service_down_time, notify_on_state_change => $notify_on_state_change, notification_driver => $ceilometer_hash['notification_driver'], - memcached_servers => $memcached_addresses, + memcached_servers => $memcached_servers, cinder_catalog_info => pick($nova_hash_real['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'), kombu_compression => $kombu_compression, block_device_allocate_retries => $block_device_allocate_retries, @@ -289,7 +286,7 @@ class openstack_tasks::roles::compute { class { '::nova::cache': enabled => $nova_cache, backend => 'oslo_cache.memcache_pool', - memcache_servers => $memcached_addresses, + memcache_servers => $memcached_servers, } class { '::nova::availability_zone': diff --git a/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp b/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp index f5227a041b..b9d0722b2c 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp @@ -29,6 +29,7 @@ class openstack_tasks::roles::ironic_conductor { $ironic_user = pick($ironic_hash['auth_name'],'ironic') $ironic_user_password = pick($ironic_hash['user_password'],'ironic') $ironic_swift_tempurl_key = pick($ironic_hash['swift_tempurl_key'],'ironic') + $memcached_servers = hiera('memcached_servers') $ssl_hash = hiera('use_ssl', {}) $neutron_endpoint_default = hiera('neutron_endpoint', $management_vip) @@ -106,6 +107,7 @@ class openstack_tasks::roles::ironic_conductor { 'keystone_authtoken/admin_tenant_name': value => $ironic_tenant; 'keystone_authtoken/admin_user': value => $ironic_user; 'keystone_authtoken/admin_password': value => $ironic_user_password, secret => true; + 'keystone_authtoken/memcached_servers': value => join(any2array($memcached_servers), ','); 'glance/swift_temp_url_key': value => $ironic_swift_tempurl_key; 'glance/swift_endpoint_url': value => "http://${baremetal_vip}:8080"; 'glance/temp_url_endpoint_type': value => $temp_url_endpoint_type; diff --git a/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp b/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp index b77079a84a..6297811279 100644 --- a/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp +++ b/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp @@ -33,6 +33,7 @@ class openstack_tasks::sahara::sahara { $admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip]) $admin_identity_uri = "${admin_identity_protocol}://${admin_identity_address}:35357" $kombu_compression = hiera('kombu_compression', $::os_service_default) + $memcached_servers = hiera('memcached_servers') ################################################################# @@ -113,6 +114,7 @@ class openstack_tasks::sahara::sahara { rabbit_port => $amqp_port, rabbit_hosts => split($amqp_hosts, ','), kombu_compression => $kombu_compression, + memcached_servers => $memcached_servers, } if $public_ssl_hash['services'] { diff --git a/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp b/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp index 58069e265d..81d64a2d8b 100644 --- a/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp +++ b/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp @@ -36,8 +36,7 @@ class openstack_tasks::swift::parts::proxy ( $ratelimit_rate_buffer_seconds = 5, $ratelimit_account_ratelimit = 0, $package_ensure = 'present', - $swift_proxies_cache = ['127.0.0.1'], - $cache_server_port = '11211', + $memcached_servers = '127.0.0.1:11211', $primary_proxy = false, $swift_devices = undef, $master_swift_proxy_ip = undef, @@ -123,9 +122,7 @@ class openstack_tasks::swift::parts::proxy ( '::swift::proxy::slo', '::swift::proxy::container_sync']: } - $cache_addresses = join(suffix($swift_proxies_cache, ":${cache_server_port}"), ',') - - class { '::swift::proxy::cache': memcache_servers => split($cache_addresses, ',') } + class { '::swift::proxy::cache': memcache_servers => $memcached_servers } class { '::swift::proxy::ratelimit': clock_accuracy => $ratelimit_clock_accuracy, diff --git a/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp b/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp index ce78620f12..de23cbbf0b 100644 --- a/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp +++ b/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp @@ -11,7 +11,7 @@ class openstack_tasks::swift::proxy_storage { $swift_nodes = hiera_hash('swift_nodes', {}) $swift_operator_roles = pick($swift_hash['swift_operator_roles'], ['admin', 'SwiftOperator', '_member_']) $swift_proxies_addr_list = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('swift_proxies', {}), 'swift/api')) - $memcaches_addr_list = hiera('memcached_addresses') + $memcached_servers = hiera('memcached_servers') $is_primary_swift_proxy = hiera('is_primary_swift_proxy', false) $proxy_port = hiera('proxy_port', '8080') $storage_hash = hiera_hash('storage') @@ -79,8 +79,7 @@ class openstack_tasks::swift::proxy_storage { class { 'openstack_tasks::swift::parts::proxy': swift_user_password => $swift_hash['user_password'], swift_operator_roles => $swift_operator_roles, - swift_proxies_cache => $memcaches_addr_list, - cache_server_port => hiera('memcache_server_port', '11211'), + memcached_servers => $memcached_servers, ring_part_power => $ring_part_power, ring_replicas => $ring_replicas, primary_proxy => $is_primary_swift_proxy, diff --git a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp index 21e2383b8c..74711e419a 100644 --- a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp +++ b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp @@ -487,6 +487,8 @@ class osnailyfacter::globals::globals { $memcache_nodes = get_nodes_hash_by_roles($network_metadata, $memcache_roles) $memcached_addresses = ipsort(values(get_node_to_ipaddr_map_by_network_role($memcache_nodes, 'mgmt/memcache'))) } + $memcached_port = hiera('memcache_server_port', '11211') + $memcached_servers = suffix($memcached_addresses, ":${memcached_port}") $cinder_backends = { 'volumes_ceph' => $storage_hash['volumes_ceph'] ? { true => 'RBD-backend', default => false }, diff --git a/deployment/puppet/osnailyfacter/templates/globals_yaml.erb b/deployment/puppet/osnailyfacter/templates/globals_yaml.erb index f0fa13d65f..32a61f805e 100644 --- a/deployment/puppet/osnailyfacter/templates/globals_yaml.erb +++ b/deployment/puppet/osnailyfacter/templates/globals_yaml.erb @@ -115,6 +115,8 @@ <% globals.store "public_vrouter_vip", @public_vrouter_vip -%> <% globals.store "memcache_roles", @memcache_roles -%> <% globals.store "memcached_addresses", @memcached_addresses -%> +<% globals.store "memcached_port", @memcached_port -%> +<% globals.store "memcached_servers", @memcached_servers -%> <% globals.store "swift_master_role", @swift_master_role -%> <% globals.store "swift_nodes", @swift_nodes -%> <% globals.store "swift_proxies", @swift_proxies -%> diff --git a/tests/noop/spec/hosts/aodh/aodh_spec.rb b/tests/noop/spec/hosts/aodh/aodh_spec.rb index a4496efe77..96c3782b7a 100644 --- a/tests/noop/spec/hosts/aodh/aodh_spec.rb +++ b/tests/noop/spec/hosts/aodh/aodh_spec.rb @@ -15,10 +15,7 @@ describe manifest do Noop.puppet_function 'prepare_network_config', network_scheme end - let(:memcache_address) do - prepare - Noop.puppet_function 'get_network_role_property', 'mgmt/memcache', 'ipaddr' - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:aodh_api_bind_host) do Noop.puppet_function 'get_network_role_property', 'aodh/api', 'ipaddr' @@ -82,7 +79,7 @@ describe manifest do it 'should configure "keystone_authtoken/" section' do - should contain_aodh_config('keystone_authtoken/memcache_servers').with(:value => "#{memcache_address}:11211") + should contain_aodh_config('keystone_authtoken/memcached_servers').with(:value => memcached_servers.join(',')) should contain_aodh_config('keystone_authtoken/signing_dir').with(:value => keystone_signing_dir) should contain_aodh_config('keystone_authtoken/auth_url').with(:value => keystone_auth_url) should contain_aodh_config('keystone_authtoken/auth_uri').with(:value => keystone_auth_uri) diff --git a/tests/noop/spec/hosts/ceilometer/controller_spec.rb b/tests/noop/spec/hosts/ceilometer/controller_spec.rb index 4e8bc9de99..c7ed87df4a 100644 --- a/tests/noop/spec/hosts/ceilometer/controller_spec.rb +++ b/tests/noop/spec/hosts/ceilometer/controller_spec.rb @@ -56,6 +56,7 @@ describe manifest do ssl = 'false' + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let (:api_bind_address) do api_bind_address = Noop.puppet_function('get_network_role_property', 'ceilometer/api', 'ipaddr') end @@ -91,6 +92,7 @@ describe manifest do 'keystone_user' => ceilometer_user, 'keystone_password' => ceilometer_user_password, 'keystone_tenant' => ceilometer_tenant, + 'memcached_servers' => memcached_servers, 'host' => api_bind_address, 'service_name' => 'httpd', ) diff --git a/tests/noop/spec/hosts/glance/glance_spec.rb b/tests/noop/spec/hosts/glance/glance_spec.rb index 51821d0c1d..4b18a77367 100644 --- a/tests/noop/spec/hosts/glance/glance_spec.rb +++ b/tests/noop/spec/hosts/glance/glance_spec.rb @@ -66,6 +66,8 @@ describe manifest do let(:identity_uri) { "#{admin_auth_protocol}://#{admin_auth_address}:35357/" } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + it 'should select right protocols and addresses for auth' do should contain_class('glance::api').with( 'auth_uri' => auth_uri, @@ -116,6 +118,7 @@ describe manifest do should contain_glance_api_config('keystone_authtoken/username').with_value(glance_config.fetch('user', 'glance')) should contain_glance_api_config('keystone_authtoken/password').with_value(glance_config.fetch('user_password')) should contain_glance_api_config('keystone_authtoken/project_name').with_value(glance_config.fetch('project_name', 'services')) + should contain_glance_api_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end it 'should configure glance glare config' do @@ -127,6 +130,7 @@ describe manifest do should contain_glance_glare_config('glance_store/os_region_name').with_value(region) should contain_glance_glare_config('keystone_authtoken/signing_dir').with_value('/tmp/keystone-signing-glance') should contain_glance_glare_config('keystone_authtoken/token_cache_time').with_value('-1') + should contain_glance_glare_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end if $glance_backend == 'rbd' @@ -155,6 +159,7 @@ describe manifest do should contain_glance_registry_config('database/max_retries').with_value(max_retries) should contain_glance_registry_config('glance_store/os_region_name').with_value(region) should contain_glance_registry_config('keystone_authtoken/signing_dir').with_value('/tmp/keystone-signing-glance') + should contain_glance_registry_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end if use_syslog diff --git a/tests/noop/spec/hosts/heat/heat_spec.rb b/tests/noop/spec/hosts/heat/heat_spec.rb index 213292ad07..6df4ee19b1 100644 --- a/tests/noop/spec/hosts/heat/heat_spec.rb +++ b/tests/noop/spec/hosts/heat/heat_spec.rb @@ -24,10 +24,7 @@ describe manifest do Noop.puppet_function 'prepare_network_config', network_scheme end - let(:memcache_address) do - prepare - Noop.puppet_function 'get_network_role_property', 'mgmt/memcache', 'ipaddr' - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:heat_ha_engine) do Noop.hiera 'heat_ha_engine', true @@ -122,6 +119,10 @@ describe manifest do ) end + it 'should configure memcache for keystone authtoken' do + should contain_heat_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) + end + it 'should set empty trusts_delegated_roles for heat engine' do should contain_class('heat::engine').with( 'trusts_delegated_roles' => [], @@ -140,7 +141,7 @@ describe manifest do it 'should configure caching for validation process' do should contain_heat_config('cache/enabled').with_value('true') should contain_heat_config('cache/backend').with_value('oslo_cache.memcache_pool') - should contain_heat_config('cache/memcache_servers').with_value("#{memcache_address}:11211") + should contain_heat_config('cache/memcache_servers').with_value(memcached_servers.join(',')) end it 'should configure urls for metadata, cloudwatch and waitcondition servers' do diff --git a/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb b/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb index c00659c86a..95b34285ac 100644 --- a/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb +++ b/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb @@ -21,11 +21,6 @@ describe manifest do ironic_user_password = Noop.hiera_structure 'ironic/user_password' ironic_enabled = Noop.hiera_structure 'ironic/enabled' - network_metadata = Noop.hiera 'network_metadata' - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' - database_vip = Noop.hiera('database_vip') nova_db_password = Noop.hiera_structure 'nova/db_password', 'nova' nova_db_user = Noop.hiera_structure 'nova/db_user', 'nova' @@ -39,21 +34,7 @@ describe manifest do nova_notification_driver = [] end - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:ssl_hash) { Noop.hiera_hash 'use_ssl', {} } let(:admin_auth_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'keystone', 'admin','protocol','http' } @@ -84,7 +65,7 @@ describe manifest do it 'nova config should contain right memcached servers list' do should contain_nova_config('keystone_authtoken/memcached_servers').with( - 'value' => memcache_servers, + 'value' => memcached_servers.join(','), ) end diff --git a/tests/noop/spec/hosts/ironic/ironic_spec.rb b/tests/noop/spec/hosts/ironic/ironic_spec.rb index e3f641995f..5540017c41 100644 --- a/tests/noop/spec/hosts/ironic/ironic_spec.rb +++ b/tests/noop/spec/hosts/ironic/ironic_spec.rb @@ -46,6 +46,7 @@ if ironic_enabled let(:neutron_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'neutron','internal','protocol','http' } let(:neutron_address) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'neutron','internal','hostname', neutron_endpoint_default } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } it 'should configure default_log_levels' do should contain_ironic_config('DEFAULT/default_log_levels').with_value(default_log_levels.sort.join(',')) @@ -69,6 +70,7 @@ if ironic_enabled 'admin_tenant_name' => admin_tenant, 'admin_user' => admin_user, 'admin_password' => admin_password, + 'memcached_servers' => memcached_servers, 'neutron_url' => "#{neutron_protocol}://#{neutron_address}:9696", 'public_endpoint' => "#{public_protocol}://#{public_address}:6385" ) diff --git a/tests/noop/spec/hosts/keystone/keystone_spec.rb b/tests/noop/spec/hosts/keystone/keystone_spec.rb index 79c8426ccb..8e4d3c4e60 100644 --- a/tests/noop/spec/hosts/keystone/keystone_spec.rb +++ b/tests/noop/spec/hosts/keystone/keystone_spec.rb @@ -19,26 +19,8 @@ describe manifest do # TODO All this stuff should be moved to shared examples controller* tests. keystone_hash = Noop.hiera_structure 'keystone' workers_max = Noop.hiera 'workers_max' - network_metadata = Noop.hiera_hash 'network_metadata' - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:configuration_override) do Noop.hiera_structure 'configuration' @@ -179,8 +161,8 @@ describe manifest do should contain_keystone_config('token/caching').with(:value => 'false') should contain_keystone_config('cache/enabled').with(:value => 'true') should contain_keystone_config('cache/backend').with(:value => 'keystone.cache.memcache_pool') - should contain_keystone_config('memcache/servers').with(:value => memcache_servers) - should contain_keystone_config('cache/memcache_servers').with(:value => memcache_servers) + should contain_keystone_config('memcache/servers').with(:value => memcached_servers.join(',')) + should contain_keystone_config('cache/memcache_servers').with(:value => memcached_servers.join(',')) should contain_keystone_config('cache/memcache_dead_retry').with(:value => '60') should contain_keystone_config('cache/memcache_socket_timeout').with(:value => '1') should contain_keystone_config('cache/memcache_pool_maxsize').with(:value => '1000') diff --git a/tests/noop/spec/hosts/murano/murano_spec.rb b/tests/noop/spec/hosts/murano/murano_spec.rb index ee5889ef4b..a3b5ce664e 100644 --- a/tests/noop/spec/hosts/murano/murano_spec.rb +++ b/tests/noop/spec/hosts/murano/murano_spec.rb @@ -58,6 +58,8 @@ describe manifest do let(:db_host) { Noop.hiera_structure('murano/db_host', service_endpoint) } let(:db_password) { Noop.hiera_structure('murano/db_password') } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + let(:predefined_networks) { Noop.hiera_structure('neutron_config/predefined_networks') } let(:default_repository_url) { 'http://storage.apps.openstack.org' } @@ -191,6 +193,7 @@ describe manifest do 'service_port' => api_bind_port, 'external_network' => external_network, ) + should contain_murano_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end it 'should configure default_log_levels' do diff --git a/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb b/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb index bdd6851047..53801599e7 100644 --- a/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb +++ b/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb @@ -61,6 +61,8 @@ describe manifest do let(:glance_endpoint) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'glance','internal','hostname', glance_endpoint_default} let(:glance_api_servers) { Noop.hiera 'glance_api_servers', "#{glance_protocol}://#{glance_endpoint}:9292" } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + it 'should configure default_log_levels' do should contain_cinder_config('DEFAULT/default_log_levels').with_value(default_log_levels.sort.join(',')) end @@ -212,6 +214,7 @@ describe manifest do 'bind_host' => bind_host, 'identity_uri' => identity_uri, 'keymgr_encryption_auth_url' => "#{identity_uri}/v3", + 'memcached_servers' => memcached_servers, ) } it { is_expected.to contain_class('cinder::glance').with( diff --git a/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb b/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb index 0ed7f2a5c4..82fc494d85 100644 --- a/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb +++ b/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb @@ -34,25 +34,9 @@ describe manifest do workers_max = Noop.hiera 'workers_max' network_metadata = Noop.hiera_hash('network_metadata') - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' use_cache = Noop.hiera_structure 'nova/use_cache', true - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } primary_controller = Noop.hiera 'primary_controller' service_endpoint = Noop.hiera 'service_endpoint' @@ -192,7 +176,7 @@ describe manifest do it 'nova config should contain right memcached servers list' do should contain_nova_config('keystone_authtoken/memcached_servers').with( - 'value' => memcache_servers, + 'value' => memcached_servers.join(','), ) end @@ -228,6 +212,7 @@ describe manifest do :database_max_retries => max_retries, :database_max_overflow => max_overflow, :notify_on_state_change => 'vm_and_task_state', + :memcached_servers => memcached_servers, ) end @@ -240,7 +225,7 @@ describe manifest do 'value' => true, ) should contain_nova_config('cache/memcache_servers').with( - 'value' => memcache_servers, + 'value' => memcached_servers.join(','), ) end end diff --git a/tests/noop/spec/hosts/openstack-network/server-config_spec.rb b/tests/noop/spec/hosts/openstack-network/server-config_spec.rb index a30ce04e94..026838170a 100644 --- a/tests/noop/spec/hosts/openstack-network/server-config_spec.rb +++ b/tests/noop/spec/hosts/openstack-network/server-config_spec.rb @@ -15,6 +15,15 @@ describe manifest do end shared_examples 'catalog' do + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + + it 'should configure memcache servers' do + should contain_class('neutron::server').with( + 'memcached_servers' => memcached_servers, + ) + end + + # TODO(aschultz): this entire test needs to be cleaned up, LP#1598296 if Noop.hiera('role') =~ /controller/ let(:network_scheme) do Noop.hiera_hash('network_scheme', {}) @@ -192,9 +201,14 @@ describe manifest do end end - it { should contain_class('neutron::server').with('manage_service' => 'true')} - it { should contain_class('neutron::server').with('enabled' => 'true')} - it { should contain_class('neutron::server').with('agent_down_time' => neutron_config['neutron_agent_down_time'])} + it 'configures neutron::server' do + should contain_class('neutron::server').with( + 'manage_service' => 'true', + 'enabled' => 'true', + 'agent_down_time' => neutron_config['neutron_agent_down_time'], + ) + + end it 'dvr' do should contain_class('neutron::server').with('router_distributed' => dvr) diff --git a/tests/noop/spec/hosts/roles/compute_spec.rb b/tests/noop/spec/hosts/roles/compute_spec.rb index 664d8b8a0c..a9bc8ce9d9 100644 --- a/tests/noop/spec/hosts/roles/compute_spec.rb +++ b/tests/noop/spec/hosts/roles/compute_spec.rb @@ -15,11 +15,7 @@ describe manifest do shared_examples 'catalog' do - network_metadata = Noop.hiera 'network_metadata' - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' - + kombu_compression = Noop.hiera 'kombu_compression', '' ironic_enabled = Noop.hiera_structure 'ironic/enabled' let(:facts) { @@ -29,21 +25,7 @@ describe manifest do }) } - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let (:memcached_servers) { Noop.hiera 'memcached_servers' } let(:nova_hash) do Noop.hiera_structure 'nova' @@ -345,8 +327,8 @@ describe manifest do ) end it 'nova config should contain right memcached servers list' do - should contain_nova_config('keystone_authtoken/memcached_servers').with( - 'value' => memcache_servers, + should contain_class('nova').with( + :memcached_servers => memcached_servers ) end @@ -354,7 +336,7 @@ describe manifest do should contain_class('nova::cache').with( :enabled => use_cache, :backend => 'oslo_cache.memcache_pool', - :memcache_servers => memcache_servers.split(','), + :memcache_servers => memcached_servers, ) end diff --git a/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb b/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb index 166cb87a7e..0b8e857ec1 100644 --- a/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb +++ b/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb @@ -17,6 +17,8 @@ describe manifest do ironic_db_user = Noop.hiera_structure 'ironic/db_user', 'ironic' ironic_db_name = Noop.hiera_structure 'ironic/db_name', 'ironic' + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + if ironic_enabled it 'should ensure that ironic-fa-deploy is installed' do should contain_package('ironic-fa-deploy').with('ensure' => 'present') @@ -70,6 +72,7 @@ describe manifest do should contain_ironic_config('keystone_authtoken/auth_uri').with('value' => internal_auth_uri) should contain_ironic_config('keystone_authtoken/identity_uri').with('value' => admin_identity_uri) should contain_ironic_config('keystone_authtoken/admin_user').with('value' => ironic_user) + should contain_ironic_config('keystone_authtoken/memcached_servers').with('value' => memcached_servers.join(',')) should contain_ironic_config('glance/temp_url_endpoint_type').with('value' => temp_url_endpoint_type) end diff --git a/tests/noop/spec/hosts/sahara/sahara_spec.rb b/tests/noop/spec/hosts/sahara/sahara_spec.rb index adda0038bf..933daa3ec2 100644 --- a/tests/noop/spec/hosts/sahara/sahara_spec.rb +++ b/tests/noop/spec/hosts/sahara/sahara_spec.rb @@ -24,6 +24,7 @@ describe manifest do let(:service_endpoint) { Noop.hiera('service_endpoint') } let(:public_vip) { Noop.hiera('public_vip') } let(:internal_net) { Noop.hiera_structure('neutron_config/default_private_net', 'admin_internal_net') } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:network_scheme) do Noop.hiera_hash 'network_scheme' @@ -138,7 +139,8 @@ describe manifest do 'rabbit_port' => amqp_port, 'rabbit_hosts' => amqp_hosts.split(","), 'host' => bind_address, - 'port' => '8386' + 'port' => '8386', + 'memcached_servers' => memcached_servers, ) end diff --git a/tests/noop/spec/hosts/swift/proxy_storage_spec.rb b/tests/noop/spec/hosts/swift/proxy_storage_spec.rb index d2c867521a..4434a5f9c1 100644 --- a/tests/noop/spec/hosts/swift/proxy_storage_spec.rb +++ b/tests/noop/spec/hosts/swift/proxy_storage_spec.rb @@ -11,12 +11,8 @@ describe manifest do storage_hash = Noop.hiera_hash 'storage' swift_hash = Noop.hiera_hash 'swift' network_scheme = Noop.hiera_hash 'network_scheme' - network_metadata = Noop.hiera_hash 'network_metadata' - memcached_nodes = Noop.puppet_function('get_nodes_hash_by_roles', network_metadata, ['primary-controller', 'controller']) - memcached_addresses = Noop.hiera 'memcached_addresses' - memcached_port = Noop.hiera 'memcache_server_port', '11211' - memcached_servers = memcached_addresses.map{ |n| n = n + ':' + memcached_port } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } management_vip = Noop.hiera('management_vip') swift_operator_roles = storage_hash.fetch('swift_operator_roles', ['admin', 'SwiftOperator', '_member_']) @@ -174,6 +170,12 @@ describe manifest do ) end + it 'should contain memcached params' do + should contain_class('openstack_tasks::swift::parts::proxy').with( + :memcached_servers => memcached_servers + ) + end + it 'should configure health check service correctly' do if !bind_to_one should_not contain_class('openstack_tasks::swift:::parts::status').with(