]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Ability to configure api, collector and notification workers
authorRadoslaw Smigielski <radoslaw.smigielski@alcatel-lucent.com>
Mon, 21 Sep 2015 19:40:55 +0000 (21:40 +0200)
committeriberezovskiy <iberezovskiy@mirantis.com>
Mon, 14 Dec 2015 11:19:25 +0000 (14:19 +0300)
We've been missing ability to configure two options:
 - collector_workers, number of workers for collector service.
 - notification_workers, number of workers for notification service.
 - api_workers, number of workers for api service.

Co-Authored-By: Ivan Berezovskiy <iberezovskiy@mirantis.com>
Change-Id: Ifc1f1623289560f873442a702a23a5cc1c831c72

manifests/agent/notification.pp
manifests/api.pp
manifests/collector.pp
spec/classes/ceilometer_agent_notification_spec.rb
spec/classes/ceilometer_api_spec.rb
spec/classes/ceilometer_collector_spec.rb

index 0d0af2f230567f85e896c3fb5ae82f4c083960a9..3f961611c0603ba43bacf06e3f90d085fe5a7db1 100644 (file)
 # [*disable_non_metric_meters*]
 #   (optional) Disable or enable the collection of non-metric meters.
 #   Default to $::os_service_default
+# [*notification_workers*]
+#   (optional) Number of workers for notification service (integer value).
+#   Defaults to $::os_service_default
 #
 #  [*package_ensure*]
 #    (optional) ensure state for package.
 #    Defaults to 'present'
 #
-
 class ceilometer::agent::notification (
   $manage_service            = true,
   $enabled                   = true,
   $ack_on_event_error        = true,
   $store_events              = false,
   $disable_non_metric_meters = $::os_service_default,
+  $notification_workers      = $::os_service_default,
   $package_ensure            = 'present',
 ) {
 
@@ -92,6 +95,7 @@ class ceilometer::agent::notification (
     'notification/ack_on_event_error'       : value => $ack_on_event_error;
     'notification/store_events'             : value => $store_events;
     'notification/disable_non_metric_meters': value => $disable_non_metric_meters;
+    'DEFAULT/notification_workers'          : value => $notification_workers;
   }
 
 }
index cf9e9dea77122e88c7a19215c86eb19c9ea0ab88..7c696a64fc98844b749f81b5850160bf55792039 100644 (file)
 #   to make ceilometer-api be a web app using apache mod_wsgi.
 #   Defaults to '$::ceilometer::params::api_service_name'
 #
+# [*api_workers*]
+#   (optional) Number of workers for Ceilometer API server (integer value).
+#   Defaults to $::os_service_default
+#
 class ceilometer::api (
   $manage_service             = true,
   $enabled                    = true,
@@ -85,6 +89,7 @@ class ceilometer::api (
   $host                       = '0.0.0.0',
   $port                       = '8777',
   $service_name               = $::ceilometer::params::api_service_name,
+  $api_workers                = $::os_service_default,
   # DEPRECATED PARAMETERS
   $keystone_host              = '127.0.0.1',
   $keystone_port              = '35357',
@@ -145,6 +150,7 @@ class ceilometer::api (
   }
 
   ceilometer_config {
+    'DEFAULT/api_workers'                  : value => $api_workers;
     'keystone_authtoken/admin_tenant_name' : value => $keystone_tenant;
     'keystone_authtoken/admin_user'        : value => $keystone_user;
     'keystone_authtoken/admin_password'    : value => $keystone_password, secret => true;
index bcddc7e46e106d2fa70ddfc99f1784194a2fb324..d58444ba435bfb52f0b5883d396166432d4c477c 100644 (file)
 #    Can be an array or a string.
 #    Defaults to 'database'
 #
+#  [*collector_workers*]
+#    (optional) Number of workers for collector service (integer value).
+#    Defaults to $::os_service_default
+#
 class ceilometer::collector (
-  $manage_service   = true,
-  $enabled          = true,
-  $package_ensure   = 'present',
-  $udp_address      = '0.0.0.0',
-  $udp_port         = '4952',
-  $meter_dispatcher = 'database',
-  $event_dispatcher = 'database',
+  $manage_service    = true,
+  $enabled           = true,
+  $package_ensure    = 'present',
+  $udp_address       = '0.0.0.0',
+  $udp_port          = '4952',
+  $meter_dispatcher  = 'database',
+  $event_dispatcher  = 'database',
+  $collector_workers = $::os_service_default,
 ) {
 
   include ::ceilometer::params
@@ -53,10 +58,11 @@ class ceilometer::collector (
   }
 
   ceilometer_config {
-    'collector/udp_address':    value => $udp_address;
-    'collector/udp_port':       value => $udp_port;
-    'DEFAULT/meter_dispatcher': value => join(any2array($meter_dispatcher), ',');
-    'DEFAULT/event_dispatcher': value => join(any2array($event_dispatcher), ',');
+    'collector/udp_address':     value => $udp_address;
+    'collector/udp_port':        value => $udp_port;
+    'DEFAULT/meter_dispatcher':  value => join(any2array($meter_dispatcher), ',');
+    'DEFAULT/event_dispatcher':  value => join(any2array($event_dispatcher), ',');
+    'DEFAULT/collector_workers': value => $collector_workers;
   }
 
   Package[$::ceilometer::params::collector_package_name] -> Service['ceilometer-collector']
index eb7e36415132c47f0d0d8a7e9a8e6698fc45b81f..dbcde79b0efe44c2f6180a467e2741f532283b7e 100644 (file)
@@ -45,6 +45,7 @@ describe 'ceilometer::agent::notification' do
     end
 
     it 'configures notifications parameters in ceilometer.conf' do
+      is_expected.to contain_ceilometer_config('DEFAULT/notification_workers').with_value('<SERVICE DEFAULT>')
       is_expected.to contain_ceilometer_config('notification/ack_on_event_error').with_value( params[:ack_on_event_error] )
       is_expected.to contain_ceilometer_config('notification/store_events').with_value( params[:store_events] )
       is_expected.to contain_ceilometer_config('notification/disable_non_metric_meters').with_value('<SERVICE DEFAULT>')
index 8676c5a0a105ba91e7ca26fa8142b2ef08986218..eb6c894c2372d77630940cacbb019740259504ec 100644 (file)
@@ -52,6 +52,7 @@ describe 'ceilometer::api' do
       is_expected.to contain_ceilometer_config('keystone_authtoken/auth_uri').with_value( params[:keystone_protocol] + "://" + params[:keystone_host] + ":5000/" )
       is_expected.to contain_ceilometer_config('api/host').with_value( params[:host] )
       is_expected.to contain_ceilometer_config('api/port').with_value( params[:port] )
+      is_expected.to contain_ceilometer_config('DEFAULT/api_workers').with_value('<SERVICE DEFAULT>')
     end
 
     context 'when specifying keystone_auth_admin_prefix' do
index 91de8a8f1d5741e76f42fe2a7df2a89365a06a75..4c680fdfd7099b6395dc00647894ef5b6d999bca 100644 (file)
@@ -55,6 +55,7 @@ describe 'ceilometer::collector' do
         is_expected.to contain_ceilometer_config('collector/udp_port').with_value( '4952' )
         is_expected.to contain_ceilometer_config('DEFAULT/meter_dispatcher').with_value( 'database' )
         is_expected.to contain_ceilometer_config('DEFAULT/event_dispatcher').with_value( 'database' )
+        is_expected.to contain_ceilometer_config('DEFAULT/collector_workers').with_value('<SERVICE DEFAULT>')
       end
 
       it 'installs ceilometer-collector package' do