Add ironic config section for nova-api

nova-api requires credentials for interact with Ironic API

Change-Id: I665f177d1aa928fa55955a127873c3cef7934420
Closes-bug: #1570819
(cherry picked from commit f66a487b13)
This commit is contained in:
Andrey Shestakov 2016-05-12 16:29:11 +03:00
parent f7f728fc6f
commit f058cd3638
2 changed files with 28 additions and 1 deletions

View File

@ -439,7 +439,17 @@ class openstack_tasks::openstack_controller::openstack_controller {
$nova_scheduler_filters = unique(concat(pick($nova_config_hash['default_filters'], $nova_scheduler_default_filters), $sahara_filters, $sriov_filters, $huge_pages_filters, $cpu_pinning_filters))
if $ironic_hash['enabled'] {
$scheduler_host_manager = 'nova.scheduler.ironic_host_manager.IronicHostManager'
$scheduler_host_manager = 'nova.scheduler.ironic_host_manager.IronicHostManager'
$ironic_endpoint_default = hiera('ironic_endpoint', $management_vip)
$ironic_protocol = get_ssl_property($ssl_hash, {}, 'ironic', 'internal', 'protocol', 'http')
$ironic_endpoint = get_ssl_property($ssl_hash, {}, 'ironic', 'internal', 'hostname', $ironic_endpoint_default)
class { '::nova::ironic::common':
admin_username => pick($ironic_hash['auth_name'],'ironic'),
admin_password => pick($ironic_hash['user_password'],'ironic'),
admin_url => $keystone_identity_uri,
admin_tenant_name => pick($ironic_hash['tenant'],'services'),
api_endpoint => "${ironic_protocol}://${ironic_endpoint}:6385/v1",
}
}
class { '::nova::scheduler::filter':

View File

@ -148,6 +148,14 @@ describe manifest do
let(:fallback_workers) { [[facts[:processorcount].to_i, 2].max, workers_max.to_i].min }
let(:service_workers) { nova_hash.fetch('workers', fallback_workers) }
let(:ironic_hash) { Noop.hiera_hash 'ironic', {} }
let(:ironic_user) { Noop.puppet_function 'pick', ironic_hash['auth_name'], 'ironic' }
let(:ironic_password) { Noop.puppet_function 'pick', ironic_hash['user_password'], 'ironic' }
let(:ironic_tenant) { Noop.puppet_function 'pick', ironic_hash['tenant'], 'services' }
let(:ironic_endpoint_default) { Noop.hiera 'ironic_endpoint', management_vip }
let(:ironic_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'ironic','internal','protocol','http' }
let(:ironic_endpoint) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'ironic','internal','hostname', ironic_endpoint_default}
# TODO All this stuff should be moved to shared examples controller* tests.
it 'should declare correct workers for systems with 4 processess on 4 CPU & 32G system' do
@ -418,6 +426,15 @@ describe manifest do
'scheduler_host_manager' => 'nova.scheduler.ironic_host_manager.IronicHostManager',
)
end
it 'should declare nova::ironic::common class with ironic parameters' do
should contain_class('nova::ironic::common').with(
'admin_username' => ironic_user,
'admin_password' => ironic_password,
'admin_tenant_name' => ironic_tenant,
'admin_url' => keystone_identity_uri,
'api_endpoint' => "#{ironic_protocol}://#{ironic_endpoint}:6385/v1",
)
end
end
if storage_hash['volumes_ceph']