add class to handle drivers section

Change-Id: Id93129f3758706d3baa2099e4dec52c068c60c90
This commit is contained in:
Benedikt Trefzer 2024-08-07 11:12:20 +02:00
parent 4feba93488
commit 98798f23c4
3 changed files with 89 additions and 0 deletions

40
manifests/drivers.pp Normal file
View File

@ -0,0 +1,40 @@
# == Class: magnum::drivers
#
# Manages the magnum drivers section
#
# === Parameters:
#
# [*verify_ca*]
# (optional) Indicates whether the cluster nodes
# validate the Certificate Authority
# Defaults to $facts['os_service_default']
#
# [*openstack_ca_file*]
# (optional) Path to the OpenStack CA-bundle file to
# pass and install in all cluster nodes.
# Defaults to $facts['os_service_default']
#
# [*disabled_drivers*]
# (optional) Array of disabled driver entry points.
# Defaults to $facts['os_service_default']
#
# [*enabled_beta_drivers*]
# (optional) Array of beta drivers to enable.
# Defaults to $facts['os_service_default']
#
class magnum::drivers (
Variant[Boolean, Openstacklib::ServiceDefault] $verify_ca = $facts['os_service_default'],
Variant[Stdlib::Absolutepath, Openstacklib::ServiceDefault] $openstack_ca_file = $facts['os_service_default'],
Variant[Array, Openstacklib::ServiceDefault] $disabled_drivers = $facts['os_service_default'],
Variant[Array, Openstacklib::ServiceDefault] $enabled_beta_drivers = $facts['os_service_default'],
) {
include magnum::deps
magnum_config {
'drivers/verify_ca': value => $verify_ca;
'drivers/openstack_ca_file': value => $openstack_ca_file;
'drivers/disabled_drivers': value => join(any2array($disabled_drivers), ',');
'drivers/enabled_beta_drivers': value => join(any2array($enabled_beta_drivers), ',');
}
}

View File

@ -0,0 +1,4 @@
---
features:
- |
Add a class to handle the drivers section in config.

View File

@ -0,0 +1,45 @@
require 'spec_helper'
describe 'magnum::drivers' do
shared_examples 'magnum::drivers' do
context 'with default parameters' do
let :params do
{}
end
it { is_expected.to contain_magnum_config('drivers/verify_ca').with_value('<SERVICE DEFAULT>') }
it { is_expected.to contain_magnum_config('drivers/openstack_ca_file').with_value('<SERVICE DEFAULT>') }
it { is_expected.to contain_magnum_config('drivers/disabled_drivers').with_value('<SERVICE DEFAULT>') }
it { is_expected.to contain_magnum_config('drivers/enabled_beta_drivers').with_value('<SERVICE DEFAULT>') }
end
context 'with specific parameters' do
let :params do
{ :verify_ca => false,
:openstack_ca_file => '/tmp/cafile.pem',
:disabled_drivers => ['disabled_driver','anotherone'],
:enabled_beta_drivers => ['enabled_beta','enabled_beta2'],
}
end
it { is_expected.to contain_magnum_config('drivers/verify_ca').with_value(false) }
it { is_expected.to contain_magnum_config('drivers/openstack_ca_file').with_value('/tmp/cafile.pem') }
it { is_expected.to contain_magnum_config('drivers/disabled_drivers').with_value('disabled_driver,anotherone') }
it { is_expected.to contain_magnum_config('drivers/enabled_beta_drivers').with_value('enabled_beta,enabled_beta2') }
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 'magnum::drivers'
end
end
end