Fix bug in placement and add tests
Fix a bug that was introduced in [1] because there was no testing. This also adds the test specs, although more thorough, that was added in PS 14 in [1]. [1] https://review.openstack.org/#/c/561362/ Change-Id: I8a09087eaa58a62333b8051042eba2852f02bcc6
This commit is contained in:
parent
c691207480
commit
4c5a623a51
|
@ -112,11 +112,6 @@ class nova::params {
|
|||
$scheduler_service_name = 'nova-scheduler'
|
||||
$vncproxy_service_name = 'nova-novncproxy'
|
||||
$serialproxy_service_name = 'nova-serialproxy'
|
||||
if ($::os_package_type == 'debian') {
|
||||
$placement_service_name = 'nova-placement-api'
|
||||
} else {
|
||||
$placement_service_name = 'httpd'
|
||||
}
|
||||
$tgt_service_name = 'tgt'
|
||||
$nova_log_group = 'adm'
|
||||
$nova_wsgi_script_path = '/usr/lib/cgi-bin/nova'
|
||||
|
@ -135,6 +130,7 @@ class nova::params {
|
|||
$special_service_provider = undef
|
||||
$virtlock_service_name = undef
|
||||
$virtlog_service_name = undef
|
||||
$placement_service_name = 'nova-placement-api'
|
||||
}
|
||||
default: {
|
||||
$spicehtml5proxy_package_name = 'nova-spiceproxy'
|
||||
|
@ -144,6 +140,7 @@ class nova::params {
|
|||
$special_service_provider = undef
|
||||
$virtlock_service_name = 'virtlockd'
|
||||
$virtlog_service_name = 'virtlogd'
|
||||
$placement_service_name = 'httpd'
|
||||
}
|
||||
}
|
||||
$libvirt_service_name = 'libvirtd'
|
||||
|
|
|
@ -10,16 +10,20 @@
|
|||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether to start/stop the service
|
||||
# Only useful if ::nova::params::service_name is set to
|
||||
# Only useful if $::nova::params::service_name is set to
|
||||
# nova-placement-api.
|
||||
# Defaults to true
|
||||
#
|
||||
# [*package_name*]
|
||||
# (optional) The package name for nova placement.
|
||||
# Defaults to $::nova::params::placement_package_name
|
||||
#
|
||||
# [*service_name*]
|
||||
# (optional) The service name for the placement service.
|
||||
# Defaults to $::nova::params::placement_service_name
|
||||
#
|
||||
# [*ensure_package*]
|
||||
# (optional) The state of the nova conductor package
|
||||
# (optional) The state of the nova placement package
|
||||
# Defaults to 'present'
|
||||
#
|
||||
# [*password*]
|
||||
|
@ -76,6 +80,7 @@
|
|||
class nova::placement(
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$package_name = $::nova::params::placement_package_name,
|
||||
$service_name = $::nova::params::placement_service_name,
|
||||
$ensure_package = 'present',
|
||||
$password = false,
|
||||
|
@ -89,7 +94,7 @@ class nova::placement(
|
|||
$username = 'placement',
|
||||
# DEPRECATED PARAMETERS
|
||||
$os_region_name = undef,
|
||||
) {
|
||||
) inherits nova::params {
|
||||
|
||||
include ::nova::deps
|
||||
|
||||
|
@ -105,7 +110,7 @@ in a future release. Please use region_name instead.')
|
|||
nova::generic_service { 'nova-placement-api':
|
||||
enabled => $enabled,
|
||||
manage_service => $manage_service,
|
||||
package_name => $::nova::params::placement_package_name,
|
||||
package_name => $package_name,
|
||||
service_name => $service_name,
|
||||
ensure_package => $ensure_package,
|
||||
}
|
||||
|
@ -116,7 +121,6 @@ in a future release. Please use region_name instead.')
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
nova_config {
|
||||
'placement/auth_type': value => $auth_type;
|
||||
'placement/auth_url': value => $auth_url;
|
||||
|
|
|
@ -60,6 +60,46 @@ describe 'nova::placement' do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when settings service_name to httpd' do
|
||||
before do
|
||||
params.merge!(
|
||||
:service_name => 'httpd',
|
||||
)
|
||||
end
|
||||
|
||||
it 'should not contain placement generic service' do
|
||||
is_expected.to_not contain_nova__generic_service('nova-placement-api')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
shared_examples 'nova::placement on Ubuntu' do
|
||||
context 'with required parameters' do
|
||||
it 'should not contain placement generic service' do
|
||||
is_expected.to_not contain_nova__generic_service('nova-placement-api')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples 'nova::placement on Debian' do
|
||||
before do
|
||||
facts.merge!(
|
||||
:os_package_type => 'debian',
|
||||
)
|
||||
end
|
||||
|
||||
context 'with required parameters' do
|
||||
it 'should contain placement generic service' do
|
||||
is_expected.to contain_nova__generic_service('nova-placement-api').with(
|
||||
:enabled => true,
|
||||
:manage_service => true,
|
||||
:package_name => 'nova-placement-api',
|
||||
:service_name => 'nova-placement-api',
|
||||
:ensure_package => 'present'
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
|
@ -71,6 +111,10 @@ describe 'nova::placement' do
|
|||
end
|
||||
|
||||
it_behaves_like 'nova::placement'
|
||||
|
||||
if facts[:osfamily] == 'Debian'
|
||||
it_behaves_like "nova::placement on #{facts[:operatingsystem]}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue