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
This commit is contained in:
parent
69aece333b
commit
df416f53d2
@ -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]
|
||||
|
@ -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)),
|
||||
|
@ -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(
|
||||
|
@ -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')),
|
||||
|
@ -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/
|
||||
|
@ -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,10 +135,10 @@ class openstack_tasks::aodh::aodh {
|
||||
|
||||
# keystone
|
||||
aodh_config {
|
||||
'keystone_authtoken/memcache_servers': value => $memcache_servers;
|
||||
'keystone_authtoken/signing_dir': value => '/tmp/keystone-signing-aodh';
|
||||
}
|
||||
|
||||
|
||||
class { '::aodh::api':
|
||||
enabled => true,
|
||||
manage_service => true,
|
||||
@ -151,6 +150,7 @@ class openstack_tasks::aodh::aodh {
|
||||
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"
|
||||
|
@ -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,
|
||||
|
@ -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':
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
@ -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':
|
||||
|
@ -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'
|
||||
|
@ -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,
|
||||
|
@ -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': }
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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':
|
||||
|
@ -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;
|
||||
|
@ -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'] {
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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 },
|
||||
|
@ -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 -%>
|
||||
|
@ -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)
|
||||
|
@ -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',
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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')
|
||||
|
@ -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
|
||||
|
@ -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(
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user