Add support for workers option
This change introduces support for workers option of aodh services (evaluator, listener, notifier) so that operators can define number of processes used in each service. Change-Id: Id64fc407d19aa546512078f67df3a727fd9f5525
This commit is contained in:
parent
99eb188512
commit
ae9b91107d
@ -13,6 +13,10 @@
|
||||
# (optional) ensure state for package.
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*workers*]
|
||||
# (optional) Number of workers for evaluator service.
|
||||
# Defaults to $::os_workers.
|
||||
#
|
||||
# [*coordination_url*]
|
||||
# (optional) The url to use for distributed group membership coordination.
|
||||
# Defaults to undef.
|
||||
@ -25,6 +29,7 @@ class aodh::evaluator (
|
||||
$manage_service = true,
|
||||
$enabled = true,
|
||||
$package_ensure = 'present',
|
||||
$workers = $::os_workers,
|
||||
$coordination_url = undef,
|
||||
$evaluation_interval = $::os_service_default,
|
||||
) {
|
||||
@ -32,9 +37,18 @@ class aodh::evaluator (
|
||||
include aodh::deps
|
||||
include aodh::params
|
||||
|
||||
if $coordination_url == undef and !is_service_default($workers) and $workers > 1 {
|
||||
warning('coordination_url should be set to use multiple workers')
|
||||
$workers_real = $::os_service_default
|
||||
} else {
|
||||
$workers_real = $workers
|
||||
}
|
||||
|
||||
aodh_config {
|
||||
'DEFAULT/evaluation_interval' : value => $evaluation_interval;
|
||||
'evaluator/workers' : value => $workers_real;
|
||||
}
|
||||
|
||||
if $coordination_url {
|
||||
aodh_config {
|
||||
'coordination/backend_url' : value => $coordination_url;
|
||||
|
@ -13,15 +13,24 @@
|
||||
# (optional) ensure state for package.
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*workers*]
|
||||
# (optional) Number of workers for evaluator service.
|
||||
# Defaults to $::os_workers.
|
||||
#
|
||||
class aodh::listener (
|
||||
$manage_service = true,
|
||||
$enabled = true,
|
||||
$package_ensure = 'present',
|
||||
$workers = $::os_workers,
|
||||
) {
|
||||
|
||||
include aodh::deps
|
||||
include aodh::params
|
||||
|
||||
aodh_config {
|
||||
'listener/workers': value => $workers
|
||||
}
|
||||
|
||||
ensure_resource( 'package', [$::aodh::params::listener_package_name],
|
||||
{ ensure => $package_ensure,
|
||||
tag => ['openstack', 'aodh-package'] }
|
||||
|
@ -13,15 +13,24 @@
|
||||
# (optional) ensure state for package.
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*workers*]
|
||||
# (optional) Number of workers for notifier service.
|
||||
# Defaults to $::os_workers.
|
||||
#
|
||||
class aodh::notifier (
|
||||
$manage_service = true,
|
||||
$enabled = true,
|
||||
$package_ensure = 'present',
|
||||
$workers = $::os_workers,
|
||||
) {
|
||||
|
||||
include aodh::deps
|
||||
include aodh::params
|
||||
|
||||
aodh_config {
|
||||
'notifier/workers': value => $workers;
|
||||
}
|
||||
|
||||
ensure_resource( 'package', [$::aodh::params::notifier_package_name],
|
||||
{ ensure => $package_ensure,
|
||||
tag => ['openstack', 'aodh-package'] }
|
||||
|
9
releasenotes/notes/workers-054d3bafa34171d9.yaml
Normal file
9
releasenotes/notes/workers-054d3bafa34171d9.yaml
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The new parameters have been added to support workers option in each aodh
|
||||
services.
|
||||
|
||||
- ``aodh::evaluator::workers``
|
||||
- ``aodh::listener::workers``
|
||||
- ``aodh::notifier::workers``
|
@ -21,14 +21,35 @@ describe 'aodh::evaluator' do
|
||||
is_expected.to contain_aodh_config('coordination/backend_url').with_value('redis://localhost:6379')
|
||||
end
|
||||
|
||||
it 'configures workers' do
|
||||
is_expected.to contain_aodh_config('evaluator/workers').with_value(4)
|
||||
end
|
||||
|
||||
it 'installs python-redis package' do
|
||||
is_expected.to contain_package('python-redis').with(
|
||||
:name => platform_params[:redis_package_name],
|
||||
:tag => 'openstack'
|
||||
:tag => 'openstack'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with coordination and workers' do
|
||||
before do
|
||||
params.merge!({
|
||||
:coordination_url => 'redis://localhost:6379',
|
||||
:workers => 8,
|
||||
})
|
||||
end
|
||||
|
||||
it 'configures backend_url' do
|
||||
is_expected.to contain_aodh_config('coordination/backend_url').with_value('redis://localhost:6379')
|
||||
end
|
||||
|
||||
it 'configures workers' do
|
||||
is_expected.to contain_aodh_config('evaluator/workers').with_value(8)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with evaluation interval' do
|
||||
before do
|
||||
params.merge!({ :evaluation_interval => '10' })
|
||||
@ -38,6 +59,14 @@ describe 'aodh::evaluator' do
|
||||
end
|
||||
end
|
||||
|
||||
context 'with workers' do
|
||||
before do
|
||||
params.merge!({ :workers => 8 })
|
||||
end
|
||||
it 'does not configure workers' do
|
||||
is_expected.to contain_aodh_config('evaluator/workers').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when enabled' do
|
||||
it { is_expected.to contain_class('aodh::params') }
|
||||
@ -60,6 +89,10 @@ describe 'aodh::evaluator' do
|
||||
)
|
||||
end
|
||||
|
||||
it 'sets default values' do
|
||||
is_expected.to contain_aodh_config('DEFAULT/evaluation_interval').with_value('<SERVICE DEFAULT>')
|
||||
is_expected.to contain_aodh_config('evaluator/workers').with_value('<SERVICE DEFAULT>')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when disabled' do
|
||||
@ -98,10 +131,7 @@ describe 'aodh::evaluator' do
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts({
|
||||
:fqdn => 'some.host.tld',
|
||||
:concat_basedir => '/var/lib/puppet/concat'
|
||||
}))
|
||||
facts.merge!(OSDefaults.get_facts({ :os_workers => 4 }))
|
||||
end
|
||||
|
||||
let(:platform_params) do
|
||||
|
@ -8,6 +8,16 @@ describe 'aodh::listener' do
|
||||
|
||||
shared_examples_for 'aodh-listener' do
|
||||
|
||||
context 'with workers' do
|
||||
let :params do
|
||||
{ :workers => 8 }
|
||||
end
|
||||
|
||||
it 'configures workers' do
|
||||
is_expected.to contain_aodh_config('listener/workers').with_value(8)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when enabled' do
|
||||
it { is_expected.to contain_class('aodh::params') }
|
||||
|
||||
@ -29,6 +39,9 @@ describe 'aodh::listener' do
|
||||
)
|
||||
end
|
||||
|
||||
it 'sets default values' do
|
||||
is_expected.to contain_aodh_config('listener/workers').with_value(4)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when disabled' do
|
||||
@ -67,7 +80,7 @@ describe 'aodh::listener' do
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
facts.merge!(OSDefaults.get_facts({ :os_workers => 4 }))
|
||||
end
|
||||
|
||||
let(:platform_params) do
|
||||
|
@ -8,6 +8,16 @@ describe 'aodh::notifier' do
|
||||
|
||||
shared_examples_for 'aodh-notifier' do
|
||||
|
||||
context 'with workers' do
|
||||
let :params do
|
||||
{ :workers => 8 }
|
||||
end
|
||||
|
||||
it 'configures workers' do
|
||||
is_expected.to contain_aodh_config('notifier/workers').with_value(8)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when enabled' do
|
||||
it { is_expected.to contain_class('aodh::params') }
|
||||
|
||||
@ -29,6 +39,9 @@ describe 'aodh::notifier' do
|
||||
)
|
||||
end
|
||||
|
||||
it 'sets default values' do
|
||||
is_expected.to contain_aodh_config('notifier/workers').with_value(4)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when disabled' do
|
||||
@ -67,7 +80,7 @@ describe 'aodh::notifier' do
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
facts.merge!(OSDefaults.get_facts({ :os_workers => 4 }))
|
||||
end
|
||||
|
||||
let(:platform_params) do
|
||||
|
Loading…
x
Reference in New Issue
Block a user