
In order to be able to take an action after all the packages of the module have been installed/updated or all the services have been started/restarted, we set a 'swift-package' and 'swift-service' tag for each package and service of this module. At the moment, there is a generic openstack tag that is not specific enough if one wants to take action upon a single module change. Use case : If an action needs to be taken after all the packages have been installed or updated : Package <| tag == 'swift-package' |> -> X Change-Id: I1632bc0cee2a1c4cd5cc5d270a6d22919377c36b
83 lines
2.4 KiB
Puppet
83 lines
2.4 KiB
Puppet
#
|
|
# === 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) Value of package resource parameter 'ensure'.
|
|
# Defaults to 'present'.
|
|
#
|
|
# [*allowed_sync_hosts*]
|
|
# (optional) A list of hosts allowed in the X-Container-Sync-To
|
|
# field for containers. Defaults to one entry list '127.0.0.1'.
|
|
#
|
|
class swift::storage::container(
|
|
$manage_service = true,
|
|
$enabled = true,
|
|
$package_ensure = 'present',
|
|
$allowed_sync_hosts = ['127.0.0.1'],
|
|
) {
|
|
|
|
Swift_config<| |> ~> Service['swift-container-updater']
|
|
Swift_config<| |> ~> Service['swift-container-auditor']
|
|
|
|
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 => $service_ensure,
|
|
name => $::swift::params::container_updater_service_name,
|
|
enable => $enabled,
|
|
provider => $::swift::params::service_provider,
|
|
require => Package['swift-container'],
|
|
tag => 'swift-service',
|
|
}
|
|
|
|
service { 'swift-container-auditor':
|
|
ensure => $service_ensure,
|
|
name => $::swift::params::container_auditor_service_name,
|
|
enable => $enabled,
|
|
provider => $::swift::params::service_provider,
|
|
require => Package['swift-container'],
|
|
tag => 'swift-service',
|
|
}
|
|
|
|
if $::operatingsystem == 'Ubuntu' {
|
|
# The following service conf is missing in Ubunty 12.04
|
|
file { '/etc/init/swift-container-sync.conf':
|
|
source => 'puppet:///modules/swift/swift-container-sync.conf.upstart',
|
|
require => Package['swift-container'],
|
|
}
|
|
file { '/etc/init.d/swift-container-sync':
|
|
ensure => link,
|
|
target => '/lib/init/upstart-job',
|
|
}
|
|
service { 'swift-container-sync':
|
|
ensure => $service_ensure,
|
|
enable => $enabled,
|
|
provider => $::swift::params::service_provider,
|
|
require => File['/etc/init/swift-container-sync.conf', '/etc/init.d/swift-container-sync'],
|
|
}
|
|
Swift_config<| |> ~> Service['swift-container-sync']
|
|
}
|
|
}
|