Refactor api service management

Drop validation of service name which is not implemented for
the other daemons, to simplify handling of the provided service name.

This allows us to more easily offload the service name definition to
hiera data in the near future.

Change-Id: I6ef226cf07eae253203ea8ae4412d9530075cf3b
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
This commit is contained in:
Takashi Kajinami
2025-09-26 23:07:08 +09:00
parent 59d7f80f9d
commit 26d9a4e9d1
2 changed files with 67 additions and 68 deletions

View File

@@ -55,7 +55,7 @@ class heat::api (
Stdlib::Ensure::Package $package_ensure = 'present',
Boolean $manage_service = true,
Boolean $enabled = true,
$service_name = $heat::params::api_service_name,
String[1] $service_name = $heat::params::api_service_name,
# DEPRECATED PARAMETERS
$bind_host = undef,
$bind_port = undef,
@@ -85,43 +85,43 @@ class heat::api (
}
if $manage_service {
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
case $service_name {
'httpd': {
Service <| title == 'httpd' |> { tag +> 'heat-service' }
if $service_name == $heat::params::api_service_name {
service { 'heat-api':
ensure => $service_ensure,
name => $heat::params::api_service_name,
enable => $enabled,
hasstatus => true,
hasrestart => true,
tag => 'heat-service',
service { 'heat-api':
ensure => 'stopped',
name => $heat::params::api_service_name,
enable => false,
tag => ['heat-service'],
}
# we need to make sure heat-api/eventlet is stopped before trying to start apache
Service['heat-api'] -> Service['httpd']
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service['httpd']
}
default: {
$service_ensure = $enabled ? {
true => 'running',
default => 'stopped',
}
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service['heat-api']
# On any uwsgi config change, we must restart Heat API.
Heat_api_uwsgi_config<||> ~> Service['heat-api']
} elsif $service_name == 'httpd' {
service { 'heat-api':
ensure => 'stopped',
name => $heat::params::api_service_name,
enable => false,
tag => ['heat-service'],
service { 'heat-api':
ensure => $service_ensure,
name => $service_name,
enable => $enabled,
hasstatus => true,
hasrestart => true,
tag => 'heat-service',
}
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service['heat-api']
# On any uwsgi config change, we must restart Heat API.
Heat_api_uwsgi_config<||> ~> Service['heat-api']
}
Service <| title == 'httpd' |> { tag +> 'heat-service' }
# we need to make sure heat-api/eventlet is stopped before trying to start apache
Service['heat-api'] -> Service[$service_name]
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service[$service_name]
} else {
fail("Invalid service_name. Either heat-api/openstack-heat-api for \
running as a standalone service, or httpd for being run by a httpd server")
}
}

View File

@@ -58,7 +58,7 @@ class heat::api_cfn (
Stdlib::Ensure::Package $package_ensure = 'present',
Boolean $manage_service = true,
Boolean $enabled = true,
$service_name = $heat::params::api_cfn_service_name,
String[1] $service_name = $heat::params::api_cfn_service_name,
# DEPRECATED PARAMETERS
$bind_host = undef,
$bind_port = undef,
@@ -88,43 +88,42 @@ class heat::api_cfn (
}
if $manage_service {
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
case $service_name {
'httpd': {
Service <| title == 'httpd' |> { tag +> 'heat-service' }
if $service_name == $heat::params::api_cfn_service_name {
service { 'heat-api-cfn':
ensure => $service_ensure,
name => $heat::params::api_cfn_service_name,
enable => $enabled,
hasstatus => true,
hasrestart => true,
tag => 'heat-service',
service { 'heat-api-cfn':
ensure => 'stopped',
name => $heat::params::api_cfn_service_name,
enable => false,
tag => ['heat-service'],
}
# we need to make sure heat-api-cfn/eventlet is stopped before trying to start apache
Service['heat-api-cfn'] -> Service['httpd']
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service['httpd']
}
default: {
$service_ensure = $enabled ? {
true => 'running',
default => 'stopped',
}
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service['heat-api-cfn']
# On any uwsgi config change, we must restart Heat API.
Heat_api_cfn_uwsgi_config<||> ~> Service['heat-api-cfn']
} elsif $service_name == 'httpd' {
service { 'heat-api-cfn':
ensure => 'stopped',
name => $heat::params::api_cfn_service_name,
enable => false,
tag => ['heat-service'],
service { 'heat-api-cfn':
ensure => $service_ensure,
name => $service_name,
enable => $enabled,
hasstatus => true,
hasrestart => true,
tag => 'heat-service',
}
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service['heat-api-cfn']
# On any uwsgi config change, we must restart Heat API.
Heat_api_cfn_uwsgi_config<||> ~> Service['heat-api-cfn']
}
Service <| title == 'httpd' |> { tag +> 'heat-service' }
# we need to make sure heat-api-cfn/eventlet is stopped before trying to start apache
Service['heat-api-cfn'] -> Service[$service_name]
# On any paste-api.ini config change, we must restart Heat API.
Heat_api_paste_ini<||> ~> Service[$service_name]
} else {
fail("Invalid service_name. Either heat-api-cfn/openstack-heat-api-cfn for \
running as a standalone service, or httpd for being run by a httpd server")
}
}