From 4776e4f9575400c2527b97ad42656b0043e39be6 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Thu, 16 Jan 2014 16:00:34 +0000 Subject: [PATCH] Clean up cookbook for bp/clean-up-attr-for-mq-and-db This change removes the attributes we'll be moving to openstack-common and changes reference of those attributes to reflect new (more consistent) namespace. We also fix a test where node isn't being converged after setting attributes and import chefspec/berksfile in spec/spec_helper.rb so we can run rspec outside of strainer. Change-Id: I7e27a60c4245de2e4d8033439a2429d89006a356 Implements: blueprint clean-up-attr-for-mq-and-db --- attributes/default.rb | 51 ------------------- recipes/common.rb | 10 ++-- spec/common-redhat_spec.rb | 2 +- spec/server_spec.rb | 5 +- spec/spec_helper.rb | 1 + templates/default/neutron.conf.erb | 42 +++++++-------- .../linuxbridge/linuxbridge_conf.ini.erb | 12 ++--- .../openvswitch/ovs_neutron_plugin.ini.erb | 12 ++--- 8 files changed, 43 insertions(+), 92 deletions(-) diff --git a/attributes/default.rb b/attributes/default.rb index fe02dade..21cedb61 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -36,39 +36,7 @@ default['openstack']['network']['service_name'] = 'neutron' default['openstack']['network']['service_type'] = 'network' default['openstack']['network']['description'] = 'OpenStack Networking service' -# The rabbit user's password is stored in an encrypted databag -# and accessed with openstack-common cookbook library's -# get_password routine. You are expected to create -# the user, pass, vhost in a wrapper rabbitmq cookbook. default['openstack']['network']['rabbit_server_chef_role'] = 'rabbitmq-server' -default['openstack']['network']['rabbit']['username'] = 'guest' -default['openstack']['network']['rabbit']['vhost'] = '/' -default['openstack']['network']['rabbit']['port'] = 5672 -default['openstack']['network']['rabbit']['host'] = '127.0.0.1' -default['openstack']['network']['rabbit']['ha'] = false - -# The database username for the neutron database -default['openstack']['network']['db']['username'] = 'neutron' - -# Enable the use of eventlet's db_pool for MySQL. The flags sql_min_pool_size, -# sql_max_pool_size and sql_idle_timeout are relevant only if this is enabled. -default['openstack']['network']['db']['sql_dbpool_enable'] = 'False' - -# Database reconnection retry times - in event connectivity is lost -default['openstack']['network']['db']['sql_max_retries'] = 10 - -# Database reconnection interval in seconds - if the initial connection to the -# database fails -default['openstack']['network']['db']['reconnect_interval'] = 2 - -# Minimum number of SQL connections to keep open in a pool -default['openstack']['network']['db']['sql_min_pool_size'] = 1 - -# Maximum number of SQL connections to keep open in a pool -default['openstack']['network']['db']['sql_max_pool_size'] = 5 - -# Timeout in seconds before idle sql connections are reaped -default['openstack']['network']['db']['sql_idle_timeout'] = 3600 # Used in the Keystone authtoken middleware configuration default['openstack']['network']['service_tenant_name'] = 'service' @@ -93,25 +61,6 @@ default['openstack']['network']['api']['auth']['cache_dir'] = '/var/cache/neutro default['openstack']['network']['api']['bind_interface'] = nil default['openstack']['network']['api']['bind_port'] = 9696 -# MQ options -default['openstack']['network']['mq']['service_type'] = node['openstack']['mq']['service_type'] -default['openstack']['network']['mq']['qpid']['host'] = '127.0.0.1' -default['openstack']['network']['mq']['qpid']['port'] = '5672' -default['openstack']['network']['mq']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] - -default['openstack']['network']['mq']['qpid']['username'] = '' -default['openstack']['network']['mq']['qpid']['password'] = '' -default['openstack']['network']['mq']['qpid']['sasl_mechanisms'] = '' -default['openstack']['network']['mq']['qpid']['reconnect'] = true -default['openstack']['network']['mq']['qpid']['reconnect_timeout'] = 0 -default['openstack']['network']['mq']['qpid']['reconnect_limit'] = 0 -default['openstack']['network']['mq']['qpid']['reconnect_interval_min'] = 0 -default['openstack']['network']['mq']['qpid']['reconnect_interval_max'] = 0 -default['openstack']['network']['mq']['qpid']['reconnect_interval'] = 0 -default['openstack']['network']['mq']['qpid']['heartbeat'] = 60 -default['openstack']['network']['mq']['qpid']['protocol'] = 'tcp' -default['openstack']['network']['mq']['qpid']['tcp_nodelay'] = true - # logging attribute default['openstack']['network']['syslog']['use'] = false diff --git a/recipes/common.rb b/recipes/common.rb index 6855cfce..1d1c4d52 100644 --- a/recipes/common.rb +++ b/recipes/common.rb @@ -51,7 +51,7 @@ platform_options['neutron_packages'].each do |pkg| end end -db_type = node['openstack']['db']['network']['db_type'] +db_type = node['openstack']['db']['network']['service_type'] platform_options["#{db_type}_python_packages"].each do |pkg| package pkg do action :install @@ -97,16 +97,16 @@ template '/etc/neutron/policy.json' do notifies :restart, 'service[neutron-server]', :delayed end -if node['openstack']['network']['mq']['service_type'] == 'rabbitmq' - rabbit_hosts = rabbit_servers if node['openstack']['network']['rabbit']['ha'] - rabbit_pass = get_password 'user', node['openstack']['network']['rabbit']['username'] +if node['openstack']['mq']['network']['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'] end identity_endpoint = endpoint 'identity-api' identity_admin_endpoint = endpoint 'identity-admin' auth_uri = ::URI.decode identity_endpoint.to_s -db_user = node['openstack']['network']['db']['username'] +db_user = node['openstack']['db']['network']['username'] db_pass = get_password "db", 'neutron' sql_connection = db_uri('network', db_user, db_pass) diff --git a/spec/common-redhat_spec.rb b/spec/common-redhat_spec.rb index 6e20a6d1..78b7b666 100644 --- a/spec/common-redhat_spec.rb +++ b/spec/common-redhat_spec.rb @@ -16,7 +16,7 @@ describe 'openstack-network::common' do end it 'installs db2 python packages if explicitly told' do - @chef_run.node.set['openstack']['db']['network']['db_type'] = 'db2' + @chef_run.node.set['openstack']['db']['network']['service_type'] = 'db2' @chef_run.converge 'openstack-network::common' ['db2-odbc', 'python-ibm-db', 'python-ibm-db-sa'].each do |pkg| diff --git a/spec/server_spec.rb b/spec/server_spec.rb index e3a6dae9..7e6e61fd 100644 --- a/spec/server_spec.rb +++ b/spec/server_spec.rb @@ -177,7 +177,8 @@ describe 'openstack-network::server' do describe 'qpid' do before do @file = @chef_run.template '/etc/neutron/neutron.conf' - @chef_run.node.set['openstack']['network']['mq']['service_type'] = 'qpid' + @chef_run.node.set['openstack']['mq']['network']['service_type'] = 'qpid' + @chef_run.converge 'openstack-network::server' end it 'has qpid_hostname' do @@ -289,7 +290,7 @@ describe 'openstack-network::server' do before do @chef_run = ::ChefSpec::Runner.new(::UBUNTU_OPTS) do |n| - n.set['openstack']['network']['rabbit']['ha'] = true + n.set['openstack']['mq']['network']['rabbit']['ha'] = true n.set['chef_client']['splay'] = 300 n.set['openstack']['compute']['network']['service_type'] = 'neutron' end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 74cd2379..833a7335 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,6 @@ # Encoding: utf-8 require 'chefspec' +require 'chefspec/berkshelf' require 'chef/application' ::LOG_LEVEL = :fatal diff --git a/templates/default/neutron.conf.erb b/templates/default/neutron.conf.erb index d5fd3587..c85c2fac 100644 --- a/templates/default/neutron.conf.erb +++ b/templates/default/neutron.conf.erb @@ -128,19 +128,19 @@ control_exchange = neutron # allow_overlapping_ips = False allow_overlapping_ips = <%= node["openstack"]["network"]["allow_overlapping_ips"] -%> -<% if node["openstack"]["network"]["mq"]["service_type"] == "rabbitmq" %> +<% if node["openstack"]["mq"]["network"]["service_type"] == "rabbitmq" %> ##### RABBITMQ ##### -rabbit_userid=<%= node["openstack"]["network"]["rabbit"]["username"] %> +rabbit_userid=<%= node["openstack"]["mq"]["network"]["rabbit"]["userid"] %> rabbit_password=<%= @rabbit_pass %> -rabbit_virtual_host=<%= node["openstack"]["network"]["rabbit"]["vhost"] %> -<% if node["openstack"]["network"]["rabbit"]["ha"] -%> +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 # wipe RabbitMQ database when changing this option. (boolean value) rabbit_hosts=<%= @rabbit_hosts %> rabbit_ha_queues=True <% else -%> -rabbit_host=<%= node["openstack"]["network"]["rabbit"]["host"] %> -rabbit_port=<%= node["openstack"]["network"]["rabbit"]["port"] %> +rabbit_host=<%= node["openstack"]["mq"]["network"]["rabbit"]["host"] %> +rabbit_port=<%= node["openstack"]["mq"]["network"]["rabbit"]["port"] %> <% end -%> # Maximum retries with trying to connect to RabbitMQ # (the default of 0 implies an infinite retry count) @@ -149,25 +149,25 @@ rabbit_port=<%= node["openstack"]["network"]["rabbit"]["port"] %> # rabbit_retry_interval = 1 <% end %> -<% if node["openstack"]["network"]["mq"]["service_type"] == "qpid" %> +<% if node["openstack"]["mq"]["network"]["service_type"] == "qpid" %> ##### QPID ##### rpc_backend=neutron.openstack.common.rpc.impl_qpid -qpid_hostname=<%= node["openstack"]["network"]["mq"]["qpid"]["host"] %> -qpid_port=<%= node["openstack"]["network"]["mq"]["qpid"]["port"] %> +qpid_hostname=<%= node["openstack"]["mq"]["network"]["qpid"]["host"] %> +qpid_port=<%= node["openstack"]["mq"]["network"]["qpid"]["port"] %> -qpid_password=<%= node["openstack"]["network"]["mq"]["qpid"]["password"] %> -qpid_username=<%= node["openstack"]["network"]["mq"]["qpid"]["username"] %> -qpid_sasl_mechanisms=<%= node["openstack"]["network"]["mq"]["qpid"]["sasl_mechanisms"] %> -qpid_reconnect=<%= node["openstack"]["network"]["mq"]["qpid"]["reconnect"] %> -qpid_reconnect_timeout=<%= node["openstack"]["network"]["mq"]["qpid"]["reconnect_timeout"] %> -qpid_reconnect_limit=<%= node["openstack"]["network"]["mq"]["qpid"]["reconnect_limit"] %> -qpid_reconnect_interval_min=<%= node["openstack"]["network"]["mq"]["qpid"]["reconnect_interval_min"] %> -qpid_reconnect_interval_max=<%= node["openstack"]["network"]["mq"]["qpid"]["reconnect_interval_max"] %> -qpid_reconnect_interval=<%= node["openstack"]["network"]["mq"]["qpid"]["reconnect_interval"] %> -qpid_heartbeat=<%= node["openstack"]["network"]["mq"]["qpid"]["heartbeat"] %> +qpid_password=<%= node["openstack"]["mq"]["network"]["qpid"]["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"] %> +qpid_reconnect_timeout=<%= node["openstack"]["mq"]["network"]["qpid"]["reconnect_timeout"] %> +qpid_reconnect_limit=<%= node["openstack"]["mq"]["network"]["qpid"]["reconnect_limit"] %> +qpid_reconnect_interval_min=<%= node["openstack"]["mq"]["network"]["qpid"]["reconnect_interval_min"] %> +qpid_reconnect_interval_max=<%= node["openstack"]["mq"]["network"]["qpid"]["reconnect_interval_max"] %> +qpid_reconnect_interval=<%= node["openstack"]["mq"]["network"]["qpid"]["reconnect_interval"] %> +qpid_heartbeat=<%= node["openstack"]["mq"]["network"]["qpid"]["heartbeat"] %> # qpid protocol. default 'tcp'. set to 'ssl' to enable SSL -qpid_protocol=<%= node["openstack"]["network"]["mq"]["qpid"]["protocol"] %> -qpid_tcp_nodelay=<%= node["openstack"]["network"]["mq"]["qpid"]["tcp_nodelay"] %> +qpid_protocol=<%= node["openstack"]["mq"]["network"]["qpid"]["protocol"] %> +qpid_tcp_nodelay=<%= node["openstack"]["mq"]["network"]["qpid"]["tcp_nodelay"] %> <% end %> diff --git a/templates/default/plugins/linuxbridge/linuxbridge_conf.ini.erb b/templates/default/plugins/linuxbridge/linuxbridge_conf.ini.erb index 943ae004..21a90a61 100644 --- a/templates/default/plugins/linuxbridge/linuxbridge_conf.ini.erb +++ b/templates/default/plugins/linuxbridge/linuxbridge_conf.ini.erb @@ -33,24 +33,24 @@ sql_connection = <%= @sql_connection %> # Database reconnection retry times - in event connectivity is lost # set to -1 implies an infinite retry count -sql_max_retries = <%= node['openstack']['network']['db']['sql_max_retries'] %> +sql_max_retries = <%= node['openstack']['db']['network']['sql_max_retries'] %> # Database reconnection interval in seconds - if the initial connection to the # database fails -reconnect_interval = <%= node['openstack']['network']['db']['reconnect_interval'] %> +reconnect_interval = <%= node['openstack']['db']['network']['reconnect_interval'] %> # Enable the use of eventlet's db_pool for MySQL. The flags sql_min_pool_size, # sql_max_pool_size and sql_idle_timeout are relevant only if this is enabled. -sql_dbpool_enable = <%= node['openstack']['network']['db']['sql_dbpool_enable'] %> +sql_dbpool_enable = <%= node['openstack']['db']['network']['sql_dbpool_enable'] %> # Minimum number of SQL connections to keep open in a pool -sql_min_pool_size = <%= node['openstack']['network']['db']['sql_min_pool_size'] %> +sql_min_pool_size = <%= node['openstack']['db']['network']['sql_min_pool_size'] %> # Maximum number of SQL connections to keep open in a pool -sql_max_pool_size = <%= node['openstack']['network']['db']['sql_max_pool_size'] %> +sql_max_pool_size = <%= node['openstack']['db']['network']['sql_max_pool_size'] %> # Timeout in seconds before idle sql connections are reaped -sql_idle_timeout = <%= node['openstack']['network']['db']['sql_idle_timeout'] %> +sql_idle_timeout = <%= node['openstack']['db']['network']['sql_idle_timeout'] %> [LINUX_BRIDGE] # (ListOpt) Comma-separated list of diff --git a/templates/default/plugins/openvswitch/ovs_neutron_plugin.ini.erb b/templates/default/plugins/openvswitch/ovs_neutron_plugin.ini.erb index 3f54aa5e..5a8816a2 100644 --- a/templates/default/plugins/openvswitch/ovs_neutron_plugin.ini.erb +++ b/templates/default/plugins/openvswitch/ovs_neutron_plugin.ini.erb @@ -9,24 +9,24 @@ sql_connection = <%= @sql_connection %> # Database reconnection retry times - in event connectivity is lost # set to -1 implies an infinite retry count -sql_max_retries = <%= node['openstack']['network']['db']['sql_max_retries'] %> +sql_max_retries = <%= node['openstack']['db']['network']['sql_max_retries'] %> # Database reconnection interval in seconds - if the initial connection to the # database fails -reconnect_interval = <%= node['openstack']['network']['db']['reconnect_interval'] %> +reconnect_interval = <%= node['openstack']['db']['network']['reconnect_interval'] %> # Enable the use of eventlet's db_pool for MySQL. The flags sql_min_pool_size, # sql_max_pool_size and sql_idle_timeout are relevant only if this is enabled. -sql_dbpool_enable = <%= node['openstack']['network']['db']['sql_dbpool_enable'] %> +sql_dbpool_enable = <%= node['openstack']['db']['network']['sql_dbpool_enable'] %> # Minimum number of SQL connections to keep open in a pool -sql_min_pool_size = <%= node['openstack']['network']['db']['sql_min_pool_size'] %> +sql_min_pool_size = <%= node['openstack']['db']['network']['sql_min_pool_size'] %> # Maximum number of SQL connections to keep open in a pool -sql_max_pool_size = <%= node['openstack']['network']['db']['sql_max_pool_size'] %> +sql_max_pool_size = <%= node['openstack']['db']['network']['sql_max_pool_size'] %> # Timeout in seconds before idle sql connections are reaped -sql_idle_timeout = <%= node['openstack']['network']['db']['sql_idle_timeout'] %> +sql_idle_timeout = <%= node['openstack']['db']['network']['sql_idle_timeout'] %> [OVS] # (StrOpt) Type of network to allocate for tenant networks. The