From 39afe1799ae14f9a6235aeb950d4ef839a08b413 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Fri, 26 Sep 2025 23:20:58 +0900 Subject: [PATCH] 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: I3dd18cbbad789b461bf4152a3d8d895125824185 Signed-off-by: Takashi Kajinami --- manifests/api.pp | 58 +++++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/manifests/api.pp b/manifests/api.pp index cd94ad8b..38fa25ed 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -20,6 +20,13 @@ # (Optional) Whether the designate api service will be managed. # Defaults to true # +# [*service_name*] +# (Optional) Name of the service that will be providing the server +# functionality of the designate API. If the value is 'httpd', +# designate will be run as web service and configuration of the +# web server will be required (e.g designate::wsgi::apache) +# Defaults to $designate::params::api_service_name +# # [*auth_strategy*] # (optional) Authentication strategy to use, can be either "noauth" or # "keystone". @@ -98,18 +105,12 @@ # (Optional) Set max request body size # Defaults to $facts['os_service_default']. # -# [*service_name*] -# (Optional) Name of the service that will be providing the server -# functionality of the designate API. If the value is 'httpd', -# designate will be run as web service and configuration of the -# web server will be required (e.g designate::wsgi::apache) -# Defaults to $designate::params::api_service_name -# class designate::api ( Stdlib::Ensure::Package $package_ensure = present, $api_package_name = $designate::params::api_package_name, Boolean $enabled = true, Boolean $manage_service = true, + String[1] $service_name = $designate::params::api_service_name, $auth_strategy = $facts['os_service_default'], $enable_api_v2 = $facts['os_service_default'], $enable_api_admin = $facts['os_service_default'], @@ -129,7 +130,6 @@ class designate::api ( $quotas_verify_project_id = $facts['os_service_default'], $enable_proxy_headers_parsing = $facts['os_service_default'], $max_request_body_size = $facts['os_service_default'], - $service_name = $designate::params::api_service_name, ) inherits designate { include designate::deps include designate::policy @@ -165,29 +165,31 @@ class designate::api ( } if $manage_service { - if $service_name == 'httpd' { - service { 'designate-api': - ensure => 'stopped', - name => $designate::params::api_service_name, - enable => false, - tag => ['designate-service'], + case $service_name { + 'httpd': { + $service_name_real = false + + Service <| title == 'httpd' |> { tag +> 'designate-service' } + + service { 'designate-api': + ensure => 'stopped', + name => $designate::params::api_service_name, + enable => false, + tag => ['designate-service'], + } + Service['designate-api'] -> Service['httpd'] + # On any paste-api.ini config change, we must restart Designate API. + Designate_api_paste_ini<||> ~> Service['httpd'] } - Service['designate-api'] -> Service[$service_name] - $service_name_real = false - Service <| title == 'httpd' |> { tag +> 'designate-service' } + default: { + $service_name_real = $service_name - # On any paste-api.ini config change, we must restart Designate API. - Designate_api_paste_ini<||> ~> Service[$service_name] - } else { - $service_name_real = $service_name - - # On any paste-api.ini config change, we must restart Designate API. - Designate_api_paste_ini<||> ~> Service['designate-api'] - # On any uwsgi config change, we must restart Designate API. - Designate_api_uwsgi_config<||> ~> Service['designate-api'] + # On any paste-api.ini config change, we must restart Designate API. + Designate_api_paste_ini<||> ~> Service['designate-api'] + # On any uwsgi config change, we must restart Designate API. + Designate_api_uwsgi_config<||> ~> Service['designate-api'] + } } - } else { - $service_name_real = $service_name } designate::generic_service { 'api':