From 98798f23c4c0b8b8c6e9db42f2d2658ea86d713c Mon Sep 17 00:00:00 2001 From: Benedikt Trefzer Date: Wed, 7 Aug 2024 11:12:20 +0200 Subject: [PATCH] add class to handle drivers section Change-Id: Id93129f3758706d3baa2099e4dec52c068c60c90 --- manifests/drivers.pp | 40 +++++++++++++++++ ..._for_drivers_section-b98614bc3ea67471.yaml | 4 ++ spec/classes/magnum_drivers_spec.rb | 45 +++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 manifests/drivers.pp create mode 100644 manifests/releasenotes/notes/add_class_for_drivers_section-b98614bc3ea67471.yaml create mode 100644 spec/classes/magnum_drivers_spec.rb diff --git a/manifests/drivers.pp b/manifests/drivers.pp new file mode 100644 index 0000000..12e27d9 --- /dev/null +++ b/manifests/drivers.pp @@ -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), ','); + } +} diff --git a/manifests/releasenotes/notes/add_class_for_drivers_section-b98614bc3ea67471.yaml b/manifests/releasenotes/notes/add_class_for_drivers_section-b98614bc3ea67471.yaml new file mode 100644 index 0000000..a20c6f4 --- /dev/null +++ b/manifests/releasenotes/notes/add_class_for_drivers_section-b98614bc3ea67471.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Add a class to handle the drivers section in config. diff --git a/spec/classes/magnum_drivers_spec.rb b/spec/classes/magnum_drivers_spec.rb new file mode 100644 index 0000000..12ee6f2 --- /dev/null +++ b/spec/classes/magnum_drivers_spec.rb @@ -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('') } + it { is_expected.to contain_magnum_config('drivers/openstack_ca_file').with_value('') } + it { is_expected.to contain_magnum_config('drivers/disabled_drivers').with_value('') } + it { is_expected.to contain_magnum_config('drivers/enabled_beta_drivers').with_value('') } + 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