Restart only specific services after config change
Currently we restart all swift services regardless of the config file being updated. This is very redundant, because some config files affect only specific services (eg. account-server.conf is used only by account-* daemons). This introduces new "sub" tags such as swift-account-service and limit the services being restarted. Change-Id: Idfa09b63d291b0f71686554cb7c7b0597cb8842c
This commit is contained in:
parent
437090abf3
commit
3c89736ffe
manifests
releasenotes/notes
spec
@ -91,7 +91,6 @@ class swift::containerreconciler(
|
||||
) inherits swift::params {
|
||||
|
||||
include swift::deps
|
||||
Swift_config<| |> ~> Service['swift-container-reconciler']
|
||||
Swift_container_reconciler_config<||> ~> Service['swift-container-reconciler']
|
||||
|
||||
# only add memcache servers if 'cache' is included in the pipeline
|
||||
|
@ -21,48 +21,38 @@ class swift::deps {
|
||||
~> anchor { 'swift::service::end': }
|
||||
~> Swift_dispersion_config<||>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_proxy_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_proxy_config<||> -> Anchor['swift::config::end']
|
||||
Swift_proxy_config<||> ~> Service<| tag == 'swift-proxy-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_storage_policy<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_storage_policy<||> -> Anchor['swift::config::end']
|
||||
# storage policy is now used by proxy and object
|
||||
Swift_storage_policy<||> ~> Service<| tag == 'swift-proxy-service' |>
|
||||
Swift_storage_policy<||> ~> Service<| tag == 'swift-object-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_object_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_object_config<||> -> Anchor['swift::config::end']
|
||||
Swift_object_config<||> ~> Service<| tag == 'swift-object-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_container_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_container_config<||> -> Anchor['swift::config::end']
|
||||
Swift_container_config<||> ~> Service<| tag == 'swift-container-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_account_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_account_config<||> -> Anchor['swift::config::end']
|
||||
Swift_account_config<||> ~> Service<| tag == 'swift-account-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_internal_client_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_internal_client_config<||> ~> Anchor['swift::config::end']
|
||||
|
||||
# On any uwsgi config change, we must restart Swift.
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_proxy_uwsgi_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_proxy_uwsgi_config<||> -> Anchor['swift::config::end']
|
||||
Swift_proxy_uwsgi_config<||> ~> Service<| tag == 'swift-proxy-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_account_uwsgi_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_account_uwsgi_config<||> -> Anchor['swift::config::end']
|
||||
Swift_account_uwsgi_config<||> ~> Service<| tag == 'swift-account-service' |>
|
||||
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_container_uwsgi_config<||>
|
||||
~> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_container_uwsgi_config<||> -> Anchor['swift::config::end']
|
||||
Swift_container_uwsgi_config<||> ~> Service<| tag == 'swift-container-service' |>
|
||||
|
||||
# drive-audit.conf is not used by swift services, so any change in the file
|
||||
# should not trigger restarting services.
|
||||
Anchor['swift::config::begin']
|
||||
-> Swift_drive_audit_config<||>
|
||||
-> Anchor['swift::config::end']
|
||||
Anchor['swift::config::begin'] -> Swift_drive_audit_config<||> -> Anchor['swift::config::end']
|
||||
|
||||
# Support packages need to be installed in the install phase, but we don't
|
||||
# put them in the chain above because we don't want any false dependencies
|
||||
|
@ -133,7 +133,6 @@ class swift::objectexpirer(
|
||||
) inherits swift::params {
|
||||
|
||||
include swift::deps
|
||||
Swift_config<| |> ~> Service['swift-object-expirer']
|
||||
Swift_object_expirer_config<||> ~> Service['swift-object-expirer']
|
||||
|
||||
if $auto_create_account_prefix != undef {
|
||||
|
@ -318,7 +318,8 @@ class swift::proxy(
|
||||
enabled => $enabled,
|
||||
config_file_name => 'proxy-server.conf',
|
||||
service_provider => $service_provider,
|
||||
service_require => Class[$required_classes]
|
||||
service_require => Class[$required_classes],
|
||||
service_tag => 'swift-proxy-service',
|
||||
}
|
||||
} else {
|
||||
exec { 'vadate-proxy-pipeline':
|
||||
|
@ -38,6 +38,9 @@
|
||||
# [*service_require*]
|
||||
# (optional) Parameter used to pass in resources that this service requires.
|
||||
#
|
||||
# [*service_tag*]
|
||||
# (optional) Additional tag to be added to the service resource
|
||||
#
|
||||
define swift::service(
|
||||
$os_family_service_name,
|
||||
$config_file_name,
|
||||
@ -46,6 +49,7 @@ define swift::service(
|
||||
$service_provider = $::swift::params::service_provider,
|
||||
$service_subscribe = undef,
|
||||
$service_require = undef,
|
||||
$service_tag = undef,
|
||||
) {
|
||||
|
||||
include swift::deps
|
||||
@ -55,6 +59,8 @@ define swift::service(
|
||||
fail("swift::service name: ${name} is not a valid swift_init_service_name")
|
||||
}
|
||||
|
||||
$tag = delete_undef_values(['swift-service', $service_tag])
|
||||
|
||||
if $service_provider != 'swiftinit' {
|
||||
service { $name:
|
||||
ensure => $service_ensure,
|
||||
@ -62,7 +68,7 @@ define swift::service(
|
||||
hasstatus => true,
|
||||
enable => $enabled,
|
||||
provider => $service_provider,
|
||||
tag => 'swift-service',
|
||||
tag => $tag,
|
||||
subscribe => $service_subscribe,
|
||||
require => $service_require,
|
||||
}
|
||||
@ -75,7 +81,7 @@ define swift::service(
|
||||
provider => 'swiftinit',
|
||||
pattern => $os_family_service_name,
|
||||
manifest => $config_file_name,
|
||||
tag => 'swift-service',
|
||||
tag => $tag,
|
||||
subscribe => $service_subscribe,
|
||||
require => $service_require,
|
||||
}
|
||||
|
@ -57,6 +57,7 @@ class swift::storage::account(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => 'swift-account-service',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -63,6 +63,7 @@ class swift::storage::container(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => 'swift-container-service',
|
||||
}
|
||||
|
||||
swift::service { 'swift-container-sync':
|
||||
@ -71,6 +72,7 @@ class swift::storage::container(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => 'swift-container-service',
|
||||
}
|
||||
|
||||
swift::service { 'swift-container-sharder':
|
||||
@ -79,6 +81,7 @@ class swift::storage::container(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => 'swift-container-service',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -73,6 +73,7 @@ define swift::storage::generic(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => "swift-${name}-service",
|
||||
}
|
||||
|
||||
swift::service { "swift-${name}-replicator":
|
||||
@ -81,6 +82,7 @@ define swift::storage::generic(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => "swift-${name}-service",
|
||||
}
|
||||
|
||||
swift::service { "swift-${name}-auditor":
|
||||
@ -89,6 +91,7 @@ define swift::storage::generic(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => "swift-${name}-service",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,6 +57,7 @@ class swift::storage::object(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => 'swift-object-service',
|
||||
}
|
||||
|
||||
swift::service { 'swift-object-reconstructor':
|
||||
@ -65,6 +66,7 @@ class swift::storage::object(
|
||||
enabled => $enabled,
|
||||
config_file_name => $config_file_name,
|
||||
service_provider => $service_provider,
|
||||
service_tag => 'swift-object-service',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
The new ``service_tag`` parameter has been added to
|
||||
the ``swift::service`` defined resource type. This parameter controls
|
||||
the additional tag added to the service resource in addition to
|
||||
the default ``swift-service`` tag.
|
||||
|
||||
fixes:
|
||||
- |
|
||||
This module no longer restarts all services after updating config files,
|
||||
but restrts only the relevant services.
|
@ -43,7 +43,7 @@ describe 'swift::proxy' do
|
||||
:provider => nil,
|
||||
:enable => true,
|
||||
:hasstatus => true,
|
||||
:tag => 'swift-service',
|
||||
:tag => ['swift-service', 'swift-proxy-service'],
|
||||
)}
|
||||
|
||||
it { should contain_service('swift-proxy-server').that_subscribes_to('Anchor[swift::service::begin]') }
|
||||
@ -106,8 +106,6 @@ describe 'swift::proxy' do
|
||||
include swift::proxy::copy
|
||||
"
|
||||
end
|
||||
|
||||
it { should contain_swift_proxy_config('foo/bar').with_value('foo').that_notifies('Anchor[swift::config::end]') }
|
||||
end
|
||||
|
||||
describe 'when more parameters are set' do
|
||||
@ -316,7 +314,7 @@ describe 'swift::proxy' do
|
||||
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash[:enabled],
|
||||
:provider => nil,
|
||||
:tag => 'swift-service',
|
||||
:tag => ['swift-service', 'swift-proxy-service'],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -39,7 +39,7 @@ describe 'swift::storage::account' do
|
||||
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash[:enabled],
|
||||
:provider => nil,
|
||||
:tag => 'swift-service',
|
||||
:tag => ['swift-service', 'swift-account-service'],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -40,7 +40,7 @@ describe 'swift::storage::container' do
|
||||
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash[:enabled],
|
||||
:provider => nil,
|
||||
:tag => 'swift-service',
|
||||
:tag => ['swift-service', 'swift-container-service'],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -40,7 +40,7 @@ describe 'swift::storage::object' do
|
||||
:ensure => (param_hash[:manage_service] && param_hash[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash[:enabled],
|
||||
:provider => nil,
|
||||
:tag => 'swift-service',
|
||||
:tag => ['swift-service', 'swift-object-service'],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -77,7 +77,7 @@ describe 'swift::storage::generic' do
|
||||
:ensure => (param_hash_manage[:manage_service] && param_hash_manage[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash_manage[:enabled],
|
||||
:provider => param_set[:service_provider],
|
||||
:tag => 'swift-service'
|
||||
:tag => ['swift-service', "swift-#{t}-service"],
|
||||
)
|
||||
end
|
||||
|
||||
@ -87,7 +87,7 @@ describe 'swift::storage::generic' do
|
||||
:ensure => (param_hash_manage[:manage_service] && param_hash_manage[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash_manage[:enabled],
|
||||
:provider => param_set[:service_provider],
|
||||
:tag => 'swift-service'
|
||||
:tag => ['swift-service', "swift-#{t}-service"],
|
||||
)
|
||||
end
|
||||
|
||||
@ -97,7 +97,7 @@ describe 'swift::storage::generic' do
|
||||
:ensure => (param_hash_manage[:manage_service] && param_hash_manage[:enabled]) ? 'running' : 'stopped',
|
||||
:enable => param_hash_manage[:enabled],
|
||||
:provider => param_set[:service_provider],
|
||||
:tag => 'swift-service'
|
||||
:tag => ['swift-service', "swift-#{t}-service"],
|
||||
)
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user