From c741059edaa79f8897bc866e2eb607c4e00fbfc9 Mon Sep 17 00:00:00 2001 From: Matt Thompson Date: Wed, 15 Jan 2014 15:11:58 +0000 Subject: [PATCH] Initial step to clean up db and mq attributes Here we move db and mq attributes already present in default.rb attributes into new files (database.rb,messaging.rb). Additionally, we pull in rabbit/mq attributes from openstack-{block-storage,compute,image,metering,network} while transforming namespace from openstack.SERVICE.mq and openstack.SERVICE.rabbit to openstack.mq.SERVICE and openstack.mq.SERVICE.rabbit. Lastly, we copy openstack.SERVICE.db.username attribute from openstack-{compute,dashboard,identity,image,metering,network} while transforming namespace to openstack.db.SERVICE.username. Change-Id: I50c900aa2ba92ce53f4a6ad05aeabd59e701b514 Implements: blueprint clean-up-attr-for-mq-and-db --- README.md | 2 +- attributes/database.rb | 157 +++++++++++++++++++++++++++++++ attributes/default.rb | 121 ++---------------------- attributes/messaging.rb | 198 ++++++++++++++++++++++++++++++++++++++++ libraries/database.rb | 2 +- libraries/endpoints.rb | 2 +- 6 files changed, 364 insertions(+), 118 deletions(-) create mode 100644 attributes/database.rb create mode 100644 attributes/messaging.rb diff --git a/README.md b/README.md index 4549cc0a..cfcad3ea 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ The following cookbooks are dependencies: Attributes ========== -Please see the extensive inline documentation in `attributes/default.rb` for descriptions +Please see the extensive inline documentation in `attributes/*.rb` for descriptions of all the settable attributes for this cookbook. Note that all attributes are in the `default["openstack"]` "namespace" diff --git a/attributes/database.rb b/attributes/database.rb new file mode 100644 index 00000000..602b7c20 --- /dev/null +++ b/attributes/database.rb @@ -0,0 +1,157 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-common +# Attributes:: database +# +# Copyright 2012-2013, AT&T Services, Inc. +# Copyright 2013, SUSE Linux GmbH +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# ======================== OpenStack DB Support ================================ +# +# This section of node attributes stores information about the database hosts +# used in an OpenStack deployment. +# +# There is no 'scheme' key. Instead, there is a 'service_type' key that should +# contain one of 'sqlite', 'mysql', or 'postgresql' +# +# The ::Openstack::db() library routine allows a lookup from any recipe +# to this array, returning the host information for the server that contains +# the database for , where is one of 'compute' (Nova), +# 'image' (Glance), 'identity' (Keystone), 'network' (Neutron), or 'volume' (Cinder) +# +# The ::Openstack::db_connection(, , ) library routine +# returns the SQLAlchemy DB URI for , with the supplied user and password +# that a calling service might be using when connecting to the database. +# +# For example, let's assume that the database that is used by the OpenStack Identity +# service (Keystone) is configured as follows: +# +# host: 192.168.0.3 +# port: 3306 +# service_type: mysql +# db_name: keystone +# +# Further suppose that a node running the OpenStack Identity API service needs to +# connect to the above identity database server. It has the following in it's node +# attributes: +# +# node['openstack']['db']['identity']['username'] = 'keystone' +# +# In a 'keystone' recipe, you might find the following code: +# +# user = node['openstack']['db']['identity']['username'] +# pass = get_password 'db', 'keystone' +# +# sql_connection = ::Openstack::db_uri('identity', user, pass) +# +# The sql_connection variable would then be set to "mysql://keystone:password@192.168.0.3:keystone" +# and could then be written to the keystone.conf file in a template. +# +# Database Migrations: +# +# node['openstack']['db'][]['migrate'] +# +# The above attribute causes database migrations to be executed for the given +# service. There are cases where migrations should not be executed. For +# example when upgrading a zone, and the image or identity database are replicated +# across many zones. +# + +# Default database attributes +default['openstack']['db']['server_role'] = 'os-ops-database' +default['openstack']['db']['service_type'] = 'mysql' +default['openstack']['db']['host'] = '127.0.0.1' +default['openstack']['db']['port'] = '3306' + +# Database used by the OpenStack Compute (Nova) service +default['openstack']['db']['compute']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['compute']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['compute']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['compute']['db_name'] = 'nova' +default['openstack']['db']['compute']['username'] = 'nova' + +# Database used by the OpenStack Identity (Keystone) service +default['openstack']['db']['identity']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['identity']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['identity']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['identity']['db_name'] = 'keystone' +default['openstack']['db']['identity']['username'] = 'keystone' +default['openstack']['db']['identity']['migrate'] = true + +# Database used by the OpenStack Image (Glance) service +default['openstack']['db']['image']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['image']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['image']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['image']['db_name'] = 'glance' +default['openstack']['db']['image']['username'] = 'glance' +default['openstack']['db']['image']['migrate'] = true + +# Database used by the OpenStack Network (Neutron) service +default['openstack']['db']['network']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['network']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['network']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['network']['db_name'] = 'neutron' +default['openstack']['db']['network']['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']['db']['network']['sql_dbpool_enable'] = 'False' +# Database reconnection retry times - in event connectivity is lost +default['openstack']['db']['network']['sql_max_retries'] = 10 +# Database reconnection interval in seconds - if the initial connection to the +# database fails +default['openstack']['db']['network']['reconnect_interval'] = 2 +# Minimum number of SQL connections to keep open in a pool +default['openstack']['db']['network']['sql_min_pool_size'] = 1 +# Maximum number of SQL connections to keep open in a pool +default['openstack']['db']['network']['sql_max_pool_size'] = 5 +# Timeout in seconds before idle sql connections are reaped +default['openstack']['db']['network']['sql_idle_timeout'] = 3600 + +# Database used by the OpenStack Block Storage (Cinder) service +default['openstack']['db']['block-storage']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['block-storage']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['block-storage']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['block-storage']['db_name'] = 'cinder' +default['openstack']['db']['block-storage']['username'] = 'cinder' + +# Database used by the OpenStack Dashboard (Horizon) +default['openstack']['db']['dashboard']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['dashboard']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['dashboard']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['dashboard']['db_name'] = 'horizon' +default['openstack']['db']['dashboard']['username'] = 'dash' + +# Database used by OpenStack Metering (Ceilometer) +default['openstack']['db']['metering']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['metering']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['metering']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['metering']['db_name'] = 'ceilometer' +default['openstack']['db']['metering']['username'] = 'ceilometer' + +# Database used by OpenStack Orchestration (Heat) +default['openstack']['db']['orchestration']['service_type'] = node['openstack']['db']['service_type'] +default['openstack']['db']['orchestration']['host'] = node['openstack']['db']['host'] +default['openstack']['db']['orchestration']['port'] = node['openstack']['db']['port'] +default['openstack']['db']['orchestration']['db_name'] = 'heat' +default['openstack']['db']['orchestration']['username'] = 'heat' + +# Switch to store the MySQL root password in a databag instead of +# using the generated OpenSSL cookbook secure_password one. +default['openstack']['db']['root_user_use_databag'] = false + +# If above root_user_use_databag is true, the below string +# will be passed to the get_password library routine. +default['openstack']['db']['root_user_key'] = 'mysqlroot' diff --git a/attributes/default.rb b/attributes/default.rb index b4af75cb..ae435c8f 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -199,11 +199,11 @@ default['openstack']['endpoints']['image-registry']['bind_interface'] = nil # ******************** OpenStack Volume Endpoints ***************************** # The OpenStack Volume (Cinder) API endpoint -default['openstack']['endpoints']['volume-api']['host'] = '127.0.0.1' -default['openstack']['endpoints']['volume-api']['scheme'] = 'http' -default['openstack']['endpoints']['volume-api']['port'] = '8776' -default['openstack']['endpoints']['volume-api']['path'] = '/v1/%(tenant_id)s' -default['openstack']['endpoints']['volume-api']['bind_interface'] = nil +default['openstack']['endpoints']['block-storage-api']['host'] = '127.0.0.1' +default['openstack']['endpoints']['block-storage-api']['scheme'] = 'http' +default['openstack']['endpoints']['block-storage-api']['port'] = '8776' +default['openstack']['endpoints']['block-storage-api']['path'] = '/v1/%(tenant_id)s' +default['openstack']['endpoints']['block-storage-api']['bind_interface'] = nil # ******************** OpenStack Object Storage Endpoint ***************************** @@ -258,127 +258,18 @@ default['openstack']['endpoints']['orchestration-api-cloudwatch']['bind_interfac # default['openstack']['endpoints']['compute-novnc']['uri'] = 'https://novnc.example.com:6080/vnc_auto.html' # default['openstack']['endpoints']['image-api']['uri'] = 'https://image.example.com:9292/v2' # default['openstack']['endpoints']['image-registry']['uri'] = 'https://image.example.com:9191/v2' -# default['openstack']['endpoints']['volume-api']['uri'] = 'https://volume.example.com:8776/v1/%(tenant_id)s' +# default['openstack']['endpoints']['block-storage-api']['uri'] = 'https://volume.example.com:8776/v1/%(tenant_id)s' # default['openstack']['endpoints']['metering-api']['uri'] = 'https://metering.example.com:9000/v1' # default['openstack']['endpoints']['orchestration-api']['uri'] = 'https://orchestration.example.com:8004//v1/%(tenant_id)s' # default['openstack']['endpoints']['orchestration-api-cfn']['uri'] = 'https://orchestration.example.com:8000/v1' # default['openstack']['endpoints']['orchestration-api-cloudwatch']['uri'] = 'https://orchestration.example.com:8003/v1' -# ======================== OpenStack DB Support ================================ -# -# This section of node attributes stores information about the database hosts -# used in an OpenStack deployment. -# -# There is no 'scheme' key. Instead, there is a 'db_type' key that should -# contain one of 'sqlite', 'mysql', or 'postgresql' -# -# The ::Openstack::db() library routine allows a lookup from any recipe -# to this array, returning the host information for the server that contains -# the database for , where is one of 'compute' (Nova), -# 'image' (Glance), 'identity' (Keystone), 'network' (Neutron), or 'volume' (Cinder) -# -# The ::Openstack::db_connection(, , ) library routine -# returns the SQLAlchemy DB URI for , with the supplied user and password -# that a calling service might be using when connecting to the database. -# -# For example, let's assume that the database that is used by the OpenStack Identity -# service (Keystone) is configured as follows: -# -# host: 192.168.0.3 -# port: 3306 -# db_type: mysql -# db_name: keystone -# -# Further suppose that a node running the OpenStack Identity API service needs to -# connect to the above identity database server. It has the following in it's node -# attributes: -# -# node['db']['user'] = 'keystone' -# -# In a "keystone" recipe, you might find the following code: -# -# user = node['db']['user'] -# pass = secret 'passwords', 'keystone' -# -# sql_connection = ::Openstack::db_uri('identity', user, pass) -# -# The sql_connection variable would then be set to "mysql://keystone:password@192.168.0.3:keystone" -# and could then be written to the keystone.conf file in a template. - -# Default database attributes -default['openstack']['db']['server_role'] = 'os-ops-database' -default['openstack']['db']['service_type'] = 'mysql' -default['openstack']['db']['port'] = '3306' - -# Database used by the OpenStack Compute (Nova) service -default['openstack']['db']['compute']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['compute']['host'] = '127.0.0.1' -default['openstack']['db']['compute']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['compute']['db_name'] = 'nova' - -# Database used by the OpenStack Identity (Keystone) service -default['openstack']['db']['identity']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['identity']['host'] = '127.0.0.1' -default['openstack']['db']['identity']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['identity']['db_name'] = 'keystone' - -# Database used by the OpenStack Image (Glance) service -default['openstack']['db']['image']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['image']['host'] = '127.0.0.1' -default['openstack']['db']['image']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['image']['db_name'] = 'glance' - -# Database used by the OpenStack Network (Neutron) service -default['openstack']['db']['network']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['network']['host'] = '127.0.0.1' -default['openstack']['db']['network']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['network']['db_name'] = 'neutron' - -# Database used by the OpenStack Volume (Cinder) service -default['openstack']['db']['volume']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['volume']['host'] = '127.0.0.1' -default['openstack']['db']['volume']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['volume']['db_name'] = 'cinder' - -# Database used by the OpenStack Dashboard (Horizon) -default['openstack']['db']['dashboard']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['dashboard']['host'] = '127.0.0.1' -default['openstack']['db']['dashboard']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['dashboard']['db_name'] = 'horizon' - -# Database used by OpenStack Metering (Ceilometer) -default['openstack']['db']['metering']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['metering']['host'] = '127.0.0.1' -default['openstack']['db']['metering']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['metering']['db_name'] = 'ceilometer' - -# Database used by OpenStack Orchestration (Heat) -default['openstack']['db']['orchestration']['db_type'] = node['openstack']['db']['service_type'] -default['openstack']['db']['orchestration']['host'] = '127.0.0.1' -default['openstack']['db']['orchestration']['port'] = node['openstack']['db']['port'] -default['openstack']['db']['orchestration']['db_name'] = 'heat' - -# Switch to store the MySQL root password in a databag instead of -# using the generated OpenSSL cookbook secure_password one. -default['openstack']['db']['root_user_use_databag'] = false - -# If above root_user_use_databag is true, the below string -# will be passed to the get_password library routine. -default['openstack']['db']['root_user_key'] = 'mysqlroot' - # logging.conf list keypairs module_name => log level to write default['openstack']['logging']['ignore'] = { 'nova.api.openstack.wsgi' => 'WARNING', 'nova.osapi_compute.wsgi.server' => 'WARNING' } default['openstack']['memcached_servers'] = nil -# Default messaging attributes -default['openstack']['mq']['server_role'] = 'os-ops-messaging' -default['openstack']['mq']['service_type'] = 'rabbitmq' -default['openstack']['mq']['port'] = '5672' -default['openstack']['mq']['user'] = 'guest' -default['openstack']['mq']['vhost'] = '/' - # Default sysctl settings default['openstack']['sysctl']['net.ipv4.conf.all.rp_filter'] = 0 default['openstack']['sysctl']['net.ipv4.conf.default.rp_filter'] = 0 diff --git a/attributes/messaging.rb b/attributes/messaging.rb new file mode 100644 index 00000000..641d5b1e --- /dev/null +++ b/attributes/messaging.rb @@ -0,0 +1,198 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-common +# Attributes:: messaging +# +# Copyright 2012-2013, AT&T Services, Inc. +# Copyright 2013, SUSE Linux GmbH +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# The rabbitmq user's password is stored in an encrypted databag and accessed +# with openstack-common cookbook library's user_password routine. You are +# expected to create the user, pass, vhost in a wrapper rabbitmq cookbook. +# + +# Default messaging attributes +default['openstack']['mq']['server_role'] = 'os-ops-messaging' +default['openstack']['mq']['service_type'] = 'rabbitmq' +default['openstack']['mq']['host'] = '127.0.0.1' +default['openstack']['mq']['port'] = '5672' +default['openstack']['mq']['user'] = 'guest' +default['openstack']['mq']['vhost'] = '/' + +# Messaging attributes used by the OpenStack Volume (Cinder) service +default['openstack']['mq']['block-storage']['service_type'] = node['openstack']['mq']['service_type'] +case node['openstack']['mq']['block-storage']['service_type'] +when 'qpid' + default['openstack']['mq']['block-storage']['qpid']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['block-storage']['qpid']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['block-storage']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] + default['openstack']['mq']['block-storage']['qpid']['username'] = '' + default['openstack']['mq']['block-storage']['qpid']['password'] = '' + default['openstack']['mq']['block-storage']['qpid']['sasl_mechanisms'] = '' + default['openstack']['mq']['block-storage']['qpid']['reconnect'] = true + default['openstack']['mq']['block-storage']['qpid']['reconnect_timeout'] = 0 + default['openstack']['mq']['block-storage']['qpid']['reconnect_limit'] = 0 + default['openstack']['mq']['block-storage']['qpid']['reconnect_interval_min'] = 0 + default['openstack']['mq']['block-storage']['qpid']['reconnect_interval_max'] = 0 + default['openstack']['mq']['block-storage']['qpid']['reconnect_interval'] = 0 + default['openstack']['mq']['block-storage']['qpid']['heartbeat'] = 60 + default['openstack']['mq']['block-storage']['qpid']['protocol'] = 'tcp' + default['openstack']['mq']['block-storage']['qpid']['tcp_nodelay'] = true +when 'rabbitmq' + default['openstack']['mq']['block-storage']['rabbit']['userid'] = node['openstack']['mq']['user'] + default['openstack']['mq']['block-storage']['rabbit']['vhost'] = node['openstack']['mq']['vhost'] + default['openstack']['mq']['block-storage']['rabbit']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['block-storage']['rabbit']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['block-storage']['rabbit']['ha'] = false + default['openstack']['mq']['block-storage']['rabbit']['use_ssl'] = false +end + +# Messaging attributes used by the OpenStack Compute (Nova) service +default['openstack']['mq']['compute']['service_type'] = node['openstack']['mq']['service_type'] +case node['openstack']['mq']['compute']['service_type'] +when 'qpid' + default['openstack']['mq']['compute']['qpid']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['compute']['qpid']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['compute']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] + default['openstack']['mq']['compute']['qpid']['username'] = '' + default['openstack']['mq']['compute']['qpid']['password'] = '' + default['openstack']['mq']['compute']['qpid']['sasl_mechanisms'] = '' + default['openstack']['mq']['compute']['qpid']['reconnect_timeout'] = 0 + default['openstack']['mq']['compute']['qpid']['reconnect_limit'] = 0 + default['openstack']['mq']['compute']['qpid']['reconnect_interval_min'] = 0 + default['openstack']['mq']['compute']['qpid']['reconnect_interval_max'] = 0 + default['openstack']['mq']['compute']['qpid']['reconnect_interval'] = 0 + default['openstack']['mq']['compute']['qpid']['heartbeat'] = 60 + default['openstack']['mq']['compute']['qpid']['protocol'] = 'tcp' + default['openstack']['mq']['compute']['qpid']['tcp_nodelay'] = true +when 'rabbitmq' + default['openstack']['mq']['compute']['rabbit']['userid'] = node['openstack']['mq']['user'] + default['openstack']['mq']['compute']['rabbit']['vhost'] = node['openstack']['mq']['vhost'] + default['openstack']['mq']['compute']['rabbit']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['compute']['rabbit']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['compute']['rabbit']['ha'] = false + default['openstack']['mq']['compute']['rabbit']['use_ssl'] = false +end + +# Messaging attributes used by the OpenStack Image (Glance) service +default['openstack']['mq']['image']['service_type'] = node['openstack']['mq']['service_type'] +default['openstack']['mq']['image']['notifier_strategy'] = 'noop' +case node['openstack']['mq']['image']['service_type'] +when 'qpid' + default['openstack']['mq']['image']['qpid']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['image']['qpid']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['image']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] + default['openstack']['mq']['image']['qpid']['username'] = '' + default['openstack']['mq']['image']['qpid']['password'] = '' + default['openstack']['mq']['image']['qpid']['sasl_mechanisms'] = '' + default['openstack']['mq']['image']['qpid']['reconnect'] = true + default['openstack']['mq']['image']['qpid']['reconnect_timeout'] = 0 + default['openstack']['mq']['image']['qpid']['reconnect_limit'] = 0 + default['openstack']['mq']['image']['qpid']['reconnect_interval_min'] = 0 + default['openstack']['mq']['image']['qpid']['reconnect_interval_max'] = 0 + default['openstack']['mq']['image']['qpid']['reconnect_interval'] = 0 + default['openstack']['mq']['image']['qpid']['heartbeat'] = 60 + default['openstack']['mq']['image']['qpid']['protocol'] = 'tcp' + default['openstack']['mq']['image']['qpid']['tcp_nodelay'] = true +when 'rabbitmq' + default['openstack']['mq']['image']['rabbit']['userid'] = node['openstack']['mq']['user'] + default['openstack']['mq']['image']['rabbit']['vhost'] = node['openstack']['mq']['vhost'] + default['openstack']['mq']['image']['rabbit']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['image']['rabbit']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['image']['rabbit']['use_ssl'] = false +end + +# Messaging attributes used by the OpenStack Metering (Ceilometer) service +default['openstack']['mq']['metering']['service_type'] = node['openstack']['mq']['service_type'] +case node['openstack']['mq']['metering']['service_type'] +when 'qpid' + default['openstack']['mq']['metering']['qpid']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['metering']['qpid']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['metering']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] + default['openstack']['mq']['metering']['qpid']['username'] = '' + default['openstack']['mq']['metering']['qpid']['password'] = '' + default['openstack']['mq']['metering']['qpid']['sasl_mechanisms'] = '' + default['openstack']['mq']['metering']['qpid']['reconnect'] = true + default['openstack']['mq']['metering']['qpid']['reconnect_timeout'] = 0 + default['openstack']['mq']['metering']['qpid']['reconnect_limit'] = 0 + default['openstack']['mq']['metering']['qpid']['reconnect_interval_min'] = 0 + default['openstack']['mq']['metering']['qpid']['reconnect_interval_max'] = 0 + default['openstack']['mq']['metering']['qpid']['reconnect_interval'] = 0 + default['openstack']['mq']['metering']['qpid']['heartbeat'] = 60 + default['openstack']['mq']['metering']['qpid']['protocol'] = 'tcp' + default['openstack']['mq']['metering']['qpid']['tcp_nodelay'] = true +when 'rabbitmq' + default['openstack']['mq']['metering']['rabbit']['userid'] = node['openstack']['mq']['user'] + default['openstack']['mq']['metering']['rabbit']['vhost'] = node['openstack']['mq']['vhost'] + default['openstack']['mq']['metering']['rabbit']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['metering']['rabbit']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['metering']['rabbit']['ha'] = false + default['openstack']['mq']['metering']['rabbit']['use_ssl'] = false +end + +# Messaging attributes used by the OpenStack Network (Neutron) service +default['openstack']['mq']['network']['service_type'] = node['openstack']['mq']['service_type'] +case node['openstack']['mq']['network']['service_type'] +when 'qpid' + default['openstack']['mq']['network']['qpid']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['network']['qpid']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['network']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] + default['openstack']['mq']['network']['qpid']['username'] = '' + default['openstack']['mq']['network']['qpid']['password'] = '' + default['openstack']['mq']['network']['qpid']['sasl_mechanisms'] = '' + default['openstack']['mq']['network']['qpid']['reconnect'] = true + default['openstack']['mq']['network']['qpid']['reconnect_timeout'] = 0 + default['openstack']['mq']['network']['qpid']['reconnect_limit'] = 0 + default['openstack']['mq']['network']['qpid']['reconnect_interval_min'] = 0 + default['openstack']['mq']['network']['qpid']['reconnect_interval_max'] = 0 + default['openstack']['mq']['network']['qpid']['reconnect_interval'] = 0 + default['openstack']['mq']['network']['qpid']['heartbeat'] = 60 + default['openstack']['mq']['network']['qpid']['protocol'] = 'tcp' + default['openstack']['mq']['network']['qpid']['tcp_nodelay'] = true +when 'rabbitmq' + default['openstack']['mq']['network']['rabbit']['userid'] = node['openstack']['mq']['user'] + default['openstack']['mq']['network']['rabbit']['vhost'] = node['openstack']['mq']['vhost'] + default['openstack']['mq']['network']['rabbit']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['network']['rabbit']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['network']['rabbit']['ha'] = false +end + +# Messaging attributes used by the OpenStack Orchestration (Heat) service +default['openstack']['mq']['orchestration']['service_type'] = node['openstack']['mq']['service_type'] +case node['openstack']['mq']['orchestration']['service_type'] +when 'qpid' + default['openstack']['mq']['orchestration']['qpid']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['orchestration']['qpid']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['orchestration']['qpid']['qpid_hosts'] = ['127.0.0.1:5672'] + default['openstack']['mq']['orchestration']['qpid']['username'] = '' + default['openstack']['mq']['orchestration']['qpid']['password'] = '' + default['openstack']['mq']['orchestration']['qpid']['sasl_mechanisms'] = '' + default['openstack']['mq']['orchestration']['qpid']['reconnect'] = true + default['openstack']['mq']['orchestration']['qpid']['reconnect_timeout'] = 0 + default['openstack']['mq']['orchestration']['qpid']['reconnect_limit'] = 0 + default['openstack']['mq']['orchestration']['qpid']['reconnect_interval_min'] = 0 + default['openstack']['mq']['orchestration']['qpid']['reconnect_interval_max'] = 0 + default['openstack']['mq']['orchestration']['qpid']['reconnect_interval'] = 0 + default['openstack']['mq']['orchestration']['qpid']['heartbeat'] = 60 + default['openstack']['mq']['orchestration']['qpid']['protocol'] = 'tcp' + default['openstack']['mq']['orchestration']['qpid']['tcp_nodelay'] = true +when 'rabbitmq' + default['openstack']['mq']['orchestration']['rabbit']['userid'] = node['openstack']['mq']['user'] + default['openstack']['mq']['orchestration']['rabbit']['vhost'] = node['openstack']['mq']['vhost'] + default['openstack']['mq']['orchestration']['rabbit']['port'] = node['openstack']['mq']['port'] + default['openstack']['mq']['orchestration']['rabbit']['host'] = node['openstack']['mq']['host'] + default['openstack']['mq']['orchestration']['rabbit']['ha'] = false + default['openstack']['mq']['orchestration']['rabbit']['use_ssl'] = false +end diff --git a/libraries/database.rb b/libraries/database.rb index d93dd555..c48a80e5 100644 --- a/libraries/database.rb +++ b/libraries/database.rb @@ -32,7 +32,7 @@ module ::Openstack if info host = info['host'] port = info['port'].to_s - type = info['db_type'] + type = info['service_type'] db_name = info['db_name'] case type when "postgresql", "pgsql" diff --git a/libraries/endpoints.rb b/libraries/endpoints.rb index 0398c1a6..6ba9e462 100644 --- a/libraries/endpoints.rb +++ b/libraries/endpoints.rb @@ -58,7 +58,7 @@ module ::Openstack if info host = info['host'] port = info['port'].to_s - type = info['db_type'] + type = info['service_type'] name = info['db_name'] if type == "pgsql" # Normalize to the SQLAlchemy standard db type identifier