Add support for [inventory] parameters

Depends-on: https://review.opendev.org/c/openstack/ironic/+/870470
Change-Id: I38b480f09332ad50c70fc35f175a0a9dd3826bc7
This commit is contained in:
Takashi Kajinami 2023-02-13 13:36:38 +09:00
parent c8978dcba2
commit def2473550
3 changed files with 83 additions and 0 deletions

34
manifests/inventory.pp Normal file
View File

@ -0,0 +1,34 @@
# == Class: ironic::inventory
#
# Configure the inventory parameters
#
# === Parameters
#
# [*data_backend*]
# (Optional) The storage backend for storing introspection data.
# Defaults to $::os_service_default.
#
# [*swift_data_container*]
# (Optional) The Swift introspection data container to store the inventory
# data.
# Defaults to $::os_service_default.
#
class ironic::inventory (
$data_backend = $::os_service_default,
$swift_data_container = $::os_service_default,
) {
include ironic::deps
include ironic::params
if ! is_service_default($data_backend) {
validate_legacy(Enum['none', 'database', 'swift'], 'validate_re', $data_backend,
['^none$', '^database$', '^swift$'])
}
ironic_config {
'inventory/data_backend': value => $data_backend;
'inventory/swift_data_container': value => $swift_data_container;
}
}

View File

@ -0,0 +1,4 @@
---
features:
- |
The new ``ironic::inventory`` class has been added.

View File

@ -0,0 +1,45 @@
require 'spec_helper'
describe 'ironic::inventory' do
shared_examples_for 'ironic::inventory' do
context 'with default parameters' do
let :params do
{}
end
it 'configures default values' do
is_expected.to contain_ironic_config('inventory/data_backend').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('inventory/swift_data_container').with_value('<SERVICE DEFAULT>')
end
end
context 'with specific parameters' do
let :params do
{
:data_backend => 'database',
:swift_data_container => 'introspection_data_container'
}
end
it 'configures specified values' do
is_expected.to contain_ironic_config('inventory/data_backend').with_value('database')
is_expected.to contain_ironic_config('inventory/swift_data_container').with_value('introspection_data_container')
end
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_configures 'ironic::inventory'
end
end
end