Avoid direct reference of hieradata

This patch introduces the following two parameters into
tripleo::profile::base::nova::api class.
 - nova_enable_db_purge
 - nova_enable_db_archive

This allows us to use class parameters to change behavior of the class,
instead of the special hieradata implemented in its logic.

Change-Id: Id054d4cceb42469382e24af91e65786da812d8ab
This commit is contained in:
Takashi Kajinami 2020-08-14 08:49:37 +09:00
parent ab38478bd8
commit f246b0a938
2 changed files with 47 additions and 2 deletions

View File

@ -51,6 +51,14 @@
# for more details.
# Defaults to hiera('step')
#
# [*nova_enable_db_archive*]
# (Optional) Wheter to enable db archiving
# Defaults to hiera('nova_enable_db_archive', true)
#
# [*nova_enable_db_purge*]
# (Optional) Wheter to enable db purging
# Defaults to hiera('nova_enable_db_purge', true)
#
# [*metadata_tls_proxy_bind_ip*]
# DEPRECATED: IP on which the TLS proxy will listen on. Required only if
# enable_internal_tls is set.
@ -73,6 +81,8 @@ class tripleo::profile::base::nova::api (
$nova_api_network = hiera('nova_api_network', undef),
$nova_metadata_network = hiera('nova_metadata_network', undef),
$step = Integer(hiera('step')),
$nova_enable_db_archive = hiera('nova_enable_db_archive', true),
$nova_enable_db_purge = hiera('nova_enable_db_purge', true),
$metadata_tls_proxy_bind_ip = undef,
$metadata_tls_proxy_fqdn = undef,
$metadata_tls_proxy_port = 8775,
@ -122,9 +132,9 @@ class tripleo::profile::base::nova::api (
}
if $step >= 5 {
if hiera('nova_enable_db_archive', true) {
if $nova_enable_db_archive {
include nova::cron::archive_deleted_rows
if hiera('nova_enable_db_purge', true) {
if $nova_enable_db_purge {
include nova::cron::purge_shadow_tables
}
}

View File

@ -47,6 +47,8 @@ eos
is_expected.to_not contain_class('nova::vendordata')
is_expected.to_not contain_class('nova::network::neutron')
is_expected.to_not contain_class('nova::wsgi::apache_api')
is_expected.to_not contain_class('nova::cron::archive_deleted_rows')
is_expected.to_not contain_class('nova::cron::purge_shadow_tables')
}
end
@ -69,6 +71,8 @@ eos
is_expected.to contain_class('nova::vendordata')
is_expected.to contain_class('nova::network::neutron')
is_expected.to contain_class('nova::wsgi::apache_api')
is_expected.to_not contain_class('nova::cron::archive_deleted_rows')
is_expected.to_not contain_class('nova::cron::purge_shadow_tables')
}
end
@ -89,6 +93,8 @@ eos
is_expected.to_not contain_class('nova::vendordata')
is_expected.to_not contain_class('nova::network::neutron')
is_expected.to_not contain_class('nova::wsgi::apache_api')
is_expected.to_not contain_class('nova::cron::archive_deleted_rows')
is_expected.to_not contain_class('nova::cron::purge_shadow_tables')
}
end
@ -111,6 +117,8 @@ eos
is_expected.to contain_class('nova::vendordata')
is_expected.to contain_class('nova::network::neutron')
is_expected.to contain_class('nova::wsgi::apache_api')
is_expected.to_not contain_class('nova::cron::archive_deleted_rows')
is_expected.to_not contain_class('nova::cron::purge_shadow_tables')
}
end
@ -122,6 +130,33 @@ eos
it {
is_expected.to contain_class('nova::cron::archive_deleted_rows')
is_expected.to contain_class('nova::cron::purge_shadow_tables')
}
end
context 'with step 5 and db_purge disabled' do
let(:params) { {
:step => 5,
:bootstrap_node => 'other.example.com',
:nova_enable_db_purge => false,
} }
it {
is_expected.to contain_class('nova::cron::archive_deleted_rows')
is_expected.to_not contain_class('nova::cron::purge_shadow_tables')
}
end
context 'with step 5 and db archive disabled' do
let(:params) { {
:step => 5,
:bootstrap_node => 'other.example.com',
:nova_enable_db_archive => false,
} }
it {
is_expected.to_not contain_class('nova::cron::archive_deleted_rows')
is_expected.to_not contain_class('nova::cron::purge_shadow_tables')
}
end