Ability to configure api, collector and notification workers

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
This commit is contained in:
Radoslaw Smigielski 2015-09-21 21:40:55 +02:00 committed by iberezovskiy
parent 3abf7d16d2
commit 89e31e9ad8
6 changed files with 31 additions and 12 deletions

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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']

View 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>')

View 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

View 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