puppet-designate/manifests/pool_manager.pp
ZhongShengping 1e95f32a6f Add hooks for external install & svc management
This adds defined anchor points for external modules to hook into the
software install, config and service dependency chain.  This allows
external modules to manage software installation (virtualenv,
containers, etc) and service management (pacemaker) without needing rely
on resources that may change or be renamed.

Change-Id: If9fa188b7dca47e6724a737d66e34c0c85668c36
2016-12-01 08:44:02 +08:00

152 lines
5.2 KiB
Puppet

# == Class: designate::pool_manager
#
# Configure designate pool manager service
#
# == Parameters
#
# [*pool_id*]
# UUID of the pool to use.
#
# [*package_ensure*]
# (optional) The state of the package
# Defaults to 'present'
#
# [*manage_package*]
# Whether Puppet should manage the package. Default is true.
#
# [*pool_manager_package_name*]
# (optional) Name of the package containing pool manager
# resources. Defaults to pool_manager_package_name from
# designate::params
#
# [*enabled*]
# (optional) Whether to enable services.
# Defaults to true
#
# [*service_ensure*]
# (optional) Whether the designate pool manager 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
#
# [*enable_recovery_timer*]
# (optional) Enable the recovery thread
# Defaults to $::os_service_default
#
# [*periodic_recovery_interval*]
# (optional) Periodic recovery interval.
# Defaults to $::os_service_default
#
# [*enable_sync_timer*]
# (optional) Enable the sync thread
# Defaults to $::os_service_default
#
# [*periodic_sync_interval*]
# (optional) Periodic sync interval.
# Defaults to $::os_service_default
#
# [*periodic_sync_seconds*]
# (optional) Periodic sync seconds.
# Defaults to $::os_service_default
#
# [*periodic_sync_max_attempts*]
# (optional) Zones Updated within last N seconds will be syncd. Use None to sync all zones
# Defaults to $::os_service_default
#
# [*periodic_sync_retry_interval*]
# (optional) Perform multiple update attempts during periodic_sync
# Defaults to $::os_service_default
#
class designate::pool_manager(
$pool_id,
$manage_package = true,
$package_ensure = present,
$pool_manager_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,
$enable_recovery_timer = $::os_service_default,
$periodic_recovery_interval = $::os_service_default,
$enable_sync_timer = $::os_service_default,
$periodic_sync_interval = $::os_service_default,
$periodic_sync_seconds = $::os_service_default,
$periodic_sync_max_attempts = $::os_service_default,
$periodic_sync_retry_interval = $::os_service_default,
) {
include ::designate::deps
include ::designate::params
if $pool_id !~ /^[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}$/ {
fail('pool_id should be a valid UUID')
}
if $manage_package {
package { 'designate-pool-manager':
ensure => $package_ensure,
name => pick($pool_manager_package_name, $::designate::params::pool_manager_package_name),
tag => ['openstack', 'designate-package'],
}
}
service { 'designate-pool-manager':
ensure => $service_ensure,
name => $::designate::params::pool_manager_service_name,
enable => $enabled,
hasstatus => true,
hasrestart => true,
tag => ['openstack', 'designate-service'],
}
designate_config {
'service:pool_manager/pool_id': value => $pool_id;
'service:pool_manager/workers': value => $workers;
'service:pool_manager/threads': value => $threads;
'service:pool_manager/threshold_percentage': value => $threshold_percentage;
'service:pool_manager/poll_timeout': value => $poll_timeout;
'service:pool_manager/poll_retry_interval': value => $poll_retry_interval;
'service:pool_manager/poll_max_retries': value => $poll_max_retries;
'service:pool_manager/poll_delay': value => $poll_delay;
'service:pool_manager/periodic_recovery_interval': value => $periodic_recovery_interval;
'service:pool_manager/periodic_sync_interval': value => $periodic_sync_interval;
'service:pool_manager/periodic_sync_seconds': value => $periodic_sync_seconds;
'service:pool_manager/enable_recovery_timer': value => $enable_recovery_timer;
'service:pool_manager/enable_sync_timer': value => $enable_sync_timer;
'service:pool_manager/periodic_sync_max_attempts': value => $periodic_sync_max_attempts;
'service:pool_manager/periodic_sync_retry_interval': value => $periodic_sync_retry_interval;
}
}