Merge "Better handling of package dependencies in nova generic_service"
This commit is contained in:
@@ -32,7 +32,7 @@ define nova::generic_service(
|
|||||||
# I need to mark that ths package should be
|
# I need to mark that ths package should be
|
||||||
# installed before nova_config
|
# installed before nova_config
|
||||||
if ($package_name) {
|
if ($package_name) {
|
||||||
if !defined(Package[$package_name]) {
|
if !defined(Package[$nova_title]) and !defined(Package[$package_name]) {
|
||||||
package { $nova_title:
|
package { $nova_title:
|
||||||
ensure => $ensure_package,
|
ensure => $ensure_package,
|
||||||
name => $package_name,
|
name => $package_name,
|
||||||
@@ -40,6 +40,14 @@ define nova::generic_service(
|
|||||||
tag => ['openstack'],
|
tag => ['openstack'],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $service_name {
|
||||||
|
# Do the dependency relationship here in case the package
|
||||||
|
# has been defined elsewhere, either as Package[$nova_title]
|
||||||
|
# or Package[$package_name]
|
||||||
|
Package<| title == $nova_title |> -> Service[$nova_title]
|
||||||
|
Package<| title == $package_name |> -> Service[$nova_title]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if $service_name {
|
if $service_name {
|
||||||
@@ -56,7 +64,7 @@ define nova::generic_service(
|
|||||||
name => $service_name,
|
name => $service_name,
|
||||||
enable => $enabled,
|
enable => $enabled,
|
||||||
hasstatus => true,
|
hasstatus => true,
|
||||||
require => [Package['nova-common'], Package[$nova_title]],
|
require => [Package['nova-common']],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,8 +25,11 @@ describe 'nova::generic_service' do
|
|||||||
it { is_expected.to contain_service('nova-foo').with(
|
it { is_expected.to contain_service('nova-foo').with(
|
||||||
'name' => 'food',
|
'name' => 'food',
|
||||||
'ensure' => 'running',
|
'ensure' => 'running',
|
||||||
'enable' => true,
|
'enable' => true
|
||||||
'require' => ['Package[nova-common]', 'Package[nova-foo]']
|
)}
|
||||||
|
|
||||||
|
it { is_expected.to contain_service('nova-foo').that_requires(
|
||||||
|
['Package[nova-common]', 'Package[nova-foo]']
|
||||||
)}
|
)}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user