Fix Ceilometer profiles
authorPradeep Kilambi <pkilambi@redhat.com>
Fri, 1 Jul 2016 18:16:52 +0000 (14:16 -0400)
committerEmilien Macchi <emilien@redhat.com>
Thu, 7 Jul 2016 02:50:49 +0000 (22:50 -0400)
* Configure ceilometer to default mongodb backend.
* remove useless sync_db parameter in pacemaker class.
* Remove duplicated resource for ceilometer central agent service with
  pcmk.
* Remove pacemaker delay resource dependency, the resource does not
  exist anymore.

Change-Id: Ie337bfe770c5b22158dc307eb36e39c2b93b95a9

manifests/profile/base/ceilometer.pp
manifests/profile/base/ceilometer/collector.pp
manifests/profile/pacemaker/ceilometer.pp
manifests/profile/pacemaker/ceilometer/api.pp

index 97e1bb8..88818de 100644 (file)
 #   for more details.
 #   Defaults to hiera('step')
 #
-# [*sync_db*]
-#   (Optional) Whether to run db sync
-#   Defaults to true
-#
 class tripleo::profile::base::ceilometer (
-  $step             = hiera('step'),
-  $sync_db = true,
+  $step = hiera('step'),
 ) {
 
-  if $step >= 4 or ($step >= 3 and $sync_db) {
+  if $step >= 3 {
     include ::ceilometer
-    include ::ceilometer::db
     include ::ceilometer::config
   }
 
index 34ee90b..c294e56 100644 (file)
@@ -33,16 +33,44 @@ class tripleo::profile::base::ceilometer::collector (
   $sync_db = true,
 ) {
 
+  $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
+  # MongoDB
+  if $ceilometer_backend == 'mongodb' {
+    # NOTE(gfidente): We need to pass the list of IPv6 addresses *with* port and
+    # without the brackets as 'members' argument for the 'mongodb_replset'
+    # resource.
+    if str2bool(hiera('mongodb::server::ipv6', false)) {
+      $mongo_node_ips_with_port_prefixed = prefix(hiera('mongo_node_ips'), '[')
+      $mongo_node_ips_with_port = suffix($mongo_node_ips_with_port_prefixed, ']:27017')
+      $mongo_node_ips_with_port_nobr = suffix(hiera('mongo_node_ips'), ':27017')
+    } else {
+      $mongo_node_ips_with_port = suffix(hiera('mongo_node_ips'), ':27017')
+      $mongo_node_ips_with_port_nobr = suffix(hiera('mongo_node_ips'), ':27017')
+    }
+    $mongo_node_string = join($mongo_node_ips_with_port, ',')
+
+    $mongodb_replset = hiera('mongodb::server::replset')
+    $ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
+  }
+
   include ::tripleo::profile::base::ceilometer
 
+  if $step >= 2 and $sync_db and $ceilometer_backend == 'mysql' {
+    include ::ceilometer::db::mysql
+  }
+
   if $step >= 3 and $sync_db {
-    $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
-    if $ceilometer_backend == 'mysql' {
-      include ::ceilometer::db::mysql
-    }
+    include ::ceilometer::db::sync
   }
 
-  if $step >= 4 {
+  if $step >= 4 or ($step >= 3 and $sync_db) {
+    if $ceilometer_backend == 'mongodb' {
+      class { '::ceilometer::db' :
+        database_connection => $ceilometer_mongodb_conn_string,
+      }
+    } else {
+      include ::ceilometer::db
+    }
     include ::ceilometer::collector
     include ::ceilometer::dispatcher::gnocchi
   }
index 0c21807..23021fc 100644 (file)
 #   for more details.
 #   Defaults to hiera('step')
 #
-# [*sync_db*]
-#   (Optional) Whether to run db sync
-#   Defaults to undef
-#
 class tripleo::profile::pacemaker::ceilometer (
   $bootstrap_node = hiera('bootstrap_nodeid'),
   $step           = hiera('step'),
-  $sync_db        = true,
 ) {
 
-  if $::hostname == downcase($bootstrap_node) {
-    $pacemaker_master = true
-  } else {
-    $pacemaker_master = false
-  }
-
   include ::tripleo::profile::base::ceilometer
 
-  if $step >= 5 and $pacemaker_master {
-    $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
-    case $ceilometer_backend {
-      /mysql/: {
-        pacemaker::resource::service { $::ceilometer::params::agent_central_service_name:
-          clone_params => 'interleave=true',
-          require      => Pacemaker::Resource::Ocf['openstack-core'],
-        }
-      }
-      default: {
-        pacemaker::resource::service { $::ceilometer::params::agent_central_service_name:
-          clone_params => 'interleave=true',
-          require      => [Pacemaker::Resource::Ocf['openstack-core'],
-            Pacemaker::Resource::Service[$::mongodb::params::service_name]],
-        }
-      }
-    }
-
-    if $sync_db {
-      if $ceilometer_backend == 'mysql' {
-        class { '::ceilometer::db::mysql':
-          require => Exec['galera-ready'],
-        }
+  $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
+  if $step >= 5 and $::hostname == downcase($bootstrap_node) {
+    if $ceilometer_backend == 'mysql' {
+      class { '::ceilometer::db::mysql':
+        require => Exec['galera-ready'],
       }
     }
 
index cfe103a..3006be8 100644 (file)
@@ -40,13 +40,6 @@ class tripleo::profile::pacemaker::ceilometer::api (
     pacemaker::resource::service { $::ceilometer::params::api_service_name :
       clone_params => 'interleave=true',
     }
-    pacemaker::constraint::colocation { 'ceilometer-delay-with-ceilometer-api-colocation':
-      source  => 'delay-clone',
-      target  => "${::ceilometer::params::api_service_name}-clone",
-      score   => 'INFINITY',
-      require => [Pacemaker::Resource::Service[$::ceilometer::params::api_service_name],
-        Pacemaker::Resource::Ocf['delay']],
-    }
   }
 
 }