Add support for worker service
This enables the worker service to be running. Change-Id: I492b61f5eb07d2c3039c8bb0f3e99626399bba62
This commit is contained in:
parent
1bdae22a40
commit
8120a19e9d
|
@ -16,6 +16,7 @@ class designate::params {
|
|||
$pool_manager_service_name = 'designate-pool-manager'
|
||||
$zone_manager_service_name = 'designate-zone-manager'
|
||||
$producer_service_name = 'designate-producer'
|
||||
$worker_service_name = 'designate-worker'
|
||||
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
|
@ -30,6 +31,7 @@ class designate::params {
|
|||
$pool_manager_package_name = 'openstack-designate-pool-manager'
|
||||
$zone_manager_package_name = 'openstack-designate-zone-manager'
|
||||
$producer_package_name = 'openstack-designate-producer'
|
||||
$worker_package_name = 'openstack-designate-worker'
|
||||
}
|
||||
'Debian': {
|
||||
# package name
|
||||
|
@ -43,6 +45,7 @@ class designate::params {
|
|||
$mdns_package_name = 'designate-mdns'
|
||||
$zone_manager_package_name = 'designate-zone-manager'
|
||||
$producer_package_name = 'designate-producer'
|
||||
$worker_package_name = 'designate-worker'
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem")
|
||||
|
|
|
@ -0,0 +1,118 @@
|
|||
# == Class: designate::worker
|
||||
#
|
||||
# Configure designate worker service
|
||||
#
|
||||
# == Parameters
|
||||
#
|
||||
# [*package_ensure*]
|
||||
# (optional) The state of the package
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*manage_package*]
|
||||
# Whether Puppet should manage the package. Default is true.
|
||||
#
|
||||
# [*worker_package_name*]
|
||||
# (optional) Name of the package containing worker
|
||||
# resources. Defaults to worker_package_name from
|
||||
# designate::params
|
||||
#
|
||||
# [*enabled*]
|
||||
# (optional) Whether to enable services.
|
||||
# Defaults to true
|
||||
#
|
||||
# [*service_ensure*]
|
||||
# (optional) Whether the designate worker service will
|
||||
# be running.
|
||||
# Defaults to 'running'
|
||||
#
|
||||
# [*workers*]
|
||||
# (optional) Number of worker processes.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*threads*]
|
||||
# (optional) Number of Pool Manager greenthreads to spawn
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*threshold_percentage*]
|
||||
# (optional) Threshold percentage.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*poll_timeout*]
|
||||
# (optional) Poll timeout.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*poll_retry_interval*]
|
||||
# (optional) Poll retry interval.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*poll_max_retries*]
|
||||
# (optional) Poll max retries.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*poll_delay*]
|
||||
# (optional) Poll delay.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*worker_notify*]
|
||||
# (optional) Whether to allow worker to send NOTIFYs.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*export_synchronous*]
|
||||
# (optional) Whether to allow synchronous zone exports.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
# [*worker_topic*]
|
||||
# (optional) RPC topic for worker component.
|
||||
# Defaults to $::os_service_default
|
||||
#
|
||||
class designate::worker(
|
||||
$manage_package = true,
|
||||
$package_ensure = present,
|
||||
$worker_package_name = undef,
|
||||
$enabled = true,
|
||||
$service_ensure = 'running',
|
||||
$workers = $::os_service_default,
|
||||
$threads = $::os_service_default,
|
||||
$threshold_percentage = $::os_service_default,
|
||||
$poll_timeout = $::os_service_default,
|
||||
$poll_retry_interval = $::os_service_default,
|
||||
$poll_max_retries = $::os_service_default,
|
||||
$poll_delay = $::os_service_default,
|
||||
$worker_notify = $::os_service_default,
|
||||
$export_synchronous = $::os_service_default,
|
||||
$worker_topic = $::os_service_default,
|
||||
) {
|
||||
|
||||
include ::designate::deps
|
||||
include ::designate::params
|
||||
|
||||
if $manage_package {
|
||||
package { 'designate-worker':
|
||||
ensure => $package_ensure,
|
||||
name => pick($worker_package_name, $::designate::params::worker_package_name),
|
||||
tag => ['openstack', 'designate-package'],
|
||||
}
|
||||
}
|
||||
|
||||
service { 'designate-worker':
|
||||
ensure => $service_ensure,
|
||||
name => $::designate::params::worker_service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
tag => ['openstack', 'designate-service'],
|
||||
}
|
||||
|
||||
designate_config {
|
||||
'service:worker/workers': value => $workers;
|
||||
'service:worker/threads': value => $threads;
|
||||
'service:worker/threshold_percentage': value => $threshold_percentage;
|
||||
'service:worker/poll_timeout': value => $poll_timeout;
|
||||
'service:worker/poll_retry_interval': value => $poll_retry_interval;
|
||||
'service:worker/poll_max_retries': value => $poll_max_retries;
|
||||
'service:worker/poll_delay': value => $poll_delay;
|
||||
'service:worker/notify': value => $worker_notify;
|
||||
'service:worker/export_synchronous': value => $export_synchronous;
|
||||
'service:worker/worker_topic': value => $worker_topic;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,124 @@
|
|||
#
|
||||
# Unit tests for designate::worker
|
||||
#
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'designate::worker' do
|
||||
let :params do
|
||||
{
|
||||
}
|
||||
end
|
||||
|
||||
let :params_all do
|
||||
{
|
||||
:manage_package => true,
|
||||
:package_ensure => 'present',
|
||||
:worker_package_name => nil,
|
||||
:enabled => true,
|
||||
:service_ensure => 'running',
|
||||
:workers => 10,
|
||||
:threads => 900,
|
||||
:threshold_percentage => 90,
|
||||
:poll_timeout => 15,
|
||||
:poll_retry_interval => 10,
|
||||
:poll_max_retries => 5,
|
||||
:poll_delay => 1,
|
||||
:worker_notify => true,
|
||||
:export_synchronous => true,
|
||||
:worker_topic => 'topic',
|
||||
}
|
||||
end
|
||||
|
||||
shared_examples 'designate-worker' do
|
||||
context 'with default parameters' do
|
||||
it { is_expected.to contain_class('designate::worker') }
|
||||
|
||||
it 'installs designate-worker package and service' do
|
||||
is_expected.to contain_service('designate-worker').with(
|
||||
:name => platform_params[:worker_service_name],
|
||||
:ensure => 'running',
|
||||
:enable => 'true',
|
||||
:tag => ['openstack', 'designate-service'],
|
||||
)
|
||||
is_expected.to contain_package('designate-worker').with(
|
||||
:name => platform_params[:worker_package_name],
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'designate-package'],
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures designate-worker with default parameters' do
|
||||
is_expected.to contain_designate_config('service:worker/workers').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/threads').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/threshold_percentage').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/poll_timeout').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/poll_retry_interval').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/poll_max_retries').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/poll_delay').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/notify').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/export_synchronous').with_value( '<SERVICE DEFAULT>' )
|
||||
is_expected.to contain_designate_config('service:worker/worker_topic').with_value( '<SERVICE DEFAULT>' )
|
||||
end
|
||||
end
|
||||
|
||||
context 'with custom package name' do
|
||||
before do
|
||||
params.merge!({ :worker_package_name => 'designate-worker-custom-name' })
|
||||
end
|
||||
|
||||
it 'configures using custom name' do
|
||||
is_expected.to contain_package('designate-worker').with(
|
||||
:name => 'designate-worker-custom-name',
|
||||
:ensure => 'present',
|
||||
:tag => ['openstack', 'designate-package'],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with all params' do
|
||||
before do
|
||||
params.merge!( params_all )
|
||||
end
|
||||
|
||||
it 'configures designate-worker with all parameters' do
|
||||
is_expected.to contain_designate_config('service:worker/workers').with_value( params[:workers] )
|
||||
is_expected.to contain_designate_config('service:worker/threads').with_value( params[:threads] )
|
||||
is_expected.to contain_designate_config('service:worker/threshold_percentage').with_value( params[:threshold_percentage] )
|
||||
is_expected.to contain_designate_config('service:worker/poll_timeout').with_value( params[:poll_timeout] )
|
||||
is_expected.to contain_designate_config('service:worker/poll_retry_interval').with_value( params[:poll_retry_interval] )
|
||||
is_expected.to contain_designate_config('service:worker/poll_max_retries').with_value( params[:poll_max_retries] )
|
||||
is_expected.to contain_designate_config('service:worker/poll_delay').with_value( params[:poll_delay] )
|
||||
is_expected.to contain_designate_config('service:worker/notify').with_value( params[:worker_notify] )
|
||||
is_expected.to contain_designate_config('service:worker/export_synchronous').with_value( params[:export_synchronous] )
|
||||
is_expected.to contain_designate_config('service:worker/worker_topic').with_value( params[:worker_topic] )
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
end
|
||||
|
||||
let(:platform_params) do
|
||||
case facts[:osfamily]
|
||||
when 'Debian'
|
||||
{
|
||||
:worker_package_name => 'designate-worker',
|
||||
:worker_service_name => 'designate-worker'
|
||||
}
|
||||
when 'RedHat'
|
||||
{
|
||||
:worker_package_name => 'openstack-designate-worker',
|
||||
:worker_service_name => 'designate-worker'
|
||||
}
|
||||
end
|
||||
end
|
||||
it_behaves_like 'designate-worker'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue