Files
puppet-swift/manifests/storage/generic.pp
Martin Mágr 22f09aed4f 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
2014-10-31 15:24:50 +01:00

85 lines
2.2 KiB
Puppet

# Creates the files packages and services that are
# needed to deploy each type of storage server.
#
# == Parameters
# [*enabled*]
# (optional) Should the service be enabled.
# Defaults to true
#
# [*manage_service*]
# (optional) Whether the service should be managed by Puppet.
# Defaults to true.
#
# [*package_ensure*]
# (optional) The desired ensure state of the swift storage packages.
# Defaults to present.
#
# [*service_provider*]
# (optional) The provider to use for the service
#
# == Dependencies
# Requires Class[swift::storage]
# == Examples
#
# == Authors
#
# Dan Bode dan@puppetlabs.com
#
# == Copyright
#
# 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
) {
include swift::params
Class['swift::storage'] -> Swift::Storage::Generic[$name]
validate_re($name, '^object|container|account$')
package { "swift-${name}":
ensure => $package_ensure,
# this is a way to dynamically build the variables to lookup
# sorry its so ugly :(
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_package_name') %>"),
before => Service["swift-${name}", "swift-${name}-replicator"],
}
file { "/etc/swift/${name}-server/":
ensure => directory,
owner => 'swift',
group => 'swift',
}
if $manage_service {
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
}
service { "swift-${name}":
ensure => $service_ensure,
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_service_name') %>"),
enable => $enabled,
hasstatus => true,
provider => $service_provider,
subscribe => Package["swift-${name}"],
}
service { "swift-${name}-replicator":
ensure => $service_ensure,
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_replicator_service_name') %>"),
enable => $enabled,
hasstatus => true,
provider => $service_provider,
subscribe => Package["swift-${name}"],
}
}