use bind_service instead of endpoints and cluster properly
* rabbitmq should use the bind_service attribute instead of the endpoint one, since these could be different * adapted rabbitmq clustering attributes * adapted rabbitmq clustering search to point to recipe instead of role Depends-On: Iae7e302973805af3cb44be1b29d0e61e76eb0aa0 Implements: blueprint cookbook-refactoring Change-Id: I08ed288e63422078d9beb36d14fd3c05f1cac435
This commit is contained in:
parent
1e0a81aecd
commit
503703fb2b
|
@ -27,34 +27,31 @@ end
|
|||
user = node['openstack']['mq']['user']
|
||||
pass = get_password 'user', user
|
||||
vhost = node['openstack']['mq']['vhost']
|
||||
rabbit_endpoint = node['openstack']['endpoints']['mq']
|
||||
bind_interface = rabbit_endpoint.bind_interface
|
||||
if bind_interface
|
||||
listen_address = address_for bind_interface
|
||||
else
|
||||
listen_address = rabbit_endpoint.host
|
||||
end
|
||||
bind_mq = node['openstack']['bind_service']['mq']
|
||||
bind_mq_address = bind_address bind_mq
|
||||
|
||||
# Used by OpenStack#rabbit_servers/#rabbit_server
|
||||
node.set['openstack']['mq']['listen'] = listen_address
|
||||
node.set['openstack']['mq']['listen'] = bind_mq_address
|
||||
if node['openstack']['mq']['rabbitmq']['use_ssl']
|
||||
if node['rabbitmq']['ssl_port'] != rabbit_endpoint.port
|
||||
node.override['rabbitmq']['ssl_port'] = rabbit_endpoint.port
|
||||
if node['rabbitmq']['ssl_port'] != bind_mq.port
|
||||
node.normal['rabbitmq']['ssl_port'] = bind_mq.port
|
||||
else
|
||||
Chef::Log.error 'Unable to listen on the port #{rabbit_endpoint.port} for RabbitMQ TCP, which is listened on by SSL!'
|
||||
Chef::Log.error "Unable to listen on the port #{bind_mq.port} for RabbitMQ TCP, which is listened on by SSL!"
|
||||
end
|
||||
else
|
||||
node.override['rabbitmq']['port'] = rabbit_endpoint.port
|
||||
node.normal['rabbitmq']['port'] = bind_mq.port
|
||||
end
|
||||
node.override['rabbitmq']['address'] = listen_address
|
||||
node.normal['rabbitmq']['address'] = bind_mq_address
|
||||
node.normal['rabbitmq']['nodename'] = "#{user}@#{node['hostname']}"
|
||||
|
||||
# Clustering
|
||||
if node['openstack']['mq']['cluster']
|
||||
node.override['rabbitmq']['cluster'] = node['openstack']['mq']['cluster']
|
||||
node.override['rabbitmq']['erlang_cookie'] = get_password 'service', 'rabbit_cookie'
|
||||
node.normal['rabbitmq']['clustering']['enable'] = node['openstack']['mq']['cluster']
|
||||
node.normal['rabbitmq']['erlang_cookie'] = get_password 'service', 'rabbit_cookie'
|
||||
if node['openstack']['mq']['search_for_cluster_disk_nodes']
|
||||
qs = "roles:#{node['openstack']['mq']['server_role']} AND chef_environment:#{node.chef_environment}"
|
||||
node.override['rabbitmq']['cluster_disk_nodes'] = search(:node, qs).map do |n|
|
||||
qs = "recipes:openstack-ops-messaging\\:\\:rabbitmq-server AND chef_environment:#{node.chef_environment}"
|
||||
node.normal['rabbitmq']['clustering']['use_auto_clustering'] = true
|
||||
node.normal['rabbitmq']['clustering']['cluster_nodes'] = search(:node, qs).map do |n|
|
||||
"#{user}@#{n['hostname']}"
|
||||
end.sort
|
||||
end
|
||||
|
|
|
@ -19,15 +19,12 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
end
|
||||
|
||||
it 'overrides rabbit and openstack image attributes' do
|
||||
node.set['openstack']['endpoints']['mq']['bind_interface'] = 'eth0'
|
||||
node.set['openstack']['bind_service']['mq']['interface'] = 'eth0'
|
||||
node.set['openstack']['bind_service']['mq']['port'] = '4242'
|
||||
node.set['openstack']['endpoints']['mq']['port'] = '4242'
|
||||
node.set['openstack']['mq']['user'] = 'foo'
|
||||
node.set['openstack']['mq']['vhost'] = '/bar'
|
||||
|
||||
expect(chef_run.node['openstack']['mq']['listen']).to eq('33.44.55.66')
|
||||
expect(chef_run.node['openstack']['endpoints']['mq']['port']).to eq('4242')
|
||||
expect(chef_run.node['openstack']['mq']['user']).to eq('foo')
|
||||
expect(chef_run.node['openstack']['mq']['vhost']).to eq('/bar')
|
||||
expect(chef_run.node['openstack']['mq']['image']['rabbit']['port']).to eq('4242')
|
||||
expect(chef_run.node['openstack']['mq']['image']['rabbit']['userid']).to eq('foo')
|
||||
expect(chef_run.node['openstack']['mq']['image']['rabbit']['vhost']).to eq('/bar')
|
||||
|
@ -36,7 +33,7 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
describe 'rabbit ssl' do
|
||||
before do
|
||||
node.set['openstack']['mq']['rabbitmq']['use_ssl'] = true
|
||||
node.set['openstack']['endpoints']['mq']['port'] = '1234'
|
||||
node.set['openstack']['bind_service']['mq']['port'] = '1234'
|
||||
end
|
||||
|
||||
it 'overrides rabbit ssl attributes' do
|
||||
|
@ -54,7 +51,7 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
end
|
||||
|
||||
it 'overrides cluster' do
|
||||
expect(chef_run.node['rabbitmq']['cluster']).to be_truthy
|
||||
expect(chef_run.node['rabbitmq']['clustering']['enable']).to be_truthy
|
||||
end
|
||||
|
||||
it 'overrides erlang_cookie' do
|
||||
|
@ -64,14 +61,14 @@ describe 'openstack-ops-messaging::rabbitmq-server' do
|
|||
end
|
||||
|
||||
it 'overrides and sorts cluster_disk_nodes' do
|
||||
expect(chef_run.node['rabbitmq']['cluster_disk_nodes']).to eq(
|
||||
expect(chef_run.node['rabbitmq']['clustering']['cluster_nodes']).to eq(
|
||||
['guest@host1', 'guest@host2']
|
||||
)
|
||||
end
|
||||
|
||||
it 'does not search for cluster_disk_nodes' do
|
||||
node.set['openstack']['mq']['search_for_cluster_disk_nodes'] = false
|
||||
expect(chef_run.node['rabbitmq']['cluster_disk_nodes']).to eq([])
|
||||
expect(chef_run.node['rabbitmq']['clustering']['cluster_nodes']).to eq([])
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ shared_context 'ops_messaging_stubs' do
|
|||
.with('eth0')
|
||||
.and_return '33.44.55.66'
|
||||
allow_any_instance_of(Chef::Recipe).to receive(:search)
|
||||
.with(:node, 'roles:os-ops-messaging AND chef_environment:_default')
|
||||
.with(:node, 'recipes:openstack-ops-messaging\\:\\:rabbitmq-server AND chef_environment:_default')
|
||||
.and_return [
|
||||
{ 'hostname' => 'host2' },
|
||||
{ 'hostname' => 'host1' }
|
||||
|
|
Loading…
Reference in New Issue