Browse Source

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
(cherry picked from commit 1f1428e01b)
(cherry picked from commit 028ed43143)
(cherry picked from commit f188ffddb8)
changes/94/759594/1
Takashi Kajinami 3 months ago
parent
commit
e126ce8145
5 changed files with 13 additions and 17 deletions
  1. +5
    -0
      lib/puppet/type/nova_aggregate.rb
  2. +5
    -0
      lib/puppet/type/nova_service.rb
  3. +1
    -1
      manifests/api.pp
  4. +1
    -2
      manifests/keystone/auth.pp
  5. +1
    -14
      spec/classes/nova_keystone_auth_spec.rb

+ 5
- 0
lib/puppet/type/nova_aggregate.rb 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|


+ 5
- 0
lib/puppet/type/nova_service.rb 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|


+ 1
- 1
manifests/api.pp View File

@@ -287,7 +287,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")


+ 1
- 2
manifests/keystone/auth.pp 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':


+ 1
- 14
spec/classes/nova_keystone_auth_spec.rb 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


Loading…
Cancel
Save