diff --git a/manifests/agent/notification.pp b/manifests/agent/notification.pp index 0d0af2f2..3f961611 100644 --- a/manifests/agent/notification.pp +++ b/manifests/agent/notification.pp @@ -42,18 +42,21 @@ # [*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; } } diff --git a/manifests/api.pp b/manifests/api.pp index cf9e9dea..7c696a64 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -73,6 +73,10 @@ # 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; diff --git a/manifests/collector.pp b/manifests/collector.pp index bcddc7e4..d58444ba 100644 --- a/manifests/collector.pp +++ b/manifests/collector.pp @@ -32,14 +32,19 @@ # 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'] diff --git a/spec/classes/ceilometer_agent_notification_spec.rb b/spec/classes/ceilometer_agent_notification_spec.rb index eb7e3641..dbcde79b 100644 --- a/spec/classes/ceilometer_agent_notification_spec.rb +++ b/spec/classes/ceilometer_agent_notification_spec.rb @@ -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>') diff --git a/spec/classes/ceilometer_api_spec.rb b/spec/classes/ceilometer_api_spec.rb index 8676c5a0..eb6c894c 100644 --- a/spec/classes/ceilometer_api_spec.rb +++ b/spec/classes/ceilometer_api_spec.rb @@ -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 diff --git a/spec/classes/ceilometer_collector_spec.rb b/spec/classes/ceilometer_collector_spec.rb index 91de8a8f..4c680fdf 100644 --- a/spec/classes/ceilometer_collector_spec.rb +++ b/spec/classes/ceilometer_collector_spec.rb @@ -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