Use generic_service to manage services
This patch introduces designate::generic_service which is already exists in other modules to manage designate packages and services. Change-Id: Ic05539fbbcfb88ed95f35d5eb5ca95b7f7141ed1 Close-Bug: #1486860
This commit is contained in:
parent
d5a1c3acab
commit
2dd7a9a0ee
|
@ -30,25 +30,18 @@ class designate::agent (
|
|||
$enabled = true,
|
||||
$service_ensure = 'running',
|
||||
$backend_driver = 'bind9',
|
||||
) {
|
||||
) inherits designate {
|
||||
include ::designate::params
|
||||
|
||||
package { 'designate-agent':
|
||||
ensure => $package_ensure,
|
||||
name => pick($agent_package_name, $::designate::params::agent_package_name),
|
||||
tag => ['openstack', 'designate-package'],
|
||||
}
|
||||
|
||||
service { 'designate-agent':
|
||||
ensure => $service_ensure,
|
||||
name => $::designate::params::agent_service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
tag => ['openstack', 'designate-service'],
|
||||
}
|
||||
|
||||
designate_config {
|
||||
'service:agent/backend_driver' : value => $backend_driver;
|
||||
}
|
||||
|
||||
designate::generic_service { 'agent':
|
||||
enabled => $enabled,
|
||||
manage_service => $service_ensure,
|
||||
ensure_package => $package_ensure,
|
||||
package_name => pick($agent_package_name, $::designate::params::agent_package_name),
|
||||
service_name => $::designate::params::agent_service_name,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,25 +70,9 @@ class designate::api (
|
|||
$keystone_password = false,
|
||||
$enable_api_v1 = true,
|
||||
$enable_api_v2 = false,
|
||||
){
|
||||
) inherits designate {
|
||||
include ::designate::params
|
||||
|
||||
package { 'designate-api':
|
||||
ensure => $package_ensure,
|
||||
name => pick($api_package_name, $::designate::params::api_package_name),
|
||||
tag => ['openstack', 'designate-package'],
|
||||
}
|
||||
|
||||
service { 'designate-api':
|
||||
ensure => $service_ensure,
|
||||
name => $::designate::params::api_service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
require => Class['::designate::db'],
|
||||
tag => ['openstack', 'designate-service'],
|
||||
}
|
||||
|
||||
# API Service
|
||||
designate_config {
|
||||
'service:api/auth_strategy' : value => $auth_strategy;
|
||||
|
@ -106,4 +90,12 @@ class designate::api (
|
|||
'keystone_authtoken/admin_password' : value => $keystone_password, secret => true;
|
||||
}
|
||||
|
||||
designate::generic_service { 'api':
|
||||
enabled => $enabled,
|
||||
manage_service => $service_ensure,
|
||||
ensure_package => $package_ensure,
|
||||
package_name => pick($api_package_name, $::designate::params::api_package_name),
|
||||
service_name => $::designate::params::api_service_name,
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -40,28 +40,20 @@ class designate::central (
|
|||
$backend_driver = 'bind9',
|
||||
$managed_resource_email = 'hostmaster@example.com',
|
||||
$managed_resource_tenant_id = '123456',
|
||||
) {
|
||||
) inherits designate {
|
||||
include ::designate::params
|
||||
|
||||
package { 'designate-central':
|
||||
ensure => $package_ensure,
|
||||
name => pick($central_package_name, $::designate::params::central_package_name),
|
||||
tag => ['openstack', 'designate-package'],
|
||||
}
|
||||
|
||||
service { 'designate-central':
|
||||
ensure => $service_ensure,
|
||||
name => $::designate::params::central_service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
require => Class['::designate::db'],
|
||||
tag => ['openstack', 'designate-service'],
|
||||
}
|
||||
|
||||
designate_config {
|
||||
'service:central/backend_driver' : value => $backend_driver;
|
||||
'service:central/managed_resource_email' : value => $managed_resource_email;
|
||||
'service:central/managed_resource_tenant_id' : value => $managed_resource_tenant_id;
|
||||
}
|
||||
|
||||
designate::generic_service { 'central':
|
||||
enabled => $enabled,
|
||||
manage_service => $service_ensure,
|
||||
ensure_package => $package_ensure,
|
||||
package_name => pick($central_package_name, $::designate::params::central_package_name),
|
||||
service_name => $::designate::params::central_service_name,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
#
|
||||
# == Define: designate::generic_service
|
||||
#
|
||||
# This defined type implements basic designate services.
|
||||
# It is introduced to attempt to consolidate
|
||||
# common code.
|
||||
#
|
||||
# It also allows users to specify ad-hoc services
|
||||
# as needed
|
||||
#
|
||||
# This define creates a service resource with title designate-${name} and
|
||||
# conditionally creates a package resource with title designate-${name}
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*package_name*]
|
||||
# (mandatory) The package name (for the generic_service)
|
||||
#
|
||||
# [*service_name*]
|
||||
# (mandatory) The service name (for the generic_service)
|
||||
#
|
||||
# [*enabled*]
|
||||
# (optional) Define if the service must be enabled or not
|
||||
# Defaults to false.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Manage or not the service (if a service_name is provided).
|
||||
# Defaults to true.
|
||||
#
|
||||
# [*ensure_package*]
|
||||
# (optional) Control the ensure parameter for the package ressource.
|
||||
# Defaults to 'present'.
|
||||
#
|
||||
define designate::generic_service(
|
||||
$package_name,
|
||||
$service_name,
|
||||
$enabled = false,
|
||||
$manage_service = true,
|
||||
$ensure_package = 'present'
|
||||
) {
|
||||
|
||||
include ::designate::params
|
||||
include ::designate::db
|
||||
|
||||
$designate_title = "designate-${name}"
|
||||
Exec['post-designate_config'] ~> Service<| title == $designate_title |>
|
||||
Exec<| title == 'designate-db-sync' |> ~> Service<| title == $designate_title |>
|
||||
|
||||
if ($package_name) {
|
||||
if !defined(Package[$package_name]) {
|
||||
package { $designate_title:
|
||||
ensure => $ensure_package,
|
||||
name => $package_name,
|
||||
notify => Service[$designate_title],
|
||||
tag => ['openstack', 'designate-package'],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if $service_name {
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
}
|
||||
|
||||
service { $designate_title:
|
||||
ensure => $service_ensure,
|
||||
name => $service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
tag => ['openstack','designate-service'],
|
||||
}
|
||||
}
|
||||
}
|
|
@ -79,6 +79,14 @@ class designate(
|
|||
) {
|
||||
|
||||
include ::designate::params
|
||||
|
||||
exec { 'post-designate_config':
|
||||
command => '/bin/echo "designate config has changed"',
|
||||
refreshonly => true,
|
||||
}
|
||||
|
||||
Designate_config<| |> ~> Exec['post-designate_config']
|
||||
|
||||
package { 'designate-common':
|
||||
ensure => $package_ensure,
|
||||
name => pick($common_package_name, $::designate::params::common_package_name),
|
||||
|
|
|
@ -32,13 +32,15 @@ class designate::sink (
|
|||
$enabled = true,
|
||||
$service_ensure = 'running',
|
||||
$enabled_notification_handlers = undef,
|
||||
) {
|
||||
) inherits designate {
|
||||
include ::designate::params
|
||||
|
||||
package { 'designate-sink':
|
||||
ensure => $package_ensure,
|
||||
name => pick($sink_package_name, $::designate::params::sink_service_name),
|
||||
tag => ['openstack', 'designate-package'],
|
||||
designate::generic_service { 'sink':
|
||||
enabled => $enabled,
|
||||
manage_service => $service_ensure,
|
||||
ensure_package => $package_ensure,
|
||||
package_name => pick($sink_package_name, $::designate::params::sink_package_name),
|
||||
service_name => $::designate::params::sink_service_name,
|
||||
}
|
||||
|
||||
if $enabled_notification_handlers {
|
||||
|
@ -51,12 +53,4 @@ class designate::sink (
|
|||
}
|
||||
}
|
||||
|
||||
service { 'designate-sink':
|
||||
ensure => $service_ensure,
|
||||
name => $::designate::params::sink_service_name,
|
||||
enable => $enabled,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
tag => ['openstack', 'designate-service'],
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ describe 'designate::api' do
|
|||
is_expected.to contain_service('designate-api').with(
|
||||
:name => platform_params[:api_service_name],
|
||||
:ensure => 'running',
|
||||
:require => 'Class[Designate::Db]',
|
||||
:enable => 'true',
|
||||
:tag => ['openstack', 'designate-service'],
|
||||
)
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'designate::generic_service' do
|
||||
describe 'should configure related package and service' do
|
||||
let :pre_condition do
|
||||
'include designate'
|
||||
end
|
||||
|
||||
let :params do
|
||||
{
|
||||
:package_name => 'foo',
|
||||
:service_name => 'food',
|
||||
:enabled => true,
|
||||
:manage_service => true,
|
||||
:ensure_package => 'latest',
|
||||
}
|
||||
end
|
||||
|
||||
let :facts do
|
||||
{ :osfamily => 'Debian' }
|
||||
end
|
||||
|
||||
let :title do
|
||||
'foo'
|
||||
end
|
||||
it { is_expected.to contain_package('designate-foo').with(
|
||||
:name => 'foo',
|
||||
:ensure => 'latest',
|
||||
:tag => ['openstack','designate-package'],
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_service('designate-foo').with(
|
||||
:name => 'food',
|
||||
:ensure => 'running',
|
||||
:enable => true,
|
||||
:hasstatus => true,
|
||||
:tag => ['openstack','designate-service'],
|
||||
)}
|
||||
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue