Only run ceilometer::db::sync on bootstrap node
authorAlex Schultz <aschultz@redhat.com>
Fri, 30 Sep 2016 15:55:24 +0000 (09:55 -0600)
committerAlex Schultz <aschultz@redhat.com>
Fri, 7 Oct 2016 15:17:04 +0000 (15:17 +0000)
The ceilometer::db::sync is included by default in ceilometer::db but we
only want it to run on the bootstrap node.  This change passes the
sync_db parameter to ceilometer::db to manage the db sync process rather
than trying to manage the inclusion of ceilometer::db::sync within the
profile class.

Change-Id: Ib56db1a90dd6fbfe7582fc57b7728df81942cce2
Closes-Bug: #1629373

manifests/profile/base/ceilometer/collector.pp
spec/classes/tripleo_profile_base_ceilometer_collector_spec.rb

index 443873f..3c0a361 100644 (file)
@@ -60,10 +60,6 @@ class tripleo::profile::base::ceilometer::collector (
 
   include ::tripleo::profile::base::ceilometer
 
-  if $step >= 3 and $sync_db {
-    include ::ceilometer::db::sync
-  }
-
   if $step >= 4 or ($step >= 3 and $sync_db) {
     if downcase($ceilometer_backend) == 'mongodb' {
       if empty($mongodb_node_ips) {
@@ -88,10 +84,13 @@ class tripleo::profile::base::ceilometer::collector (
       $ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
 
       class { '::ceilometer::db' :
+        sync_db             => $sync_db,
         database_connection => $ceilometer_mongodb_conn_string,
       }
     } else {
-      include ::ceilometer::db
+      class { '::ceilometer::db' :
+        sync_db => $sync_db,
+      }
     }
     include ::ceilometer::collector
     include ::ceilometer::dispatcher::gnocchi
index e262491..718c700 100644 (file)
@@ -52,6 +52,7 @@ describe 'tripleo::profile::base::ceilometer::collector' do
         is_expected.to contain_class('tripleo::profile::base::ceilometer::collector')
         is_expected.to contain_class('ceilometer::db::sync')
         is_expected.to contain_class('ceilometer::db').with(
+          :sync_db             => true,
           :database_connection => 'mongodb://[::1]:27017,[fe80::ca5b:76ff:fe4b:be3b]:27017/ceilometer?replicaSet=replicaset'
         )
       end
@@ -72,6 +73,9 @@ describe 'tripleo::profile::base::ceilometer::collector' do
         is_expected.to contain_class('ceilometer::db').without(
           :database_connection => 'mongodb://127.0.0.1:27017/ceilometer?replicaSet=replicaset'
         )
+        is_expected.to contain_class('ceilometer::db').with(
+          :sync_db => true
+        )
       end
     end
 
@@ -98,6 +102,7 @@ describe 'tripleo::profile::base::ceilometer::collector' do
       it 'should trigger complete configuration' do
         is_expected.to contain_class('ceilometer::db::sync')
         is_expected.to contain_class('ceilometer::db').with(
+          :sync_db             => true,
           :database_connection => 'mongodb://127.0.0.1:27017/ceilometer?replicaSet=replicaset'
         )
         is_expected.to contain_class('ceilometer::collector')
@@ -114,9 +119,9 @@ describe 'tripleo::profile::base::ceilometer::collector' do
       } }
 
       it 'should trigger complete configuration' do
-        #TODO(aschultz): LP#1629373
-        #is_expected.to_not contain_class('ceilometer::db::sync')
+        is_expected.to_not contain_class('ceilometer::db::sync')
         is_expected.to contain_class('ceilometer::db').with(
+          :sync_db             => false,
           :database_connection => 'mongodb://127.0.0.1:27017/ceilometer?replicaSet=replicaset'
         )
         is_expected.to contain_class('ceilometer::collector')