inspector: Make password parameters required

... because these parameters are actually required for authentication.

Also, fix the inconsistent default values of auth_url parameter.

Change-Id: Ic2c0e5d51825b7baa5c11be5c8bbf842f60b2f22
This commit is contained in:
Takashi Kajinami 2023-12-18 01:59:34 +09:00
parent 588fe70ddf
commit 1cd6c98b05
6 changed files with 97 additions and 136 deletions

View File

@ -12,32 +12,31 @@
# #
# == Class: ironic::inspector::ironic # == Class: ironic::inspector::ironic
# #
# [*password*]
# (Required) The admin password for ironic-inspector to connect to ironic.
#
# [*auth_type*] # [*auth_type*]
# The authentication plugin to use when connecting to ironic. # (Optional) The authentication plugin to use when connecting to ironic.
# Defaults to 'password' # Defaults to 'password'
# #
# [*auth_url*] # [*auth_url*]
# The address of the keystone api endpoint. # (Optional) The address of the keystone api endpoint.
# Defaults to 'http://127.0.0.1:5000/v3' # Defaults to 'http://127.0.0.1:5000'
# #
# [*project_name*] # [*project_name*]
# The Keystone project name. # (Optional) The Keystone project name.
# Defaults to 'services' # Defaults to 'services'
# #
# [*username*] # [*username*]
# The admin username for ironic-inspector to connect to ironic. # (Optional) The admin username for ironic-inspector to connect to ironic.
# Defaults to 'ironic'. # Defaults to 'ironic'.
# #
# [*password*]
# The admin password for ironic-inspector to connect to ironic.
# Defaults to $facts['os_service_default']
#
# [*user_domain_name*] # [*user_domain_name*]
# The name of user's domain (required for Identity V3). # (Optional) The name of user's domain.
# Defaults to 'Default' # Defaults to 'Default'
# #
# [*project_domain_name*] # [*project_domain_name*]
# The name of project's domain (required for Identity V3). # (Optional) The name of project's domain.
# Defaults to 'Default' # Defaults to 'Default'
# #
# [*system_scope*] # [*system_scope*]
@ -45,28 +44,28 @@
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*region_name*] # [*region_name*]
# (optional) Region name for connecting to ironic in admin context # (Optional) Region name for connecting to ironic in admin context
# through the OpenStack Identity service. # through the OpenStack Identity service.
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*endpoint_override*] # [*endpoint_override*]
# The endpoint URL for requests for this client # (Optional) The endpoint URL for requests for this client
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*max_retries*] # [*max_retries*]
# (optional) Maximum number of retries in case of conflict error # (Optional) Maximum number of retries in case of conflict error
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*retry_interval*] # [*retry_interval*]
# (optional) Interval between retries in case of conflict error # (Optional) Interval between retries in case of conflict error
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
class ironic::inspector::ironic ( class ironic::inspector::ironic (
$password,
$auth_type = 'password', $auth_type = 'password',
$auth_url = 'http://127.0.0.1:5000/v3', $auth_url = 'http://127.0.0.1:5000',
$project_name = 'services', $project_name = 'services',
$username = 'ironic', $username = 'ironic',
$password = $facts['os_service_default'],
$user_domain_name = 'Default', $user_domain_name = 'Default',
$project_domain_name = 'Default', $project_domain_name = 'Default',
$system_scope = $facts['os_service_default'], $system_scope = $facts['os_service_default'],

View File

@ -12,32 +12,34 @@
# #
# == Class: ironic::inspector::service_catalog # == Class: ironic::inspector::service_catalog
# #
# [*password*]
# (Required) The admin password for ironic-inspector to connect to the
# service catalog.
#
# [*auth_type*] # [*auth_type*]
# The authentication plugin to use when connecting to the service catalog. # (Optional) The authentication plugin to use when connecting to the service
# catalog.
# Defaults to 'password' # Defaults to 'password'
# #
# [*auth_url*] # [*auth_url*]
# The address of the keystone api endpoint. # (Optional) The address of the keystone api endpoint.
# Defaults to $facts['os_service_default'] # Defaults to 'http://127.0.0.1:5000'
# #
# [*project_name*] # [*project_name*]
# The Keystone project name. # (Optional) The Keystone project name.
# Defaults to 'services' # Defaults to 'services'
# #
# [*username*] # [*username*]
# The admin username for ironic-inspector to connect to the service catalog. # (Optional) The admin username for ironic-inspector to connect to
# the service catalog.
# Defaults to 'ironic'. # Defaults to 'ironic'.
# #
# [*password*]
# The admin password for ironic-inspector to connect to the service catalog.
# Defaults to $facts['os_service_default']
#
# [*user_domain_name*] # [*user_domain_name*]
# The name of user's domain (required for Identity V3). # (Optional) The name of user's domain.
# Defaults to 'Default' # Defaults to 'Default'
# #
# [*project_domain_name*] # [*project_domain_name*]
# The name of project's domain (required for Identity V3). # (Optional) The name of project's domain.
# Defaults to 'Default' # Defaults to 'Default'
# #
# [*system_scope*] # [*system_scope*]
@ -45,20 +47,20 @@
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*region_name*] # [*region_name*]
# (optional) Region name for accessing Keystone catalog # (Optional) Region name for accessing Keystone catalog
# through the OpenStack Identity service. # through the OpenStack Identity service.
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*endpoint_override*] # [*endpoint_override*]
# The endpoint URL for requests for this client # (Optional) The endpoint URL for requests for this client
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
class ironic::inspector::service_catalog ( class ironic::inspector::service_catalog (
$password,
$auth_type = 'password', $auth_type = 'password',
$auth_url = $facts['os_service_default'], $auth_url = 'http://127.0.0.1:5000',
$project_name = 'services', $project_name = 'services',
$username = 'ironic', $username = 'ironic',
$password = $facts['os_service_default'],
$user_domain_name = 'Default', $user_domain_name = 'Default',
$project_domain_name = 'Default', $project_domain_name = 'Default',
$system_scope = $facts['os_service_default'], $system_scope = $facts['os_service_default'],

View File

@ -12,32 +12,32 @@
# #
# == Class: ironic::inspector::swift # == Class: ironic::inspector::swift
# #
# [*password*]
# (Required) The admin password for ironic-inspector to connect to swift.
# Defaults to $facts['os_service_default']
#
# [*auth_type*] # [*auth_type*]
# The authentication plugin to use when connecting to swift. # (Optional) The authentication plugin to use when connecting to swift.
# Defaults to 'password' # Defaults to 'password'
# #
# [*auth_url*] # [*auth_url*]
# The address of the keystone api endpoint. # (Optional) The address of the keystone api endpoint.
# Defaults to $facts['os_service_default'] # Defaults to 'http://127.0.0.1:5000'
# #
# [*project_name*] # [*project_name*]
# The Keystone project name. # (Optional) The Keystone project name.
# Defaults to 'services' # Defaults to 'services'
# #
# [*username*] # [*username*]
# The admin username for ironic-inspector to connect to swift. # (Optional) The admin username for ironic-inspector to connect to swift.
# Defaults to 'ironic'. # Defaults to 'ironic'.
# #
# [*password*]
# The admin password for ironic-inspector to connect to swift.
# Defaults to $facts['os_service_default']
#
# [*user_domain_name*] # [*user_domain_name*]
# The name of user's domain (required for Identity V3). # (Optional) The name of user's domain.
# Defaults to 'Default' # Defaults to 'Default'
# #
# [*project_domain_name*] # [*project_domain_name*]
# The name of project's domain (required for Identity V3). # (Optional) The name of project's domain.
# Defaults to 'Default' # Defaults to 'Default'
# #
# [*system_scope*] # [*system_scope*]
@ -45,30 +45,30 @@
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*region_name*] # [*region_name*]
# (optional) Region name for connecting to swift in admin context # (Optional) Region name for connecting to swift in admin context
# through the OpenStack Identity service. # through the OpenStack Identity service.
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*endpoint_override*] # [*endpoint_override*]
# The endpoint URL for requests for this client # (Optional) The endpoint URL for requests for this client
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*container*] # [*container*]
# (optional) Default Swift container name to use when creating objects. # (Optional) Default Swift container name to use when creating objects.
# String value # String value
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
# [*delete_after*] # [*delete_after*]
# (optional) Number of seconds that the Swift object will last before being # (Optional) Number of seconds that the Swift object will last before being
# deleted. # deleted.
# Defaults to $facts['os_service_default'] # Defaults to $facts['os_service_default']
# #
class ironic::inspector::swift ( class ironic::inspector::swift (
$password,
$auth_type = 'password', $auth_type = 'password',
$auth_url = $facts['os_service_default'], $auth_url = 'http://127.0.0.1:5000',
$project_name = 'services', $project_name = 'services',
$username = 'ironic', $username = 'ironic',
$password = $facts['os_service_default'],
$user_domain_name = 'Default', $user_domain_name = 'Default',
$project_domain_name = 'Default', $project_domain_name = 'Default',
$system_scope = $facts['os_service_default'], $system_scope = $facts['os_service_default'],

View File

@ -17,29 +17,17 @@ require 'spec_helper'
describe 'ironic::inspector::ironic' do describe 'ironic::inspector::ironic' do
let :default_params do
{ :auth_type => 'password',
:auth_url => 'http://127.0.0.1:5000/v3',
:project_name => 'services',
:username => 'ironic',
}
end
let :params do let :params do
{} { :password => 'secret' }
end end
shared_examples_for 'ironic-inspector ironic configuration' do shared_examples_for 'ironic-inspector ironic configuration' do
let :p do
default_params.merge(params)
end
it 'configures ironic.conf' do it 'configures ironic.conf' do
is_expected.to contain_ironic_inspector_config('ironic/auth_type').with_value(p[:auth_type]) is_expected.to contain_ironic_inspector_config('ironic/auth_type').with_value('password')
is_expected.to contain_ironic_inspector_config('ironic/auth_url').with_value(p[:auth_url]) is_expected.to contain_ironic_inspector_config('ironic/auth_url').with_value('http://127.0.0.1:5000')
is_expected.to contain_ironic_inspector_config('ironic/project_name').with_value(p[:project_name]) is_expected.to contain_ironic_inspector_config('ironic/project_name').with_value('services')
is_expected.to contain_ironic_inspector_config('ironic/username').with_value(p[:username]) is_expected.to contain_ironic_inspector_config('ironic/username').with_value('ironic')
is_expected.to contain_ironic_inspector_config('ironic/password').with_value('<SERVICE DEFAULT>').with_secret(true) is_expected.to contain_ironic_inspector_config('ironic/password').with_value('secret').with_secret(true)
is_expected.to contain_ironic_inspector_config('ironic/user_domain_name').with_value('Default') is_expected.to contain_ironic_inspector_config('ironic/user_domain_name').with_value('Default')
is_expected.to contain_ironic_inspector_config('ironic/project_domain_name').with_value('Default') is_expected.to contain_ironic_inspector_config('ironic/project_domain_name').with_value('Default')
is_expected.to contain_ironic_inspector_config('ironic/system_scope').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('ironic/system_scope').with_value('<SERVICE DEFAULT>')
@ -56,7 +44,6 @@ describe 'ironic::inspector::ironic' do
:auth_url => 'http://example.com', :auth_url => 'http://example.com',
:project_name => 'project1', :project_name => 'project1',
:username => 'admin', :username => 'admin',
:password => 'pa$$w0rd',
:user_domain_name => 'NonDefault', :user_domain_name => 'NonDefault',
:project_domain_name => 'NonDefault', :project_domain_name => 'NonDefault',
:region_name => 'regionTwo', :region_name => 'regionTwo',
@ -67,18 +54,17 @@ describe 'ironic::inspector::ironic' do
end end
it 'should replace default parameter with new value' do it 'should replace default parameter with new value' do
is_expected.to contain_ironic_inspector_config('ironic/auth_type').with_value(p[:auth_type]) is_expected.to contain_ironic_inspector_config('ironic/auth_type').with_value(params[:auth_type])
is_expected.to contain_ironic_inspector_config('ironic/auth_url').with_value(p[:auth_url]) is_expected.to contain_ironic_inspector_config('ironic/auth_url').with_value(params[:auth_url])
is_expected.to contain_ironic_inspector_config('ironic/project_name').with_value(p[:project_name]) is_expected.to contain_ironic_inspector_config('ironic/project_name').with_value(params[:project_name])
is_expected.to contain_ironic_inspector_config('ironic/username').with_value(p[:username]) is_expected.to contain_ironic_inspector_config('ironic/username').with_value(params[:username])
is_expected.to contain_ironic_inspector_config('ironic/password').with_value(p[:password]).with_secret(true) is_expected.to contain_ironic_inspector_config('ironic/user_domain_name').with_value(params[:user_domain_name])
is_expected.to contain_ironic_inspector_config('ironic/user_domain_name').with_value(p[:user_domain_name]) is_expected.to contain_ironic_inspector_config('ironic/project_domain_name').with_value(params[:project_domain_name])
is_expected.to contain_ironic_inspector_config('ironic/project_domain_name').with_value(p[:project_domain_name])
is_expected.to contain_ironic_inspector_config('ironic/system_scope').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('ironic/system_scope').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_inspector_config('ironic/region_name').with_value(p[:region_name]) is_expected.to contain_ironic_inspector_config('ironic/region_name').with_value(params[:region_name])
is_expected.to contain_ironic_inspector_config('ironic/endpoint_override').with_value(p[:endpoint_override]) is_expected.to contain_ironic_inspector_config('ironic/endpoint_override').with_value(params[:endpoint_override])
is_expected.to contain_ironic_inspector_config('ironic/max_retries').with_value(p[:max_retries]) is_expected.to contain_ironic_inspector_config('ironic/max_retries').with_value(params[:max_retries])
is_expected.to contain_ironic_inspector_config('ironic/retry_interval').with_value(p[:retry_interval]) is_expected.to contain_ironic_inspector_config('ironic/retry_interval').with_value(params[:retry_interval])
end end
end end

View File

@ -17,28 +17,17 @@ require 'spec_helper'
describe 'ironic::inspector::service_catalog' do describe 'ironic::inspector::service_catalog' do
let :default_params do
{ :auth_type => 'password',
:project_name => 'services',
:username => 'ironic',
}
end
let :params do let :params do
{} { :password => 'secret' }
end end
shared_examples_for 'ironic-inspector service catalog access configuration' do shared_examples_for 'ironic-inspector service catalog access configuration' do
let :p do
default_params.merge(params)
end
it 'configures ironic-inspector.conf' do it 'configures ironic-inspector.conf' do
is_expected.to contain_ironic_inspector_config('service_catalog/auth_type').with_value(p[:auth_type]) is_expected.to contain_ironic_inspector_config('service_catalog/auth_type').with_value('password')
is_expected.to contain_ironic_inspector_config('service_catalog/auth_url').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('service_catalog/auth_url').with_value('http://127.0.0.1:5000')
is_expected.to contain_ironic_inspector_config('service_catalog/project_name').with_value(p[:project_name]) is_expected.to contain_ironic_inspector_config('service_catalog/project_name').with_value('services')
is_expected.to contain_ironic_inspector_config('service_catalog/username').with_value(p[:username]) is_expected.to contain_ironic_inspector_config('service_catalog/username').with_value('ironic')
is_expected.to contain_ironic_inspector_config('service_catalog/password').with_value('<SERVICE DEFAULT>').with_secret(true) is_expected.to contain_ironic_inspector_config('service_catalog/password').with_value('secret').with_secret(true)
is_expected.to contain_ironic_inspector_config('service_catalog/user_domain_name').with_value('Default') is_expected.to contain_ironic_inspector_config('service_catalog/user_domain_name').with_value('Default')
is_expected.to contain_ironic_inspector_config('service_catalog/project_domain_name').with_value('Default') is_expected.to contain_ironic_inspector_config('service_catalog/project_domain_name').with_value('Default')
is_expected.to contain_ironic_inspector_config('service_catalog/system_scope').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('service_catalog/system_scope').with_value('<SERVICE DEFAULT>')
@ -53,7 +42,6 @@ describe 'ironic::inspector::service_catalog' do
:auth_url => 'http://example.com', :auth_url => 'http://example.com',
:project_name => 'project1', :project_name => 'project1',
:username => 'admin', :username => 'admin',
:password => 'pa$$w0rd',
:user_domain_name => 'NonDefault', :user_domain_name => 'NonDefault',
:project_domain_name => 'NonDefault', :project_domain_name => 'NonDefault',
:region_name => 'regionTwo', :region_name => 'regionTwo',
@ -62,16 +50,15 @@ describe 'ironic::inspector::service_catalog' do
end end
it 'should replace default parameter with new value' do it 'should replace default parameter with new value' do
is_expected.to contain_ironic_inspector_config('service_catalog/auth_type').with_value(p[:auth_type]) is_expected.to contain_ironic_inspector_config('service_catalog/auth_type').with_value(params[:auth_type])
is_expected.to contain_ironic_inspector_config('service_catalog/auth_url').with_value(p[:auth_url]) is_expected.to contain_ironic_inspector_config('service_catalog/auth_url').with_value(params[:auth_url])
is_expected.to contain_ironic_inspector_config('service_catalog/project_name').with_value(p[:project_name]) is_expected.to contain_ironic_inspector_config('service_catalog/project_name').with_value(params[:project_name])
is_expected.to contain_ironic_inspector_config('service_catalog/username').with_value(p[:username]) is_expected.to contain_ironic_inspector_config('service_catalog/username').with_value(params[:username])
is_expected.to contain_ironic_inspector_config('service_catalog/password').with_value(p[:password]).with_secret(true) is_expected.to contain_ironic_inspector_config('service_catalog/user_domain_name').with_value(params[:user_domain_name])
is_expected.to contain_ironic_inspector_config('service_catalog/user_domain_name').with_value(p[:user_domain_name]) is_expected.to contain_ironic_inspector_config('service_catalog/project_domain_name').with_value(params[:project_domain_name])
is_expected.to contain_ironic_inspector_config('service_catalog/project_domain_name').with_value(p[:project_domain_name])
is_expected.to contain_ironic_inspector_config('service_catalog/system_scope').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('service_catalog/system_scope').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_inspector_config('service_catalog/region_name').with_value(p[:region_name]) is_expected.to contain_ironic_inspector_config('service_catalog/region_name').with_value(params[:region_name])
is_expected.to contain_ironic_inspector_config('service_catalog/endpoint_override').with_value(p[:endpoint_override]) is_expected.to contain_ironic_inspector_config('service_catalog/endpoint_override').with_value(params[:endpoint_override])
end end
end end

View File

@ -17,28 +17,17 @@ require 'spec_helper'
describe 'ironic::inspector::swift' do describe 'ironic::inspector::swift' do
let :default_params do
{ :auth_type => 'password',
:project_name => 'services',
:username => 'ironic',
}
end
let :params do let :params do
{} { :password => 'secret' }
end end
shared_examples_for 'ironic-inspector swift configuration' do shared_examples_for 'ironic-inspector swift configuration' do
let :p do
default_params.merge(params)
end
it 'configures ironic-inspector.conf' do it 'configures ironic-inspector.conf' do
is_expected.to contain_ironic_inspector_config('swift/auth_type').with_value(p[:auth_type]) is_expected.to contain_ironic_inspector_config('swift/auth_type').with_value('password')
is_expected.to contain_ironic_inspector_config('swift/auth_url').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('swift/auth_url').with_value('http://127.0.0.1:5000')
is_expected.to contain_ironic_inspector_config('swift/project_name').with_value(p[:project_name]) is_expected.to contain_ironic_inspector_config('swift/project_name').with_value('services')
is_expected.to contain_ironic_inspector_config('swift/username').with_value(p[:username]) is_expected.to contain_ironic_inspector_config('swift/username').with_value('ironic')
is_expected.to contain_ironic_inspector_config('swift/password').with_value('<SERVICE DEFAULT>').with_secret(true) is_expected.to contain_ironic_inspector_config('swift/password').with_value('secret').with_secret(true)
is_expected.to contain_ironic_inspector_config('swift/user_domain_name').with_value('Default') is_expected.to contain_ironic_inspector_config('swift/user_domain_name').with_value('Default')
is_expected.to contain_ironic_inspector_config('swift/project_domain_name').with_value('Default') is_expected.to contain_ironic_inspector_config('swift/project_domain_name').with_value('Default')
is_expected.to contain_ironic_inspector_config('swift/region_name').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('swift/region_name').with_value('<SERVICE DEFAULT>')
@ -55,7 +44,6 @@ describe 'ironic::inspector::swift' do
:auth_url => 'http://example.com', :auth_url => 'http://example.com',
:project_name => 'project1', :project_name => 'project1',
:username => 'admin', :username => 'admin',
:password => 'pa$$w0rd',
:user_domain_name => 'NonDefault', :user_domain_name => 'NonDefault',
:project_domain_name => 'NonDefault', :project_domain_name => 'NonDefault',
:region_name => 'regionTwo', :region_name => 'regionTwo',
@ -66,17 +54,16 @@ describe 'ironic::inspector::swift' do
end end
it 'should replace default parameter with new value' do it 'should replace default parameter with new value' do
is_expected.to contain_ironic_inspector_config('swift/auth_type').with_value(p[:auth_type]) is_expected.to contain_ironic_inspector_config('swift/auth_type').with_value(params[:auth_type])
is_expected.to contain_ironic_inspector_config('swift/auth_url').with_value(p[:auth_url]) is_expected.to contain_ironic_inspector_config('swift/auth_url').with_value(params[:auth_url])
is_expected.to contain_ironic_inspector_config('swift/project_name').with_value(p[:project_name]) is_expected.to contain_ironic_inspector_config('swift/project_name').with_value(params[:project_name])
is_expected.to contain_ironic_inspector_config('swift/username').with_value(p[:username]) is_expected.to contain_ironic_inspector_config('swift/username').with_value(params[:username])
is_expected.to contain_ironic_inspector_config('swift/password').with_value(p[:password]).with_secret(true) is_expected.to contain_ironic_inspector_config('swift/user_domain_name').with_value(params[:user_domain_name])
is_expected.to contain_ironic_inspector_config('swift/user_domain_name').with_value(p[:user_domain_name]) is_expected.to contain_ironic_inspector_config('swift/project_domain_name').with_value(params[:project_domain_name])
is_expected.to contain_ironic_inspector_config('swift/project_domain_name').with_value(p[:project_domain_name]) is_expected.to contain_ironic_inspector_config('swift/region_name').with_value(params[:region_name])
is_expected.to contain_ironic_inspector_config('swift/region_name').with_value(p[:region_name])
is_expected.to contain_ironic_inspector_config('swift/system_scope').with_value('<SERVICE DEFAULT>') is_expected.to contain_ironic_inspector_config('swift/system_scope').with_value('<SERVICE DEFAULT>')
is_expected.to contain_ironic_inspector_config('swift/endpoint_override').with_value(p[:endpoint_override]) is_expected.to contain_ironic_inspector_config('swift/endpoint_override').with_value(params[:endpoint_override])
is_expected.to contain_ironic_inspector_config('swift/container').with_value(p[:container]) is_expected.to contain_ironic_inspector_config('swift/container').with_value(params[:container])
is_expected.to contain_ironic_inspector_config('swift/delete_after').with_value(0) is_expected.to contain_ironic_inspector_config('swift/delete_after').with_value(0)
end end
end end