Fix wrong notification between api service and httpd

nova-api service should be stopped before httpd service is started,
thus nova-api should notify httpd.

Change-Id: Ibffb65269daaeca62554cfbecb536361ab70611a
This commit is contained in:
Takashi Kajinami 2020-10-09 16:36:58 +09:00
parent 9a29c21175
commit 1f1428e01b
5 changed files with 13 additions and 17 deletions

View File

@ -53,6 +53,11 @@ Puppet::Type.newtype(:nova_aggregate) do
['auth_url', 'project_name', 'username', 'password']
end
# Require the nova-api service to be running
autorequire(:anchor) do
['nova::service::end']
end
newparam(:name, :namevar => true) do
desc 'Name for the new aggregate'
validate do |value|

View File

@ -40,6 +40,11 @@ Puppet::Type.newtype(:nova_service) do
ensurable
# Require the nova-api service to be running
autorequire(:anchor) do
['nova::service::end']
end
newparam(:name, :namevar => true) do
desc 'Name of host'
validate do |value|

View File

@ -276,7 +276,7 @@ class nova::api(
}
Service <| title == 'httpd' |> { tag +> 'nova-service' }
# make sure we start apache before nova-api to avoid binding issues
Service[$service_name] -> Service['nova-api']
Service['nova-api'] -> Service[$service_name]
} else {
fail("Invalid service_name. Either nova-api/openstack-nova-api for running \
as a standalone service, or httpd for being run by a httpd server")

View File

@ -78,9 +78,8 @@ class nova::keystone::auth(
include nova::deps
if $configure_endpoint {
Keystone_endpoint["${region}/${service_name}::compute"] ~> Service <| name == 'nova-api' |>
Keystone_endpoint["${region}/${service_name}::compute"] -> Anchor['nova::service::end']
}
keystone::resource::service_identity { 'nova':

View File

@ -166,7 +166,7 @@ describe 'nova::keystone::auth' do
}
end
it { should contain_keystone_endpoint('RegionOne/nova::compute').with_notify(platform_params[:nova_api_notify]) }
it { should contain_keystone_endpoint('RegionOne/nova::compute').with_before(['Anchor[nova::service::end]']) }
end
end
@ -178,19 +178,6 @@ describe 'nova::keystone::auth' do
facts.merge!(OSDefaults.get_facts())
end
let (:platform_params) do
case facts[:osfamily]
when 'Debian'
{
:nova_api_notify => ['Service[nova-api]'],
}
when 'RedHat'
{
:nova_api_notify => [],
}
end
end
it_behaves_like 'nova::keystone::auth'
end
end