]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
add mongodb_replica_set option to ceilometer module
authorMykyta Karpin <mkarpin@mirantis.com>
Thu, 22 Oct 2015 13:38:25 +0000 (16:38 +0300)
committerMykyta Karpin <mkarpin@mirantis.com>
Wed, 28 Oct 2015 09:05:01 +0000 (11:05 +0200)
   This option sets name of the replica set
   which is used to connect to MongoDB database.

Change-Id: I6e5149d4f830677fc4bf3e363f7b999c0b06e399

manifests/db.pp
spec/classes/ceilometer_db_spec.rb

index dc01e26cb78a12ea755d3627fe26f797aa00a950..6ac0218f517e73cf7b08a92bffc78b0b35e8e281 100644 (file)
 #   If set, use this value for max_overflow with sqlalchemy.
 #   (Optional) Defaults to 20.
 #
+# [*mongodb_replica_set*]
+#   The name of the replica set which is used to connect to MongoDB
+#   database. If it is set, MongoReplicaSetClient will be used instead
+#   of MongoClient.
+#   (Optional) Defaults to undef (string value).
+#
 #  [*sync_db*]
 #    enable dbsync.
 #
@@ -47,6 +53,7 @@ class ceilometer::db (
   $database_retry_interval = 10,
   $database_max_overflow   = 20,
   $sync_db                 = true,
+  $mongodb_replica_set     = undef,
 ) {
 
   include ::ceilometer::params
@@ -68,6 +75,11 @@ class ceilometer::db (
     }
     /^mongodb:\/\//: {
       $backend_package = $::ceilometer::params::pymongo_package_name
+      if $mongodb_replica_set {
+        ceilometer_config { 'database/mongodb_replica_set':  value => $mongodb_replica_set; }
+      } else {
+        ceilometer_config { 'database/mongodb_replica_set':  ensure => absent; }
+      }
     }
     /^sqlite:\/\//: {
       $backend_package = $::ceilometer::params::sqlite_package_name
index 552ca0b7cd869e745d018563b193902dd9a1c12c..ab352032c21a3370cca78858673ff60974f44d75 100644 (file)
@@ -13,6 +13,7 @@ describe 'ceilometer::db' do
       it { is_expected.to contain_ceilometer_config('database/min_pool_size').with_value('1') }
       it { is_expected.to contain_ceilometer_config('database/max_retries').with_value('10') }
       it { is_expected.to contain_ceilometer_config('database/retry_interval').with_value('10') }
+      it { is_expected.not_to contain_ceilometer_config('database/mongodb_replica_set') }
 
     end
 
@@ -33,12 +34,14 @@ describe 'ceilometer::db' do
       it { is_expected.to contain_ceilometer_config('database/min_pool_size').with_value('2') }
       it { is_expected.to contain_ceilometer_config('database/max_retries').with_value('11') }
       it { is_expected.to contain_ceilometer_config('database/retry_interval').with_value('11') }
+      it { is_expected.to contain_ceilometer_config('database/mongodb_replica_set').with_ensure( 'absent' ) }
 
     end
 
-    context 'with mongodb backend' do
+    context 'with mongodb backend and replica set' do
       let :params do
-        { :database_connection     => 'mongodb://localhost:1234/ceilometer', }
+        { :database_connection     => 'mongodb://localhost:1234/ceilometer',
+          :mongodb_replica_set     => 'foobar' }
       end
 
       it 'install the proper backend package' do
@@ -49,6 +52,8 @@ describe 'ceilometer::db' do
         )
       end
 
+      it { is_expected.to contain_ceilometer_config('database/mongodb_replica_set').with_value( 'foobar' ) }
+
     end