From 2d7afa14bfe086c38f04929d011f3541499ab31c Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Fri, 12 Nov 2021 13:55:15 +0900 Subject: [PATCH] Add support for more [ironic] parameters Change-Id: Iaf4d6d892181d7e52cda1a543a36c5327db5b6aa --- manifests/ironic/common.pp | 18 ++++++++++++++++++ .../ironic-more-opts-820a0c30817042b0.yaml | 9 +++++++++ spec/classes/nova_ironic_common_spec.rb | 11 +++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/ironic-more-opts-820a0c30817042b0.yaml diff --git a/manifests/ironic/common.pp b/manifests/ironic/common.pp index 323e78cf7..5d3020724 100644 --- a/manifests/ironic/common.pp +++ b/manifests/ironic/common.pp @@ -42,6 +42,18 @@ # (Optional) Name of domain for $project_domain_name # Defaults to 'Default' # +# [*service_type*] +# (optional) The default service_type for endpoint URL discovery. +# Defaults to $::os_service_default +# +# [*valid_interfaces*] +# (Optional) The endpoint type to lookup when talking to Ironic. +# Defaults to $::os_service_default +# +# [*timeout*] +# (Optional) Timeout value for connecting to ironic in seconds. +# Defaults to $::os_service_default +# # DEPRECATED PARAMETERS # # [*api_endpoint*] @@ -60,6 +72,9 @@ class nova::ironic::common ( $api_retry_interval = $::os_service_default, $user_domain_name = 'Default', $project_domain_name = 'Default', + $service_type = $::os_service_default, + $valid_interfaces = $::os_service_default, + $timeout = $::os_service_default, # DEPRECATED PARAMETERS $api_endpoint = undef, ) { @@ -83,6 +98,9 @@ Use nova::ironic::common::endpoint_override instead.') 'ironic/api_retry_interval': value => $api_retry_interval; 'ironic/user_domain_name': value => $user_domain_name; 'ironic/project_domain_name': value => $project_domain_name; + 'ironic/service_type': value => $service_type; + 'ironic/valid_interfaces': value => join(any2array($valid_interfaces), ','); + 'ironic/timeout': value => $timeout; } } diff --git a/releasenotes/notes/ironic-more-opts-820a0c30817042b0.yaml b/releasenotes/notes/ironic-more-opts-820a0c30817042b0.yaml new file mode 100644 index 000000000..78dfc18c1 --- /dev/null +++ b/releasenotes/notes/ironic-more-opts-820a0c30817042b0.yaml @@ -0,0 +1,9 @@ +--- +features: + - | + The following parameters have been added to the ``nova::ironic::common`` + class. + + - ``service_type`` + - ``valid_intrerfaces`` + - ``timeout`` diff --git a/spec/classes/nova_ironic_common_spec.rb b/spec/classes/nova_ironic_common_spec.rb index 23ec80070..02e3cb6df 100644 --- a/spec/classes/nova_ironic_common_spec.rb +++ b/spec/classes/nova_ironic_common_spec.rb @@ -17,7 +17,9 @@ describe 'nova::ironic::common' do is_expected.to contain_nova_config('ironic/api_retry_interval').with('value' => '') is_expected.to contain_nova_config('ironic/user_domain_name').with_value('Default') is_expected.to contain_nova_config('ironic/project_domain_name').with_value('Default') - + is_expected.to contain_nova_config('ironic/service_type').with_value('') + is_expected.to contain_nova_config('ironic/timeout').with_value('') + is_expected.to contain_nova_config('ironic/valid_interfaces').with_value('') end end @@ -34,6 +36,9 @@ describe 'nova::ironic::common' do :api_retry_interval => 2, :user_domain_name => 'custom_domain', :project_domain_name => 'custom_domain', + :service_type => 'baremetal', + :timeout => 30, + :valid_interfaces => 'internal', } end @@ -49,7 +54,9 @@ describe 'nova::ironic::common' do is_expected.to contain_nova_config('ironic/api_retry_interval').with('value' => '2') is_expected.to contain_nova_config('ironic/user_domain_name').with('value' => 'custom_domain') is_expected.to contain_nova_config('ironic/project_domain_name').with('value' => 'custom_domain') - + is_expected.to contain_nova_config('ironic/service_type').with_value('baremetal') + is_expected.to contain_nova_config('ironic/timeout').with_value(30) + is_expected.to contain_nova_config('ironic/valid_interfaces').with_value('internal') end end end