diff --git a/attributes/messaging.rb b/attributes/messaging.rb index b09d75b1..6077e026 100644 --- a/attributes/messaging.rb +++ b/attributes/messaging.rb @@ -57,6 +57,17 @@ default['openstack']['mq']['qpid']['protocol'] = 'tcp' default['openstack']['mq']['rabbitmq']['use_ssl'] = false # SSL version to use (valid only if SSL enabled) default['openstack']['mq']['rabbitmq']['kombu_ssl_version'] = nil +# SSL key file (valid only if SSL enabled) +default['openstack']['mq']['rabbitmq']['kombu_ssl_keyfile'] = nil +# SSL cert file (valid only if SSL enabled) +default['openstack']['mq']['rabbitmq']['kombu_ssl_certfile'] = nil +# SSL certification authority file (valid only if SSL enabled) +default['openstack']['mq']['rabbitmq']['kombu_ssl_ca_certs'] = nil +# How long to wait before reconnecting in response to an AMQP consumer cancel notification +default['openstack']['mq']['rabbitmq']['kombu_reconnect_delay'] = 1.0 +# How long to wait before considering a reconnect attempt to have failed. +# This value should not be longer than rpc_response_timeout +default['openstack']['mq']['rabbitmq']['kombu_reconnect_timeout'] = 60 # global switch for handling rabbit ha default['openstack']['mq']['rabbitmq']['ha'] = false # global switch for number of seconds after which the Rabbit broker is considered down if heartbeat's keep-alive fails (0 disable the heartbeat) @@ -95,7 +106,12 @@ rabbit_defaults = { heartbeat_timeout_threshold: node['openstack']['mq']['rabbitmq']['heartbeat_timeout_threshold'], heartbeat_rate: node['openstack']['mq']['rabbitmq']['heartbeat_rate'], use_ssl: node['openstack']['mq']['rabbitmq']['use_ssl'], - kombu_ssl_version: node['openstack']['mq']['rabbitmq']['kombu_ssl_version'] + kombu_ssl_version: node['openstack']['mq']['rabbitmq']['kombu_ssl_version'], + kombu_ssl_keyfile: node['openstack']['mq']['rabbitmq']['kombu_ssl_keyfile'], + kombu_ssl_certfile: node['openstack']['mq']['rabbitmq']['kombu_ssl_certfile'], + kombu_ssl_ca_certs: node['openstack']['mq']['rabbitmq']['kombu_ssl_ca_certs'], + kombu_reconnect_delay: node['openstack']['mq']['rabbitmq']['kombu_reconnect_delay'], + kombu_reconnect_timeout: node['openstack']['mq']['rabbitmq']['kombu_reconnect_timeout'] } ################################################################### diff --git a/metadata.rb b/metadata.rb index 4931aaac..d375be22 100644 --- a/metadata.rb +++ b/metadata.rb @@ -4,7 +4,7 @@ maintainer_email 'opscode-chef-openstack@googlegroups.com' license 'Apache 2.0' description 'Common OpenStack attributes, libraries and recipes.' long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) -version '11.3.0' +version '11.4.0' recipe 'openstack-common', 'Installs/Configures common recipes' recipe 'openstack-common::set_endpoints_by_interface', 'Set endpoints by interface' diff --git a/spec/default_spec.rb b/spec/default_spec.rb index 116ca0d4..69bd08fe 100644 --- a/spec/default_spec.rb +++ b/spec/default_spec.rb @@ -49,27 +49,6 @@ describe 'openstack-common::default' do .with(version: '~> 2.3') end - it 'enables rabbit ha for all services' do - node.set['openstack']['mq']['rabbitmq']['ha'] = true - mq_services.each do |svc| - expect(chef_run.node['openstack']['mq'][svc]['rabbit']['ha']).to eq(true) - end - end - - it 'enables rabbit heartbeat_timeout_threshold for all services' do - node.set['openstack']['mq']['rabbitmq']['heartbeat_timeout_threshold'] = 123 - mq_services.each do |svc| - expect(chef_run.node['openstack']['mq'][svc]['rabbit']['heartbeat_timeout_threshold']).to eq(123) - end - end - - it 'enables rabbit heartbeat_rate for all services' do - node.set['openstack']['mq']['rabbitmq']['heartbeat_rate'] = 123 - mq_services.each do |svc| - expect(chef_run.node['openstack']['mq'][svc]['rabbit']['heartbeat_rate']).to eq(123) - end - end - it 'has correct host for endpoints' do %w(identity-api identity-internal identity-admin compute-api compute-ec2-api compute-ec2-admin compute-xvpvnc compute-novnc compute-vnc compute-metadata-api network-api network-linuxbridge @@ -111,22 +90,41 @@ describe 'openstack-common::default' do end end - it 'enables rabbit ssl version for all services' do - node.set['openstack']['mq']['rabbitmq']['kombu_ssl_version'] = 'TLSv1.2' - mq_services.each do |svc| - expect(chef_run.node['openstack']['mq'][svc]['rabbit']['kombu_ssl_version']).to eq('TLSv1.2') + context 'rabbit mq' do + rabbit_opts = { + 'userid' => 'guest', + 'vhost' => '/', + 'port' => '5672', + 'host' => '127.0.0.1', + 'ha' => true, + 'heartbeat_timeout_threshold' => 123, + 'heartbeat_rate' => 123, + 'kombu_ssl_version' => 'TLSv1.2', + 'kombu_ssl_keyfile' => 'key_file', + 'kombu_ssl_certfile' => 'cert_file', + 'kombu_ssl_ca_certs' => 'ca_certs_file', + 'kombu_reconnect_delay' => 123.456, + 'kombu_reconnect_timeout' => 123 + } + rabbit_opts.each do |key, value| + it "configures rabbit mq #{key}" do + node.set['openstack']['mq']['rabbitmq'][key] = value + mq_services.each do |service| + expect(chef_run.node['openstack']['mq'][service]['rabbit'][key]).to eq(value) + end + end end - end - it 'set rabbit_max_retries to 0 for all services' do - mq_services.each do |svc| - expect(chef_run.node['openstack']['mq'][svc]['rabbit']['rabbit_max_retries']).to eq(0) + it 'set rabbit_max_retries to 0 for all services' do + mq_services.each do |svc| + expect(chef_run.node['openstack']['mq'][svc]['rabbit']['rabbit_max_retries']).to eq(0) + end end - end - it 'set rabbit_retry_interval to 1 for all services' do - mq_services.each do |svc| - expect(chef_run.node['openstack']['mq'][svc]['rabbit']['rabbit_retry_interval']).to eq(1) + it 'set rabbit_retry_interval to 1 for all services' do + mq_services.each do |svc| + expect(chef_run.node['openstack']['mq'][svc]['rabbit']['rabbit_retry_interval']).to eq(1) + end end end end