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
This commit is contained in:

committed by
Lukas Bezdicka

parent
7b30dbb397
commit
22f09aed4f
@@ -6,37 +6,65 @@
|
|||||||
#
|
#
|
||||||
# Installs and configures the swift proxy node.
|
# Installs and configures the swift proxy node.
|
||||||
#
|
#
|
||||||
# [*Parameters*]
|
# == Parameters
|
||||||
#
|
#
|
||||||
# [*proxy_local_net_ip*] The address that the proxy will bind to.
|
# [*proxy_local_net_ip*]
|
||||||
# Required.
|
# The address that the proxy will bind to.
|
||||||
# [*port*] The port to which the proxy server will bind.
|
#
|
||||||
# Optional. Defaults to 8080.
|
# [*port*]
|
||||||
# [*pipeline*] The list of elements of the swift proxy pipeline.
|
# (optional) The port to which the proxy server will bind.
|
||||||
# Currently supports healthcheck, cache, proxy-server, and
|
# Defaults to 8080.
|
||||||
# one of the following auth_types: tempauth, swauth, keystone.
|
#
|
||||||
# Each of the specified elements also need to be declared externally
|
# [*pipeline*]
|
||||||
# as a puppet class with the exception of proxy-server.
|
# (optional) The list of elements of the swift proxy pipeline.
|
||||||
# Optional. Defaults to ['healthcheck', 'cache', 'tempauth', 'proxy-server']
|
# Currently supports healthcheck, cache, proxy-server, and
|
||||||
# [*workers*] Number of threads to process requests.
|
# one of the following auth_types: tempauth, swauth, keystone.
|
||||||
# Optional. Defaults to the number of processors.
|
# Each of the specified elements also need to be declared externally
|
||||||
# [*allow_account_management*]
|
# as a puppet class with the exception of proxy-server.
|
||||||
# Rather or not requests through this proxy can create and
|
# Defaults to ['healthcheck', 'cache', 'tempauth', 'proxy-server']
|
||||||
# delete accounts. Optional. Defaults to true.
|
#
|
||||||
# [*account_autocreate*] Rather accounts should automatically be created.
|
# [*workers*]
|
||||||
# Has to be set to true for tempauth. Optional. Defaults to true.
|
# (optional) Number of threads to process requests.
|
||||||
# [*read_affinity*]
|
# Defaults to the number of processors.
|
||||||
# Configures the read affinity of proxy-server. Optional. Defaults to undef.
|
#
|
||||||
# [*write_affinity*]
|
# [*allow_account_management*]
|
||||||
# Configures the write affinity of proxy-server. Optional. Defaults to undef.
|
# (optional) Rather or not requests through this proxy can create and
|
||||||
# [*write_affinity_node_count*]
|
# delete accounts.
|
||||||
# Configures write_affinity_node_count for proxy-server.
|
# Defaults to true.
|
||||||
# Optional but requires write_affinity to be set. Defaults to undef.
|
#
|
||||||
# [*package_ensure*] Ensure state of the swift proxy package.
|
# [*account_autocreate*]
|
||||||
# Optional. Defaults to present.
|
# (optional) Rather accounts should automatically be created.
|
||||||
# [*log_name*]
|
# Has to be set to true for tempauth.
|
||||||
# Configures log_name for swift proxy-server.
|
# Defaults to true.
|
||||||
# Optional. Defaults to proxy-server
|
#
|
||||||
|
# [*read_affinity*]
|
||||||
|
# (optional) Configures the read affinity of proxy-server.
|
||||||
|
# Defaults to undef.
|
||||||
|
#
|
||||||
|
# [*write_affinity*]
|
||||||
|
# (optional) Configures the write affinity of proxy-server.
|
||||||
|
# Defaults to undef.
|
||||||
|
#
|
||||||
|
# [*write_affinity_node_count*]
|
||||||
|
# (optional) Configures write_affinity_node_count for proxy-server.
|
||||||
|
# Optional but requires write_affinity to be set.
|
||||||
|
# Defaults to undef.
|
||||||
|
#
|
||||||
|
# [*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) Ensure state of the swift proxy package.
|
||||||
|
# Defaults to present.
|
||||||
|
#
|
||||||
|
# [*log_name*]
|
||||||
|
# Configures log_name for swift proxy-server.
|
||||||
|
# Optional. Defaults to proxy-server
|
||||||
#
|
#
|
||||||
# == Examples
|
# == Examples
|
||||||
#
|
#
|
||||||
@@ -50,23 +78,25 @@
|
|||||||
#
|
#
|
||||||
class swift::proxy(
|
class swift::proxy(
|
||||||
$proxy_local_net_ip,
|
$proxy_local_net_ip,
|
||||||
$port = '8080',
|
$port = '8080',
|
||||||
$pipeline = ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
|
$pipeline = ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
|
||||||
$workers = $::processorcount,
|
$workers = $::processorcount,
|
||||||
$allow_account_management = true,
|
$allow_account_management = true,
|
||||||
$account_autocreate = true,
|
$account_autocreate = true,
|
||||||
$log_headers = 'False',
|
$log_headers = 'False',
|
||||||
$log_udp_host = '',
|
$log_udp_host = '',
|
||||||
$log_udp_port = '',
|
$log_udp_port = '',
|
||||||
$log_address = '/dev/log',
|
$log_address = '/dev/log',
|
||||||
$log_level = 'INFO',
|
$log_level = 'INFO',
|
||||||
$log_facility = 'LOG_LOCAL1',
|
$log_facility = 'LOG_LOCAL1',
|
||||||
$log_handoffs = true,
|
$log_handoffs = true,
|
||||||
$log_name = 'proxy-server',
|
$log_name = 'proxy-server',
|
||||||
$read_affinity = undef,
|
$read_affinity = undef,
|
||||||
$write_affinity = undef,
|
$write_affinity = undef,
|
||||||
$write_affinity_node_count = undef,
|
$write_affinity_node_count = undef,
|
||||||
$package_ensure = 'present'
|
$manage_service = true,
|
||||||
|
$enabled = true,
|
||||||
|
$package_ensure = 'present'
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include swift::params
|
include swift::params
|
||||||
@@ -130,10 +160,18 @@ class swift::proxy(
|
|||||||
before => Class[$required_classes],
|
before => Class[$required_classes],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
service { 'swift-proxy':
|
service { 'swift-proxy':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::proxy_service_name,
|
name => $::swift::params::proxy_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
subscribe => Concat['/etc/swift/proxy-server.conf'],
|
subscribe => Concat['/etc/swift/proxy-server.conf'],
|
||||||
|
@@ -1,24 +1,51 @@
|
|||||||
|
# Class swift::storage::account
|
||||||
|
#
|
||||||
|
# == 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'.
|
||||||
|
#
|
||||||
class swift::storage::account(
|
class swift::storage::account(
|
||||||
|
$manage_service = true,
|
||||||
|
$enabled = true,
|
||||||
$package_ensure = 'present'
|
$package_ensure = 'present'
|
||||||
) {
|
) {
|
||||||
swift::storage::generic { 'account':
|
swift::storage::generic { 'account':
|
||||||
|
manage_service => $manage_service,
|
||||||
|
enabled => $enabled,
|
||||||
package_ensure => $package_ensure,
|
package_ensure => $package_ensure,
|
||||||
}
|
}
|
||||||
|
|
||||||
include swift::params
|
include swift::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
service { 'swift-account-reaper':
|
service { 'swift-account-reaper':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::account_reaper_service_name,
|
name => $::swift::params::account_reaper_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => Package['swift-account'],
|
require => Package['swift-account'],
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'swift-account-auditor':
|
service { 'swift-account-auditor':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::account_auditor_service_name,
|
name => $::swift::params::account_auditor_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => Package['swift-account'],
|
require => Package['swift-account'],
|
||||||
}
|
}
|
||||||
|
@@ -1,31 +1,55 @@
|
|||||||
#
|
#
|
||||||
# === Parameters
|
# === Parameters
|
||||||
|
# [*enabled*]
|
||||||
|
# (optional) Should the service be enabled.
|
||||||
|
# Defaults to true
|
||||||
#
|
#
|
||||||
# [*allowed_sync_hosts*] A list of hosts allowed in the X-Container-Sync-To
|
# [*manage_service*]
|
||||||
# field for containers. Defaults to one entry list '127.0.0.1'.
|
# (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(
|
class swift::storage::container(
|
||||||
$package_ensure = 'present',
|
$manage_service = true,
|
||||||
|
$enabled = true,
|
||||||
|
$package_ensure = 'present',
|
||||||
$allowed_sync_hosts = ['127.0.0.1'],
|
$allowed_sync_hosts = ['127.0.0.1'],
|
||||||
) {
|
) {
|
||||||
swift::storage::generic { 'container':
|
swift::storage::generic { 'container':
|
||||||
|
manage_service => $manage_service,
|
||||||
|
enabled => $enabled,
|
||||||
package_ensure => $package_ensure
|
package_ensure => $package_ensure
|
||||||
}
|
}
|
||||||
|
|
||||||
include swift::params
|
include swift::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
service { 'swift-container-updater':
|
service { 'swift-container-updater':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::container_updater_service_name,
|
name => $::swift::params::container_updater_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => Package['swift-container'],
|
require => Package['swift-container'],
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'swift-container-auditor':
|
service { 'swift-container-auditor':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::container_auditor_service_name,
|
name => $::swift::params::container_auditor_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => Package['swift-container'],
|
require => Package['swift-container'],
|
||||||
}
|
}
|
||||||
@@ -41,8 +65,8 @@ class swift::storage::container(
|
|||||||
target => '/lib/init/upstart-job',
|
target => '/lib/init/upstart-job',
|
||||||
}
|
}
|
||||||
service { 'swift-container-sync':
|
service { 'swift-container-sync':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => File['/etc/init/swift-container-sync.conf', '/etc/init.d/swift-container-sync']
|
require => File['/etc/init/swift-container-sync.conf', '/etc/init.d/swift-container-sync']
|
||||||
}
|
}
|
||||||
|
@@ -2,9 +2,20 @@
|
|||||||
# needed to deploy each type of storage server.
|
# needed to deploy each type of storage server.
|
||||||
#
|
#
|
||||||
# == Parameters
|
# == Parameters
|
||||||
# [*package_ensure*] The desired ensure state of the swift storage packages.
|
# [*enabled*]
|
||||||
# Optional. Defaults to present.
|
# (optional) Should the service be enabled.
|
||||||
# [*service_provider*] The provider to use for the service
|
# 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
|
# == Dependencies
|
||||||
# Requires Class[swift::storage]
|
# Requires Class[swift::storage]
|
||||||
@@ -18,6 +29,8 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2011 Puppetlabs Inc, unless otherwise noted.
|
# Copyright 2011 Puppetlabs Inc, unless otherwise noted.
|
||||||
define swift::storage::generic(
|
define swift::storage::generic(
|
||||||
|
$manage_service = true,
|
||||||
|
$enabled = true,
|
||||||
$package_ensure = 'present',
|
$package_ensure = 'present',
|
||||||
$service_provider = $::swift::params::service_provider
|
$service_provider = $::swift::params::service_provider
|
||||||
) {
|
) {
|
||||||
@@ -42,19 +55,27 @@ define swift::storage::generic(
|
|||||||
group => 'swift',
|
group => 'swift',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
service { "swift-${name}":
|
service { "swift-${name}":
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_service_name') %>"),
|
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_service_name') %>"),
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
provider => $service_provider,
|
provider => $service_provider,
|
||||||
subscribe => Package["swift-${name}"],
|
subscribe => Package["swift-${name}"],
|
||||||
}
|
}
|
||||||
|
|
||||||
service { "swift-${name}-replicator":
|
service { "swift-${name}-replicator":
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_replicator_service_name') %>"),
|
name => inline_template("<%= scope.lookupvar('::swift::params::${name}_replicator_service_name') %>"),
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
provider => $service_provider,
|
provider => $service_provider,
|
||||||
subscribe => Package["swift-${name}"],
|
subscribe => Package["swift-${name}"],
|
||||||
|
@@ -1,24 +1,51 @@
|
|||||||
|
# Class swift::storage::object
|
||||||
|
#
|
||||||
|
# == 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'.
|
||||||
|
#
|
||||||
class swift::storage::object(
|
class swift::storage::object(
|
||||||
|
$manage_service = true,
|
||||||
|
$enabled = true,
|
||||||
$package_ensure = 'present'
|
$package_ensure = 'present'
|
||||||
) {
|
) {
|
||||||
swift::storage::generic { 'object':
|
swift::storage::generic { 'object':
|
||||||
|
manage_service => $manage_service,
|
||||||
|
enabled => $enabled,
|
||||||
package_ensure => $package_ensure
|
package_ensure => $package_ensure
|
||||||
}
|
}
|
||||||
|
|
||||||
include swift::params
|
include swift::params
|
||||||
|
|
||||||
|
if $manage_service {
|
||||||
|
if $enabled {
|
||||||
|
$service_ensure = 'running'
|
||||||
|
} else {
|
||||||
|
$service_ensure = 'stopped'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
service { 'swift-object-updater':
|
service { 'swift-object-updater':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::object_updater_service_name,
|
name => $::swift::params::object_updater_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => Package['swift-object'],
|
require => Package['swift-object'],
|
||||||
}
|
}
|
||||||
|
|
||||||
service { 'swift-object-auditor':
|
service { 'swift-object-auditor':
|
||||||
ensure => running,
|
ensure => $service_ensure,
|
||||||
name => $::swift::params::object_auditor_service_name,
|
name => $::swift::params::object_auditor_service_name,
|
||||||
enable => true,
|
enable => $enabled,
|
||||||
provider => $::swift::params::service_provider,
|
provider => $::swift::params::service_provider,
|
||||||
require => Package['swift-object'],
|
require => Package['swift-object'],
|
||||||
}
|
}
|
||||||
|
@@ -151,6 +151,80 @@ describe 'swift::proxy' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_examples_for 'swift-proxy' do
|
||||||
|
let :params do
|
||||||
|
{ :proxy_local_net_ip => '127.0.0.1' }
|
||||||
|
end
|
||||||
|
|
||||||
|
[{ :enabled => true, :manage_service => true },
|
||||||
|
{ :enabled => false, :manage_service => true }].each do |param_hash|
|
||||||
|
context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures swift-proxy service' do
|
||||||
|
should contain_service('swift-proxy').with(
|
||||||
|
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||||
|
:name => platform_params[:service_name],
|
||||||
|
:provider => platform_params[:service_provider],
|
||||||
|
:enable => param_hash[:enabled],
|
||||||
|
:hasstatus => true,
|
||||||
|
:subscribe => 'Concat[/etc/swift/proxy-server.conf]'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disabled service managing' do
|
||||||
|
before do
|
||||||
|
params.merge!({
|
||||||
|
:manage_service => false,
|
||||||
|
:enabled => false })
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures swift-proxy service' do
|
||||||
|
should contain_service('swift-proxy').with(
|
||||||
|
:ensure => nil,
|
||||||
|
:name => platform_params[:service_name],
|
||||||
|
:provider => platform_params[:service_provider],
|
||||||
|
:enable => false,
|
||||||
|
:hasstatus => true,
|
||||||
|
:subscribe => 'Concat[/etc/swift/proxy-server.conf]'
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
|
let :facts do
|
||||||
|
{ :operatingsystem => 'Ubuntu',
|
||||||
|
:osfamily => 'Debian',
|
||||||
|
:concat_basedir => '/var/lib/puppet/concat' }
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_name => 'swift-proxy',
|
||||||
|
:service_provider => 'upstart' }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'swift-proxy'
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on RedHat platforms' do
|
||||||
|
let :facts do
|
||||||
|
{ :osfamily => 'RedHat',
|
||||||
|
:operatingsystem => 'RedHat',
|
||||||
|
:concat_basedir => '/var/lib/puppet/concat' }
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_name => 'openstack-swift-proxy',
|
||||||
|
:service_provider => nil }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'swift-proxy'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -1,52 +1,106 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'swift::storage::account' do
|
describe 'swift::storage::account' do
|
||||||
|
|
||||||
let :facts do
|
|
||||||
{
|
|
||||||
:operatingsystem => 'Ubuntu',
|
|
||||||
:osfamily => 'Debian'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
let :pre_condition do
|
let :pre_condition do
|
||||||
"class { 'ssh::server::install': }
|
"class { 'ssh::server::install': }
|
||||||
class { 'swift': swift_hash_suffix => 'foo' }
|
class { 'swift': swift_hash_suffix => 'foo' }
|
||||||
class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
|
class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
|
||||||
end
|
end
|
||||||
|
|
||||||
let :default_params do
|
let :params do
|
||||||
{:package_ensure => 'present'}
|
{ :package_ensure => 'present',
|
||||||
|
:enabled => true,
|
||||||
|
:manage_service => true }
|
||||||
end
|
end
|
||||||
|
|
||||||
[{},
|
shared_examples_for 'swift-storage-account' do
|
||||||
{:package_ensure => 'latest'}
|
|
||||||
].each do |param_set|
|
[{},
|
||||||
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
{:package_ensure => 'latest'}
|
||||||
let :param_hash do
|
].each do |param_set|
|
||||||
default_params.merge(param_set)
|
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_set)
|
||||||
|
end
|
||||||
|
|
||||||
|
it { should contain_swift__storage__generic('account').with_package_ensure(params[:package_ensure]) }
|
||||||
end
|
end
|
||||||
let :params do
|
end
|
||||||
param_set
|
|
||||||
|
[{ :enabled => true, :manage_service => true },
|
||||||
|
{ :enabled => false, :manage_service => true }].each do |param_hash|
|
||||||
|
context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures services' do
|
||||||
|
platform_params[:service_names].each do |service_alias, service_name|
|
||||||
|
should contain_service(service_alias).with(
|
||||||
|
:name => service_name,
|
||||||
|
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||||
|
:enable => param_hash[:enabled]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disabled service managing' do
|
||||||
|
before do
|
||||||
|
params.merge!({
|
||||||
|
:manage_service => false,
|
||||||
|
:enabled => false })
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures services' do
|
||||||
|
platform_params[:service_names].each do |service_alias, service_name|
|
||||||
|
should contain_service(service_alias).with(
|
||||||
|
:ensure => nil,
|
||||||
|
:name => service_name,
|
||||||
|
:enable => false
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
it { should contain_swift__storage__generic('account').with_package_ensure(param_hash[:package_ensure]) }
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe 'on rhel' do
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{
|
{:operatingsystem => 'Ubuntu',
|
||||||
:operatingsystem => 'RedHat',
|
:osfamily => 'Debian' }
|
||||||
:osfamily => 'RedHat'
|
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_names => {
|
||||||
|
'swift-account' => 'swift-account',
|
||||||
|
'swift-account-replicator' => 'swift-account-replicator',
|
||||||
|
'swift-account-reaper' => 'swift-account-reaper',
|
||||||
|
'swift-account-auditor' => 'swift-account-auditor'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
it 'should have some support services' do
|
|
||||||
['swift-account-reaper', 'swift-account-auditor'].each do |service|
|
it_configures 'swift-storage-account'
|
||||||
should contain_service(service).with(
|
end
|
||||||
:name => "openstack-#{service}",
|
|
||||||
:ensure => 'running',
|
context 'on RedHat platforms' do
|
||||||
:enable => true,
|
let :facts do
|
||||||
:require => 'Package[swift-account]'
|
{ :osfamily => 'RedHat',
|
||||||
)
|
:operatingsystem => 'RedHat' }
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_names => {
|
||||||
|
'swift-account' => 'openstack-swift-account',
|
||||||
|
'swift-account-replicator' => 'openstack-swift-account-replicator',
|
||||||
|
'swift-account-reaper' => 'openstack-swift-account-reaper',
|
||||||
|
'swift-account-auditor' => 'openstack-swift-account-auditor'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'swift-storage-account'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -1,43 +1,91 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'swift::storage::container' do
|
describe 'swift::storage::container' do
|
||||||
|
|
||||||
let :facts do
|
|
||||||
{
|
|
||||||
:operatingsystem => 'Ubuntu',
|
|
||||||
:osfamily => 'Debian'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
let :pre_condition do
|
let :pre_condition do
|
||||||
"class { 'ssh::server::install': }
|
"class { 'ssh::server::install': }
|
||||||
class { 'swift': swift_hash_suffix => 'foo' }
|
class { 'swift': swift_hash_suffix => 'foo' }
|
||||||
class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
|
class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
|
||||||
end
|
end
|
||||||
|
|
||||||
let :default_params do
|
let :params do
|
||||||
{:package_ensure => 'present'}
|
{ :package_ensure => 'present',
|
||||||
|
:enabled => true,
|
||||||
|
:manage_service => true }
|
||||||
end
|
end
|
||||||
|
|
||||||
[{},
|
shared_examples_for 'swift-storage-container' do
|
||||||
{:package_ensure => 'latest'}
|
[{},
|
||||||
].each do |param_set|
|
{:package_ensure => 'latest'}
|
||||||
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
].each do |param_set|
|
||||||
let :param_hash do
|
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
||||||
default_params.merge(param_set)
|
before do
|
||||||
|
params.merge!(param_set)
|
||||||
|
end
|
||||||
|
|
||||||
|
it { should contain_swift__storage__generic('container').with_package_ensure(params[:package_ensure]) }
|
||||||
end
|
end
|
||||||
let :params do
|
end
|
||||||
param_set
|
|
||||||
|
|
||||||
|
[{ :enabled => true, :manage_service => true },
|
||||||
|
{ :enabled => false, :manage_service => true }].each do |param_hash|
|
||||||
|
context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures services' do
|
||||||
|
platform_params[:service_names].each do |service_alias, service_name|
|
||||||
|
should contain_service(service_alias).with(
|
||||||
|
:name => service_name,
|
||||||
|
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||||
|
:enable => param_hash[:enabled]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
it { should contain_swift__storage__generic('container').with_package_ensure(param_hash[:package_ensure]) }
|
end
|
||||||
it 'should have some other services' do
|
|
||||||
['swift-container-updater', 'swift-container-auditor'].each do |service|
|
context 'with disabled service managing' do
|
||||||
should contain_service(service).with(
|
before do
|
||||||
:ensure => 'running',
|
params.merge!({
|
||||||
:enable => true,
|
:manage_service => false,
|
||||||
:provider => 'upstart',
|
:enabled => false })
|
||||||
:require => 'Package[swift-container]'
|
end
|
||||||
|
|
||||||
|
it 'configures services' do
|
||||||
|
platform_params[:service_names].each do |service_alias, service_name|
|
||||||
|
should contain_service(service_alias).with(
|
||||||
|
:ensure => nil,
|
||||||
|
:name => service_name,
|
||||||
|
:enable => false
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
|
let :facts do
|
||||||
|
{:operatingsystem => 'Ubuntu',
|
||||||
|
:osfamily => 'Debian' }
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_names => {
|
||||||
|
'swift-container' => 'swift-container',
|
||||||
|
'swift-container-replicator' => 'swift-container-replicator',
|
||||||
|
'swift-container-updater' => 'swift-container-updater',
|
||||||
|
'swift-container-auditor' => 'swift-container-auditor'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'swift-storage-container'
|
||||||
|
|
||||||
|
context 'Ubuntu specific resources' do
|
||||||
|
it 'configures sync' do
|
||||||
should contain_service('swift-container-sync').with(
|
should contain_service('swift-container-sync').with(
|
||||||
:ensure => 'running',
|
:ensure => 'running',
|
||||||
:enable => true,
|
:enable => true,
|
||||||
@@ -56,26 +104,30 @@ describe 'swift::storage::container' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'on rhel' do
|
context 'on RedHat platforms' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{
|
{ :osfamily => 'RedHat',
|
||||||
:operatingsystem => 'RedHat',
|
:operatingsystem => 'RedHat',
|
||||||
:osfamily => 'RedHat',
|
:concat_basedir => '/var/lib/puppet/concat' }
|
||||||
:concat_basedir => '/var/lib/puppet/concat'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
it 'should have some support services' do
|
|
||||||
['swift-container-updater', 'swift-container-auditor'].each do |service|
|
|
||||||
should contain_service(service).with(
|
|
||||||
:name => "openstack-#{service}",
|
|
||||||
:ensure => 'running',
|
|
||||||
:enable => true,
|
|
||||||
:require => 'Package[swift-container]'
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'configuration file' do
|
let :platform_params do
|
||||||
|
{ :service_names => {
|
||||||
|
'swift-container' => 'openstack-swift-container',
|
||||||
|
'swift-container-replicator' => 'openstack-swift-container-replicator',
|
||||||
|
'swift-container-updater' => 'openstack-swift-container-updater',
|
||||||
|
'swift-container-auditor' => 'openstack-swift-container-auditor'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'swift-storage-container'
|
||||||
|
|
||||||
|
context 'RedHat specific resources' do
|
||||||
|
before do
|
||||||
|
params.merge!({ :allowed_sync_hosts => ['127.0.0.1', '10.1.0.1', '10.1.0.2'] })
|
||||||
|
end
|
||||||
|
|
||||||
let :pre_condition do
|
let :pre_condition do
|
||||||
"class { 'ssh::server::install': }
|
"class { 'ssh::server::install': }
|
||||||
class { 'swift': swift_hash_suffix => 'foo' }
|
class { 'swift': swift_hash_suffix => 'foo' }
|
||||||
@@ -86,18 +138,9 @@ describe 'swift::storage::container' do
|
|||||||
"/var/lib/puppet/concat/_etc_swift_container-server.conf/fragments/00_swift-container-6001"
|
"/var/lib/puppet/concat/_etc_swift_container-server.conf/fragments/00_swift-container-6001"
|
||||||
end
|
end
|
||||||
|
|
||||||
it { should contain_file(fragment_file).with_content(/^allowed_sync_hosts = 127.0.0.1$/) }
|
it {
|
||||||
|
should contain_file(fragment_file).with_content(/^allowed_sync_hosts = 127.0.0.1,10.1.0.1,10.1.0.2$/)
|
||||||
describe 'with allowed_sync_hosts' do
|
}
|
||||||
|
|
||||||
let :params do
|
|
||||||
{ :allowed_sync_hosts => ['127.0.0.1', '10.1.0.1', '10.1.0.2'], }
|
|
||||||
end
|
|
||||||
|
|
||||||
it {
|
|
||||||
should contain_file(fragment_file).with_content(/^allowed_sync_hosts = 127.0.0.1,10.1.0.1,10.1.0.2$/)
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -1,12 +1,6 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
describe 'swift::storage::object' do
|
|
||||||
|
|
||||||
let :facts do
|
describe 'swift::storage::object' do
|
||||||
{
|
|
||||||
:operatingsystem => 'Ubuntu',
|
|
||||||
:osfamily => 'Debian'
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
let :pre_condition do
|
let :pre_condition do
|
||||||
"class { 'ssh::server::install': }
|
"class { 'ssh::server::install': }
|
||||||
@@ -14,39 +8,100 @@ describe 'swift::storage::object' do
|
|||||||
class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
|
class { 'swift::storage': storage_local_net_ip => '10.0.0.1' }"
|
||||||
end
|
end
|
||||||
|
|
||||||
let :default_params do
|
let :params do
|
||||||
{:package_ensure => 'present'}
|
{ :package_ensure => 'present',
|
||||||
|
:enabled => true,
|
||||||
|
:manage_service => true }
|
||||||
end
|
end
|
||||||
|
|
||||||
[{},
|
shared_examples_for 'swift-storage-object' do
|
||||||
{:package_ensure => 'latest'}
|
|
||||||
].each do |param_set|
|
[{},
|
||||||
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
{ :package_ensure => 'latest' }
|
||||||
let :param_hash do
|
].each do |param_set|
|
||||||
default_params.merge(param_set)
|
describe "when #{param_set == {} ? "using default" : "specifying"} class parameters" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_set)
|
||||||
|
end
|
||||||
|
|
||||||
|
it { should contain_swift__storage__generic('object').with_package_ensure(params[:package_ensure]) }
|
||||||
end
|
end
|
||||||
let :params do
|
end
|
||||||
param_set
|
|
||||||
|
[{ :enabled => true, :manage_service => true },
|
||||||
|
{ :enabled => false, :manage_service => true }].each do |param_hash|
|
||||||
|
context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
|
||||||
|
before do
|
||||||
|
params.merge!(param_hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures services' do
|
||||||
|
platform_params[:service_names].each do |service_alias, service_name|
|
||||||
|
should contain_service(service_alias).with(
|
||||||
|
:name => service_name,
|
||||||
|
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||||
|
:enable => param_hash[:enabled]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with disabled service managing' do
|
||||||
|
before do
|
||||||
|
params.merge!({
|
||||||
|
:manage_service => false,
|
||||||
|
:enabled => false })
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures services' do
|
||||||
|
platform_params[:service_names].each do |service_alias, service_name|
|
||||||
|
should contain_service(service_alias).with(
|
||||||
|
:ensure => nil,
|
||||||
|
:name => service_name,
|
||||||
|
:enable => false
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
it { should contain_swift__storage__generic('object').with_package_ensure(param_hash[:package_ensure]) }
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
describe 'on rhel' do
|
|
||||||
|
context 'on Debian platforms' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{
|
{:operatingsystem => 'Ubuntu',
|
||||||
:operatingsystem => 'RedHat',
|
:osfamily => 'Debian' }
|
||||||
:osfamily => 'RedHat'
|
|
||||||
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_names => {
|
||||||
|
'swift-object' => 'swift-object',
|
||||||
|
'swift-object-replicator' => 'swift-object-replicator',
|
||||||
|
'swift-object-updater' => 'swift-object-updater',
|
||||||
|
'swift-object-auditor' => 'swift-object-auditor'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
it 'should have some support services' do
|
|
||||||
['swift-object-updater', 'swift-object-auditor'].each do |service|
|
it_configures 'swift-storage-object'
|
||||||
should contain_service(service).with(
|
end
|
||||||
:name => "openstack-#{service}",
|
|
||||||
:ensure => 'running',
|
context 'on RedHat platforms' do
|
||||||
:enable => true,
|
let :facts do
|
||||||
:require => 'Package[swift-object]'
|
{ :osfamily => 'RedHat',
|
||||||
)
|
:operatingsystem => 'RedHat' }
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
let :platform_params do
|
||||||
|
{ :service_names => {
|
||||||
|
'swift-object' => 'openstack-swift-object',
|
||||||
|
'swift-object-replicator' => 'openstack-swift-object-replicator',
|
||||||
|
'swift-object-updater' => 'openstack-swift-object-updater',
|
||||||
|
'swift-object-auditor' => 'openstack-swift-object-auditor'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'swift-storage-object'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user