]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Ability to configure api, collector and notification workers 53/14653/2 mos-8.0 7.0.0-rc3
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 15:46:20 +0000 (18:46 +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>
Take part of commit 6156cb49f29b13321bb719de57e4e4cd08838a3d
to use os_service_default fact.

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
spec/spec_helper.rb

index 00702aa2c2fac3cbeeb20ccfcdaba06b6abb9228..5c6af49f41515d0c68debdece94abb34c7256811 100644 (file)
 #   (optional) Save event details.
 #   Defaults to false
 #
+# [*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,
-  $package_ensure     = 'present',
+  $manage_service            = true,
+  $enabled                   = true,
+  $ack_on_event_error        = true,
+  $store_events              = false,
+  $notification_workers      = $::os_service_default,
+  $package_ensure            = 'present',
 ) {
 
   include ::ceilometer::params
@@ -84,8 +88,9 @@ class ceilometer::agent::notification (
   }
 
   ceilometer_config {
-    'notification/ack_on_event_error': value => $ack_on_event_error;
-    'notification/store_events'      : value => $store_events;
+    'notification/ack_on_event_error'       : value => $ack_on_event_error;
+    'notification/store_events'             : value => $store_events;
+    '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 8e22a93eba0908d7a93d6909e30d93ebd2efb971..7085e15b0103cb2e20968dfeefe5987c7524ec8f 100644 (file)
 #    (optional) the ceilometer collector udp bind port.
 #    Defaults to '4952'
 #
+#  [*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',
+  $manage_service    = true,
+  $enabled           = true,
+  $package_ensure    = 'present',
+  $udp_address       = '0.0.0.0',
+  $udp_port          = '4952',
+  $collector_workers = $::os_service_default,
 ) {
 
   include ::ceilometer::params
@@ -41,8 +46,9 @@ class ceilometer::collector (
   }
 
   ceilometer_config {
-    'collector/udp_address' : value => $udp_address;
-    'collector/udp_port'    : value => $udp_port;
+    'collector/udp_address':     value => $udp_address;
+    'collector/udp_port':        value => $udp_port;
+    'DEFAULT/collector_workers': value => $collector_workers;
   }
 
   Package[$::ceilometer::params::collector_package_name] -> Service['ceilometer-collector']
index 550a7559a084746396e0c5c3f331daa510cc488b..8b7f26911a8487b8ef48a607139115beafba1e9e 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] )
     end
@@ -89,7 +90,7 @@ describe 'ceilometer::agent::notification' do
 
   context 'on Debian platforms' do
     let :facts do
-      { :osfamily => 'Debian' }
+      @default_facts.merge({ :osfamily => 'Debian' })
     end
 
     let :platform_params do
@@ -102,7 +103,7 @@ describe 'ceilometer::agent::notification' do
 
   context 'on RedHat platforms' do
     let :facts do
-      { :osfamily => 'RedHat' }
+      @default_facts.merge({ :osfamily => 'RedHat' })
     end
 
     let :platform_params do
@@ -115,10 +116,12 @@ describe 'ceilometer::agent::notification' do
 
   context 'on RHEL 7' do
     let :facts do
-      { :osfamily                  => 'RedHat',
-        :operatingsystem           => 'RedHat',
-        :operatingsystemmajrelease => 7
-      }
+      @default_facts.merge(
+        { :osfamily                  => 'RedHat',
+          :operatingsystem           => 'RedHat',
+          :operatingsystemmajrelease => 7
+        }
+      )
     end
 
     let :platform_params do
@@ -131,10 +134,12 @@ describe 'ceilometer::agent::notification' do
 
   context 'on CentOS 7' do
     let :facts do
-      { :osfamily                  => 'RedHat',
-        :operatingsystem           => 'CentOS',
-        :operatingsystemmajrelease => 7
-      }
+      @default_facts.merge(
+        { :osfamily                  => 'RedHat',
+          :operatingsystem           => 'CentOS',
+          :operatingsystemmajrelease => 7
+        }
+      )
     end
 
     let :platform_params do
@@ -147,10 +152,12 @@ describe 'ceilometer::agent::notification' do
 
   context 'on Scientific 7' do
     let :facts do
-      { :osfamily                  => 'RedHat',
-        :operatingsystem           => 'Scientific',
-        :operatingsystemmajrelease => 7
-      }
+      @default_facts.merge(
+        { :osfamily                  => 'RedHat',
+          :operatingsystem           => 'Scientific',
+          :operatingsystemmajrelease => 7
+        }
+      )
     end
 
     let :platform_params do
@@ -163,10 +170,12 @@ describe 'ceilometer::agent::notification' do
 
   context 'on Fedora 20' do
     let :facts do
-      { :osfamily               => 'RedHat',
-        :operatingsystem        => 'Fedora',
-        :operatingsystemrelease => 20
-      }
+      @default_facts.merge(
+        { :osfamily               => 'RedHat',
+          :operatingsystem        => 'Fedora',
+          :operatingsystemrelease => 20
+        }
+      )
     end
 
     let :platform_params do
index 094e2181bea31a808bd954e9ad5ca06f379ba882..cba6284d800bf1325ac34759e7a26916a36b98f4 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
@@ -154,12 +155,14 @@ describe 'ceilometer::api' do
 
   context 'on Debian platforms' do
     let :facts do
-      { :osfamily               => 'Debian',
-        :operatingsystem        => 'Debian',
-        :operatingsystemrelease => '8.0',
-        :concat_basedir         => '/var/lib/puppet/concat',
-        :fqdn                   => 'some.host.tld',
-        :processorcount         => 2 }
+      @default_facts.merge(
+        { :osfamily               => 'Debian',
+          :operatingsystem        => 'Debian',
+          :operatingsystemrelease => '8.0',
+          :concat_basedir         => '/var/lib/puppet/concat',
+          :fqdn                   => 'some.host.tld',
+          :processorcount         => 2 }
+      )
     end
 
     let :platform_params do
@@ -172,12 +175,14 @@ describe 'ceilometer::api' do
 
   context 'on RedHat platforms' do
     let :facts do
-      { :osfamily               => 'RedHat',
-        :operatingsystem        => 'RedHat',
-        :operatingsystemrelease => '7.1',
-        :fqdn                   => 'some.host.tld',
-        :concat_basedir         => '/var/lib/puppet/concat',
-        :processorcount         => 2 }
+      @default_facts.merge(
+        { :osfamily               => 'RedHat',
+          :operatingsystem        => 'RedHat',
+          :operatingsystemrelease => '7.1',
+          :fqdn                   => 'some.host.tld',
+          :concat_basedir         => '/var/lib/puppet/concat',
+          :processorcount         => 2 }
+      )
     end
 
     let :platform_params do
@@ -190,7 +195,7 @@ describe 'ceilometer::api' do
 
   describe 'with custom auth_uri' do
     let :facts do
-      { :osfamily => 'RedHat' }
+      @default_facts.merge({ :osfamily => 'RedHat' })
     end
     before do
       params.merge!({
@@ -204,7 +209,7 @@ describe 'ceilometer::api' do
 
   describe "with custom keystone identity_uri" do
     let :facts do
-      { :osfamily => 'RedHat' }
+      @default_facts.merge({ :osfamily => 'RedHat' })
     end
     before do
       params.merge!({ 
@@ -223,7 +228,7 @@ describe 'ceilometer::api' do
 
   describe "with custom keystone identity_uri and auth_uri" do
     let :facts do
-      { :osfamily => 'RedHat' }
+      @default_facts.merge({ :osfamily => 'RedHat' })
     end
     before do
       params.merge!({ 
index 6a0ade1cac8facc78babbab5b7b48da044f3102d..a366c4b06a40f29542caae1bfe6f9fe2b2c1db0c 100644 (file)
@@ -51,6 +51,7 @@ describe 'ceilometer::collector' do
       it 'configures ceilometer-collector server' do
         is_expected.to contain_ceilometer_config('collector/udp_address').with_value( '0.0.0.0' )
         is_expected.to contain_ceilometer_config('collector/udp_port').with_value( '4952' )
+        is_expected.to contain_ceilometer_config('DEFAULT/collector_workers').with_value('<SERVICE DEFAULT>')
       end
 
       it 'installs ceilometer-collector package' do
@@ -109,7 +110,7 @@ describe 'ceilometer::collector' do
 
   context 'on Debian platforms' do
     let :facts do
-      { :osfamily => 'Debian' }
+      @default_facts.merge({ :osfamily => 'Debian' })
     end
 
     let :platform_params do
@@ -122,7 +123,7 @@ describe 'ceilometer::collector' do
 
   context 'on RedHat platforms' do
     let :facts do
-      { :osfamily => 'RedHat' }
+      @default_facts.merge({ :osfamily => 'RedHat' })
     end
 
     let :platform_params do
index 3df4cede10e1f2e489b73e4d09dc4204eb9649d2..9bc7bcf96e09043ea23b5625ad9f25fba019f331 100644 (file)
@@ -5,6 +5,9 @@ require 'webmock/rspec'
 RSpec.configure do |c|
   c.alias_it_should_behave_like_to :it_configures, 'configures'
   c.alias_it_should_behave_like_to :it_raises, 'raises'
+  c.before :each do
+    @default_facts = { :os_service_default => '<SERVICE DEFAULT>' }
+  end
 end
 
 at_exit { RSpec::Puppet::Coverage.report! }