aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2017-01-09 10:17:35 -0500
committerAlex Schultz <aschultz@redhat.com>2017-01-09 14:34:45 -0700
commit7af9ff39e96acd306bdddcf8f6e48a20fe7ee3f0 (patch)
tree9bcc6b8688c3815886615941d57a584009c085a1
parent77cd102c9a96c1be4bef7f8afb95f300c06d2134 (diff)
Move nova cells db sync into nova-api profile
Having the db_sync code live in the mysql profile causes coupling that doesn't work unless your MySQL server has the latest Nova packages installed. This may not work for some baremetal setups (where an isolated database exists) or with containers where the MySQL container definately doesn't have nova packages installed. Moving this code into the nova-api role also matches where we were already db syncing the normal API database so it should be fine and safe. Change-Id: Ib625e2ac9c8d6bd1d335c58e291facc4ea5839ae Co-Authored-By: Alex Schultz <aschultz@redhat.com>
-rw-r--r--manifests/profile/base/database/mysql.pp65
-rw-r--r--manifests/profile/base/nova.pp7
-rw-r--r--manifests/profile/base/nova/api.pp19
3 files changed, 26 insertions, 65 deletions
diff --git a/manifests/profile/base/database/mysql.pp b/manifests/profile/base/database/mysql.pp
index 54f6574..1e53048 100644
--- a/manifests/profile/base/database/mysql.pp
+++ b/manifests/profile/base/database/mysql.pp
@@ -66,37 +66,6 @@
# for more details.
# Defaults to hiera('step')
#
-# [*nova_messaging_driver*]
-# Driver for messaging service. Will fallback to looking up in hiera
-# using hiera('messaging_service_name', 'rabbit') if the parameter is not
-# specified.
-# Defaults to undef.
-#
-# [*nova_messaging_hosts*]
-# list of the messaging host fqdns. Will fallback to looking up in hiera
-# using hiera('rabbitmq_node_names') if the parameter is not specified.
-# Defaults to undef.
-#
-# [*nova_messaging_port*]
-# IP port for messaging service. Will fallback to looking up in hiera using
-# hiera('nova::rabbit_port', 5672) if the parameter is not specified.
-# Defaults to undef.
-#
-# [*nova_messaging_username*]
-# Username for messaging nova queue. Will fallback to looking up in hiera
-# using hiera('nova::rabbit_userid', 'guest') if the parameter is not
-# specified.
-# Defaults to undef.
-#
-# [*nova_messaging_password*]
-# Password for messaging nova queue. Will fallback to looking up in hiera
-# using hiera('nova::rabbit_password') if the parameter is not specified.
-# Defaults to undef.
-#
-# [*nova_messaging_use_ssl*]
-# Flag indicating ssl usage. Will fallback to looking up in hiera using
-# hiera('nova::rabbit_use_ssl', '0') if the parameter is not specified.
-# Defaults to undef.
#
class tripleo::profile::base::database::mysql (
$bind_address = $::hostname,
@@ -108,12 +77,6 @@ class tripleo::profile::base::database::mysql (
$mysql_server_options = {},
$remove_default_accounts = true,
$step = hiera('step'),
- $nova_messaging_driver = undef,
- $nova_messaging_hosts = undef,
- $nova_messaging_password = undef,
- $nova_messaging_port = undef,
- $nova_messaging_username = undef,
- $nova_messaging_use_ssl = undef,
) {
if $::hostname == downcase($bootstrap_node) {
@@ -214,35 +177,7 @@ class tripleo::profile::base::database::mysql (
}
if hiera('nova_api_enabled', false) {
include ::nova::db::mysql
- # NOTE(aschultz): I am generally opposed to this, however given that the
- # nova api is optional, we need to do this lookups only if not provided
- # via parameters.
- $messaging_driver_real = pick($nova_messaging_driver,
- hiera('messaging_service_name', 'rabbit'))
- $messaging_hosts_real = any2array(
- pick($nova_messaging_hosts, hiera('rabbitmq_node_names')))
- # TODO(aschultz): remove sprintf once we properly type the port, needs
- # to be a string for the os_transport_url function.
- $messaging_port_real = sprintf('%s',
- pick($nova_messaging_port, hiera('nova::rabbit_port', '5672')))
- $messaging_username_real = pick($nova_messaging_username,
- hiera('nova::rabbit_userid', 'guest'))
- $messaging_password_real = pick($nova_messaging_password,
- hiera('nova::rabbit_password'))
- $messaging_use_ssl_real = sprintf('%s', bool2num(str2bool(
- pick($nova_messaging_use_ssl, hiera('nova::rabbit_user_ssl', '0')))))
-
include ::nova::db::mysql_api
- class { '::nova::db::sync_cell_v2':
- transport_url => os_transport_url({
- 'transport' => $messaging_driver_real,
- 'hosts' => $messaging_hosts_real,
- 'port' => $messaging_port_real,
- 'username' => $messaging_username_real,
- 'password' => $messaging_password_real,
- 'ssl' => $messaging_use_ssl_real,
- }),
- }
}
if hiera('sahara_api_enabled', false) {
include ::sahara::db::mysql
diff --git a/manifests/profile/base/nova.pp b/manifests/profile/base/nova.pp
index ab9700f..63adbef 100644
--- a/manifests/profile/base/nova.pp
+++ b/manifests/profile/base/nova.pp
@@ -50,6 +50,10 @@
# Username for messaging nova queue
# Defaults to hiera('nova::rabbit_userid', 'guest')
#
+# [*messaging_use_ssl*]
+# Flag indicating ssl usage.
+# Defaults to hiera('nova::rabbit_use_ssl', '0')
+#
# [*nova_compute_enabled*]
# (Optional) Whether or not nova-compute is enabled.
# Defaults to false
@@ -67,6 +71,7 @@ class tripleo::profile::base::nova (
$messaging_password = hiera('nova::rabbit_password'),
$messaging_port = hiera('nova::rabbit_port', '5672'),
$messaging_username = hiera('nova::rabbit_userid', 'guest'),
+ $messaging_use_ssl = hiera('nova::rabbit_use_ssl', '0'),
$nova_compute_enabled = false,
$step = hiera('step'),
) {
@@ -83,6 +88,7 @@ class tripleo::profile::base::nova (
}
if hiera('step') >= 4 or (hiera('step') >= 3 and $sync_db) {
+ $messaging_use_ssl_real = sprintf('%s', bool2num(str2bool($messaging_use_ssl)))
# TODO(ccamacho): remove sprintf once we properly type the port, needs
# to be a string for the os_transport_url function.
class { '::nova' :
@@ -92,6 +98,7 @@ class tripleo::profile::base::nova (
'port' => sprintf('%s', $messaging_port),
'username' => $messaging_username,
'password' => $messaging_password,
+ 'ssl' => $messaging_use_ssl_real,
}),
}
include ::nova::config
diff --git a/manifests/profile/base/nova/api.pp b/manifests/profile/base/nova/api.pp
index 69b90fa..b4e3d74 100644
--- a/manifests/profile/base/nova/api.pp
+++ b/manifests/profile/base/nova/api.pp
@@ -85,6 +85,25 @@ class tripleo::profile::base::nova::api (
$tls_keyfile = undef
}
+ if ($step >= 3 and $sync_db) {
+ $messaging_hosts_real = any2array($::tripleo::profile::base::nova::messaging_hosts)
+ # TODO(aschultz): remove sprintf once we properly type the port, needs
+ # to be a string for the os_transport_url function.
+ $messaging_port_real = sprintf('%s', $::tripleo::profile::base::nova::messaging_port)
+ $messaging_use_ssl_real = sprintf('%s', bool2num(str2bool($::tripleo::profile::base::nova::messaging_use_ssl)))
+
+ class { '::nova::db::sync_cell_v2':
+ transport_url => os_transport_url({
+ 'transport' => $::tripleo::profile::base::nova::messaging_driver,
+ 'hosts' => $messaging_hosts_real,
+ 'port' => $messaging_port_real,
+ 'username' => $::tripleo::profile::base::nova::messaging_username,
+ 'password' => $::tripleo::profile::base::nova::messaging_password,
+ 'ssl' => $messaging_use_ssl_real,
+ }),
+ }
+ }
+
if $step >= 4 or ($step >= 3 and $sync_db) {
if hiera('nova::use_ipv6', false) {