Merge "Refactor api service management"

This commit is contained in:
Zuul
2025-09-29 15:27:22 +00:00
committed by Gerrit Code Review
2 changed files with 34 additions and 51 deletions

View File

@@ -79,7 +79,7 @@ class manila::api (
Boolean $enabled = true, Boolean $enabled = true,
Boolean $sync_db = true, Boolean $sync_db = true,
Boolean $manage_service = true, Boolean $manage_service = true,
$service_name = $manila::params::api_service, String[1] $service_name = $manila::params::api_service,
$ratelimits = undef, $ratelimits = undef,
$ratelimits_factory = 'manila.api.v1.limits:RateLimitingMiddleware.factory', $ratelimits_factory = 'manila.api.v1.limits:RateLimitingMiddleware.factory',
$enable_proxy_headers_parsing = $facts['os_service_default'], $enable_proxy_headers_parsing = $facts['os_service_default'],
@@ -105,44 +105,43 @@ class manila::api (
} }
if $manage_service { if $manage_service {
if $enabled { case $service_name {
$ensure = 'running' 'httpd': {
} else { Service <| title == 'httpd' |> { tag +> 'manila-service' }
$ensure = 'stopped'
}
if $service_name == $manila::params::api_service { # We need to make sure manila-api/eventlet is stopped before trying to
service { 'manila-api': # start apache
ensure => $ensure, service { 'manila-api':
name => $manila::params::api_service, ensure => 'stopped',
enable => $enabled, name => $manila::params::api_service,
hasstatus => true, enable => false,
tag => 'manila-service', tag => ['manila-service'],
}
Service['manila-api'] -> Service['httpd']
# On any api-paste.ini config change, we must restart Manila API.
Manila_api_paste_ini<||> ~> Service['httpd']
} }
default: {
$service_ensure = $enabled ? {
true => 'running',
default => 'stopped',
}
# On any api-paste.ini config change, we must restart Manila API. service { 'manila-api':
Manila_api_paste_ini<||> ~> Service['manila-api'] ensure => $service_ensure,
# On any uwsgi config change, we must restart Manila API. name => $service_name,
Manila_api_uwsgi_config<||> ~> Service['manila-api'] enable => $enabled,
} elsif $service_name == 'httpd' { hasstatus => true,
# We need to make sure manila-api/eventlet is stopped before trying to tag => 'manila-service',
# start apache }
service { 'manila-api':
ensure => 'stopped', # On any api-paste.ini config change, we must restart Manila API.
name => $manila::params::api_service, Manila_api_paste_ini<||> ~> Service['manila-api']
enable => false, # On any uwsgi config change, we must restart Manila API.
tag => ['manila-service'], Manila_api_uwsgi_config<||> ~> Service['manila-api']
} }
Service <| title == 'httpd' |> { tag +> 'manila-service' }
Service['manila-api'] -> Service[$service_name]
# On any api-paste.ini config change, we must restart Manila API.
Manila_api_paste_ini<||> ~> Service[$service_name]
} else {
fail("Invalid service_name. Either use manila-api/openstack-manila-api \
for running as a standalone service, or httpd for being run by a httpd \
server.")
} }
} }

View File

@@ -167,22 +167,6 @@ describe 'manila::api' do
end end
end end
context 'when service_name is not valid' do
let :params do
req_params.merge!({ :service_name => 'foobar' })
end
let :pre_condition do
"include apache
class { 'manila': }
class { 'manila::keystone::authtoken':
password => 'foo',
}"
end
it_raises 'a Puppet::Error', /Invalid service_name/
end
context 'enabled_share_protocols is set' do context 'enabled_share_protocols is set' do
let :params do let :params do
req_params.merge!({ req_params.merge!({