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'
|
$scheduler_service_name = 'nova-scheduler'
|
||||||
$vncproxy_service_name = 'nova-novncproxy'
|
$vncproxy_service_name = 'nova-novncproxy'
|
||||||
$serialproxy_service_name = 'nova-serialproxy'
|
$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'
|
$tgt_service_name = 'tgt'
|
||||||
$nova_log_group = 'adm'
|
$nova_log_group = 'adm'
|
||||||
$nova_wsgi_script_path = '/usr/lib/cgi-bin/nova'
|
$nova_wsgi_script_path = '/usr/lib/cgi-bin/nova'
|
||||||
|
@ -135,6 +130,7 @@ class nova::params {
|
||||||
$special_service_provider = undef
|
$special_service_provider = undef
|
||||||
$virtlock_service_name = undef
|
$virtlock_service_name = undef
|
||||||
$virtlog_service_name = undef
|
$virtlog_service_name = undef
|
||||||
|
$placement_service_name = 'nova-placement-api'
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
$spicehtml5proxy_package_name = 'nova-spiceproxy'
|
$spicehtml5proxy_package_name = 'nova-spiceproxy'
|
||||||
|
@ -144,6 +140,7 @@ class nova::params {
|
||||||
$special_service_provider = undef
|
$special_service_provider = undef
|
||||||
$virtlock_service_name = 'virtlockd'
|
$virtlock_service_name = 'virtlockd'
|
||||||
$virtlog_service_name = 'virtlogd'
|
$virtlog_service_name = 'virtlogd'
|
||||||
|
$placement_service_name = 'httpd'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$libvirt_service_name = 'libvirtd'
|
$libvirt_service_name = 'libvirtd'
|
||||||
|
|
|
@ -10,16 +10,20 @@
|
||||||
#
|
#
|
||||||
# [*manage_service*]
|
# [*manage_service*]
|
||||||
# (optional) Whether to start/stop the 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.
|
# nova-placement-api.
|
||||||
# Defaults to true
|
# Defaults to true
|
||||||
#
|
#
|
||||||
|
# [*package_name*]
|
||||||
|
# (optional) The package name for nova placement.
|
||||||
|
# Defaults to $::nova::params::placement_package_name
|
||||||
|
#
|
||||||
# [*service_name*]
|
# [*service_name*]
|
||||||
# (optional) The service name for the placement service.
|
# (optional) The service name for the placement service.
|
||||||
# Defaults to $::nova::params::placement_service_name
|
# Defaults to $::nova::params::placement_service_name
|
||||||
#
|
#
|
||||||
# [*ensure_package*]
|
# [*ensure_package*]
|
||||||
# (optional) The state of the nova conductor package
|
# (optional) The state of the nova placement package
|
||||||
# Defaults to 'present'
|
# Defaults to 'present'
|
||||||
#
|
#
|
||||||
# [*password*]
|
# [*password*]
|
||||||
|
@ -76,6 +80,7 @@
|
||||||
class nova::placement(
|
class nova::placement(
|
||||||
$enabled = true,
|
$enabled = true,
|
||||||
$manage_service = true,
|
$manage_service = true,
|
||||||
|
$package_name = $::nova::params::placement_package_name,
|
||||||
$service_name = $::nova::params::placement_service_name,
|
$service_name = $::nova::params::placement_service_name,
|
||||||
$ensure_package = 'present',
|
$ensure_package = 'present',
|
||||||
$password = false,
|
$password = false,
|
||||||
|
@ -89,7 +94,7 @@ class nova::placement(
|
||||||
$username = 'placement',
|
$username = 'placement',
|
||||||
# DEPRECATED PARAMETERS
|
# DEPRECATED PARAMETERS
|
||||||
$os_region_name = undef,
|
$os_region_name = undef,
|
||||||
) {
|
) inherits nova::params {
|
||||||
|
|
||||||
include ::nova::deps
|
include ::nova::deps
|
||||||
|
|
||||||
|
@ -105,7 +110,7 @@ in a future release. Please use region_name instead.')
|
||||||
nova::generic_service { 'nova-placement-api':
|
nova::generic_service { 'nova-placement-api':
|
||||||
enabled => $enabled,
|
enabled => $enabled,
|
||||||
manage_service => $manage_service,
|
manage_service => $manage_service,
|
||||||
package_name => $::nova::params::placement_package_name,
|
package_name => $package_name,
|
||||||
service_name => $service_name,
|
service_name => $service_name,
|
||||||
ensure_package => $ensure_package,
|
ensure_package => $ensure_package,
|
||||||
}
|
}
|
||||||
|
@ -116,7 +121,6 @@ in a future release. Please use region_name instead.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
nova_config {
|
nova_config {
|
||||||
'placement/auth_type': value => $auth_type;
|
'placement/auth_type': value => $auth_type;
|
||||||
'placement/auth_url': value => $auth_url;
|
'placement/auth_url': value => $auth_url;
|
||||||
|
|
|
@ -60,6 +60,46 @@ describe 'nova::placement' do
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
on_supported_os({
|
on_supported_os({
|
||||||
|
@ -71,6 +111,10 @@ describe 'nova::placement' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'nova::placement'
|
it_behaves_like 'nova::placement'
|
||||||
|
|
||||||
|
if facts[:osfamily] == 'Debian'
|
||||||
|
it_behaves_like "nova::placement on #{facts[:operatingsystem]}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue