From a87a101049dd3397a0aa92cb6eb7057260664e52 Mon Sep 17 00:00:00 2001
From: Martin Magr <mmagr@redhat.com>
Date: Wed, 20 Aug 2014 16:29:16 +0200
Subject: [PATCH] Add manage_service feature
puppet-swift lacks of disabling service managing. This patch adds
$manage_service and $enabled parameter to all relevant classes.
Closes-bug: #1359823
Change-Id: I3d632e3a26e9394d03d94089ae704904bf77aa51
---
manifests/proxy.pp | 44 ++++++++++++++++++++++++++----------------
manifests/storage/account.pp | 20 +++++++++++++++----
manifests/storage/container.pp | 26 ++++++++++++++++++-------
manifests/storage/generic.pp | 18 +++++++++++++----
manifests/storage/object.pp | 20 +++++++++++++++----
5 files changed, 92 insertions(+), 36 deletions(-)
diff --git a/manifests/proxy.pp b/manifests/proxy.pp
index 41b1463..6863609 100644
--- a/manifests/proxy.pp
+++ b/manifests/proxy.pp
@@ -47,22 +47,24 @@
#
class swift::proxy(
$proxy_local_net_ip,
- $port = '8080',
- $pipeline = ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
- $workers = $::processorcount,
- $allow_account_management = true,
- $account_autocreate = true,
- $log_headers = 'False',
- $log_udp_host = '',
- $log_udp_port = '',
- $log_address = '/dev/log',
- $log_level = 'INFO',
- $log_facility = 'LOG_LOCAL1',
- $log_handoffs = true,
- $read_affinity = undef,
- $write_affinity = undef,
+ $port = '8080',
+ $pipeline = ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
+ $workers = $::processorcount,
+ $allow_account_management = true,
+ $account_autocreate = true,
+ $log_headers = 'False',
+ $log_udp_host = '',
+ $log_udp_port = '',
+ $log_address = '/dev/log',
+ $log_level = 'INFO',
+ $log_facility = 'LOG_LOCAL1',
+ $log_handoffs = true,
+ $read_affinity = undef,
+ $write_affinity = undef,
$write_affinity_node_count = undef,
- $package_ensure = 'present'
+ $manage_service = true,
+ $enabled = true,
+ $package_ensure = 'present'
) {
include swift::params
@@ -126,10 +128,18 @@ class swift::proxy(
before => Class[$required_classes],
}
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
+ }
+
service { 'swift-proxy':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::proxy_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
hasstatus => true,
subscribe => Concat['/etc/swift/proxy-server.conf'],
diff --git a/manifests/storage/account.pp b/manifests/storage/account.pp
index 1ce6865..111e91c 100644
--- a/manifests/storage/account.pp
+++ b/manifests/storage/account.pp
@@ -1,24 +1,36 @@
class swift::storage::account(
+ $manage_service = true,
+ $enabled = true,
$package_ensure = 'present'
) {
swift::storage::generic { 'account':
+ manage_service => $manage_service,
+ enabled => $enabled,
package_ensure => $package_ensure,
}
include swift::params
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
+ }
+
service { 'swift-account-reaper':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::account_reaper_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => Package['swift-account'],
}
service { 'swift-account-auditor':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::account_auditor_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => Package['swift-account'],
}
diff --git a/manifests/storage/container.pp b/manifests/storage/container.pp
index a4002d8..23d28ac 100644
--- a/manifests/storage/container.pp
+++ b/manifests/storage/container.pp
@@ -5,27 +5,39 @@
# field for containers. Defaults to one entry list '127.0.0.1'.
#
class swift::storage::container(
- $package_ensure = 'present',
+ $manage_service = true,
+ $enabled = true,
+ $package_ensure = 'present',
$allowed_sync_hosts = ['127.0.0.1'],
) {
swift::storage::generic { 'container':
+ manage_service => $manage_service,
+ enabled => $enabled,
package_ensure => $package_ensure
}
include swift::params
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
+ }
+
service { 'swift-container-updater':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::container_updater_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => Package['swift-container'],
}
service { 'swift-container-auditor':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::container_auditor_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => Package['swift-container'],
}
@@ -41,8 +53,8 @@ class swift::storage::container(
target => '/lib/init/upstart-job',
}
service { 'swift-container-sync':
- ensure => running,
- enable => true,
+ ensure => $service_ensure,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => File['/etc/init/swift-container-sync.conf', '/etc/init.d/swift-container-sync']
}
diff --git a/manifests/storage/generic.pp b/manifests/storage/generic.pp
index 2f84f2e..89eb6fe 100644
--- a/manifests/storage/generic.pp
+++ b/manifests/storage/generic.pp
@@ -18,6 +18,8 @@
#
# Copyright 2011 Puppetlabs Inc, unless otherwise noted.
define swift::storage::generic(
+ $manage_service = true,
+ $enabled = true,
$package_ensure = 'present',
$service_provider = $::swift::params::service_provider
) {
@@ -42,19 +44,27 @@ define swift::storage::generic(
group => 'swift',
}
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
+ }
+
service { "swift-${name}":
- ensure => running,
+ ensure => $service_ensure,
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_service_name') %>"),
- enable => true,
+ enable => $enabled,
hasstatus => true,
provider => $service_provider,
subscribe => Package["swift-${name}"],
}
service { "swift-${name}-replicator":
- ensure => running,
+ ensure => $service_ensure,
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_replicator_service_name') %>"),
- enable => true,
+ enable => $enabled,
hasstatus => true,
provider => $service_provider,
subscribe => Package["swift-${name}"],
diff --git a/manifests/storage/object.pp b/manifests/storage/object.pp
index 1e49101..c26d246 100644
--- a/manifests/storage/object.pp
+++ b/manifests/storage/object.pp
@@ -1,24 +1,36 @@
class swift::storage::object(
+ $manage_service = true,
+ $enabled = true,
$package_ensure = 'present'
) {
swift::storage::generic { 'object':
+ manage_service => $manage_service,
+ enabled => $enabled,
package_ensure => $package_ensure
}
include swift::params
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
+ }
+
service { 'swift-object-updater':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::object_updater_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => Package['swift-object'],
}
service { 'swift-object-auditor':
- ensure => running,
+ ensure => $service_ensure,
name => $::swift::params::object_auditor_service_name,
- enable => true,
+ enable => $enabled,
provider => $::swift::params::service_provider,
require => Package['swift-object'],
}
--
1.9.3