From 80b8b97a122113669ff84e853345352fbaafbf50 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Thu, 6 Mar 2014 13:50:10 +0000 Subject: [PATCH] Use get_password method to obtain qpid password Currently, qpid's password is stored in an attribute in the common cookbook. This change causes the password to be looked up via get_password method, which is how we obtain the rabbitmq password. Change-Id: Id09820dafc67910f9f4d6c350ece6fe93fb21787 Implements: blueprint use-data-bag-for-qpid-password --- recipes/common.rb | 11 ++++++++--- spec/server_spec.rb | 13 ++++++++----- spec/spec_helper.rb | 2 +- templates/default/neutron.conf.erb | 8 ++++---- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/recipes/common.rb b/recipes/common.rb index 6b6d219e..f2769547 100644 --- a/recipes/common.rb +++ b/recipes/common.rb @@ -99,9 +99,13 @@ template '/etc/neutron/policy.json' do notifies :restart, 'service[neutron-server]', :delayed end -if node['openstack']['mq']['network']['service_type'] == 'rabbitmq' +mq_service_type = node['openstack']['mq']['network']['service_type'] + +if mq_service_type == 'rabbitmq' rabbit_hosts = rabbit_servers if node['openstack']['mq']['network']['rabbit']['ha'] - rabbit_pass = get_password 'user', node['openstack']['mq']['network']['rabbit']['userid'] + mq_password = get_password 'user', node['openstack']['mq']['network']['rabbit']['userid'] +elsif mq_service_type == 'qpid' + mq_password = get_password 'user', node['openstack']['mq']['network']['qpid']['username'] end identity_endpoint = endpoint 'identity-api' @@ -158,7 +162,8 @@ template '/etc/neutron/neutron.conf' do bind_address: bind_address, bind_port: bind_port, rabbit_hosts: rabbit_hosts, - rabbit_pass: rabbit_pass, + mq_service_type: mq_service_type, + mq_password: mq_password, core_plugin: core_plugin, identity_endpoint: identity_endpoint, service_pass: service_pass, diff --git a/spec/server_spec.rb b/spec/server_spec.rb index 9a89ad99..765b9178 100644 --- a/spec/server_spec.rb +++ b/spec/server_spec.rb @@ -211,7 +211,7 @@ describe 'openstack-network::server' do it 'has rabbit_password' do expect(@chef_run).to render_file(@file.name).with_content( - 'rabbit_password=rabbit-pass') + 'rabbit_password=mq-pass') end it 'has rabbit_virtual_host' do @@ -275,8 +275,11 @@ describe 'openstack-network::server' do describe 'qpid' do before do - @file = @chef_run.template '/etc/neutron/neutron.conf' - @chef_run.node.set['openstack']['mq']['network']['service_type'] = 'qpid' + @chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n| + n.set['openstack']['compute']['network']['service_type'] = 'neutron' + n.set['openstack']['mq']['network']['service_type'] = 'qpid' + n.set['openstack']['mq']['network']['qpid']['username'] = 'guest' + end @chef_run.converge 'openstack-network::server' end @@ -299,12 +302,12 @@ describe 'openstack-network::server' do it 'has qpid_username' do expect(@chef_run).to render_file(@file.name).with_content( - 'qpid_username=') + 'qpid_username=guest') end it 'has qpid_password' do expect(@chef_run).to render_file(@file.name).with_content( - 'qpid_password=') + 'qpid_password=mq-pass') end it 'has qpid_sasl_mechanisms' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index fe06a927..6bcded08 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -69,7 +69,7 @@ def neutron_stubs # rubocop:disable MethodLength .and_return('neutron-pass') ::Chef::Recipe.any_instance.stub(:get_password) .with('user', 'guest') - .and_return('rabbit-password') + .and_return('mq-pass') ::Chef::Application.stub(:fatal!) stub_command('dpkg -l | grep openvswitch-switch | grep 1.10.2-1').and_return(true) diff --git a/templates/default/neutron.conf.erb b/templates/default/neutron.conf.erb index e8055e01..ee25031c 100644 --- a/templates/default/neutron.conf.erb +++ b/templates/default/neutron.conf.erb @@ -128,11 +128,11 @@ control_exchange = neutron # allow_overlapping_ips = False allow_overlapping_ips = <%= node["openstack"]["network"]["allow_overlapping_ips"] -%> -<% if node["openstack"]["mq"]["network"]["service_type"] == "rabbitmq" %> +<% if @mq_service_type == "rabbitmq" %> ##### RABBITMQ ##### rpc_backend=neutron.openstack.common.rpc.impl_kombu rabbit_userid=<%= node["openstack"]["mq"]["network"]["rabbit"]["userid"] %> -rabbit_password=<%= @rabbit_pass %> +rabbit_password=<%= @mq_password %> rabbit_virtual_host=<%= node["openstack"]["mq"]["network"]["rabbit"]["vhost"] %> <% if node["openstack"]["mq"]["network"]["rabbit"]["ha"] -%> # Use HA queues in RabbitMQ (x-ha-policy: all).You need to @@ -150,13 +150,13 @@ rabbit_port=<%= node["openstack"]["mq"]["network"]["rabbit"]["port"] %> # rabbit_retry_interval = 1 <% end %> -<% if node["openstack"]["mq"]["network"]["service_type"] == "qpid" %> +<% if @mq_service_type == "qpid" %> ##### QPID ##### rpc_backend=neutron.openstack.common.rpc.impl_qpid qpid_hostname=<%= node["openstack"]["mq"]["network"]["qpid"]["host"] %> qpid_port=<%= node["openstack"]["mq"]["network"]["qpid"]["port"] %> -qpid_password=<%= node["openstack"]["mq"]["network"]["qpid"]["password"] %> +qpid_password=<%= @mq_password %> qpid_username=<%= node["openstack"]["mq"]["network"]["qpid"]["username"] %> qpid_sasl_mechanisms=<%= node["openstack"]["mq"]["network"]["qpid"]["sasl_mechanisms"] %> qpid_reconnect=<%= node["openstack"]["mq"]["network"]["qpid"]["reconnect"] %>