Debian/Ubuntu: Fix missing nova-compute-ironic

This package should be installed to use ironic virt driver.

Closes-Bug: #2042383
Change-Id: I3b7ac19b347f3a5deb68d724de32246bb8dc1075
This commit is contained in:
Takashi Kajinami 2023-11-01 12:17:16 +09:00
parent 29378852ad
commit 1a768d4d01
3 changed files with 33 additions and 11 deletions

View File

@ -4,18 +4,30 @@
# #
# === Parameters: # === Parameters:
# #
# [*ensure_package*]
# (optional) The state of nova packages
# Defaults to 'present'
#
# [*compute_driver*] # [*compute_driver*]
# (optional) Compute driver. # (optional) Compute driver.
# Defaults to 'ironic.IronicDriver' # Defaults to 'ironic.IronicDriver'
# #
class nova::compute::ironic ( class nova::compute::ironic (
$compute_driver = 'ironic.IronicDriver', $ensure_package = 'present',
$compute_driver = 'ironic.IronicDriver',
) { ) {
include nova::deps include nova::deps
require nova::ironic::common require nova::ironic::common
include ironic::client include ironic::client
if($facts['os']['family'] == 'Debian') {
package { 'nova-compute-ironic':
ensure => $ensure_package,
tag => ['openstack', 'nova-package'],
}
}
nova_config { nova_config {
'DEFAULT/compute_driver': value => $compute_driver; 'DEFAULT/compute_driver': value => $compute_driver;
} }

View File

@ -0,0 +1,5 @@
---
fixes:
- |
Now the ``nova::compute::ironic`` class installs
the ``nova-compute-ironic`` package in Debian or Ubuntu.

View File

@ -2,8 +2,7 @@ require 'spec_helper'
describe 'nova::compute::ironic' do describe 'nova::compute::ironic' do
shared_examples_for 'nova-compute-ironic' do shared_examples_for 'nova::compute::ironic' do
context 'with default parameters' do context 'with default parameters' do
it 'configures ironic in nova.conf' do it 'configures ironic in nova.conf' do
is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('ironic.IronicDriver') is_expected.to contain_nova_config('DEFAULT/compute_driver').with_value('ironic.IronicDriver')
@ -30,6 +29,17 @@ describe 'nova::compute::ironic' do
end end
end end
shared_examples_for 'nova::compute::ironic in Debian' do
context 'with default parameters' do
it 'installs nova-compute-ironic' do
is_expected.to contain_package('nova-compute-ironic').with(
:ensure => 'present',
:tag => ['openstack', 'nova-package'],
)
end
end
end
on_supported_os({ on_supported_os({
:supported_os => OSDefaults.get_supported_os :supported_os => OSDefaults.get_supported_os
}).each do |os,facts| }).each do |os,facts|
@ -38,15 +48,10 @@ describe 'nova::compute::ironic' do
facts.merge!(OSDefaults.get_facts()) facts.merge!(OSDefaults.get_facts())
end end
let(:platform_params) do it_configures 'nova::compute::ironic'
case facts[:os]['family'] if facts[:os]['family'] == 'Debian'
when 'Debian' it_configures 'nova::compute::ironic in Debian'
{}
when 'RedHat'
{}
end
end end
it_configures 'nova-compute-ironic'
end end
end end
end end