diff --git a/manifests/engine.pp b/manifests/engine.pp index c3aea1de..d7554bb1 100644 --- a/manifests/engine.pp +++ b/manifests/engine.pp @@ -30,6 +30,10 @@ # (optional) URL of the Heat cloudwatch server # Defaults to 'http://127.0.0.1:8003' # +# [*enable_stack_abandon*] +# (optional) Whether to allow the stack-abandon operation. +# Defaults to false +# # [*engine_life_check_timeout*] # (optional) RPC timeout (in seconds) for the engine liveness check that is # used for stack locking @@ -65,6 +69,7 @@ class heat::engine ( $deferred_auth_method = 'trusts', $trusts_delegated_roles = ['heat_stack_owner'], #DEPRECATED $configure_delegated_roles = true, #DEPRECATED + $enable_stack_abandon = false, ) { include ::heat::params @@ -115,5 +120,6 @@ class heat::engine ( 'DEFAULT/engine_life_check_timeout' : value => $engine_life_check_timeout; 'DEFAULT/trusts_delegated_roles' : value => $trusts_delegated_roles; 'DEFAULT/deferred_auth_method' : value => $deferred_auth_method; + 'DEFAULT/enable_stack_abandon' : value => $enable_stack_abandon; } } diff --git a/spec/classes/heat_engine_spec.rb b/spec/classes/heat_engine_spec.rb index b20255e7..4a129ea3 100644 --- a/spec/classes/heat_engine_spec.rb +++ b/spec/classes/heat_engine_spec.rb @@ -75,6 +75,27 @@ describe 'heat::engine' do end end + context 'stack-abandon enabled' do + before do + params.merge!( + :enable_stack_abandon => true, + ) + end + + it { is_expected.to contain_heat_config('DEFAULT/enable_stack_abandon').with_value(true) } + end + + context 'stack-abandon disabled' do + before do + params.merge!( + :enable_stack_abandon => false, + ) + end + + it { is_expected.to contain_heat_config('DEFAULT/enable_stack_abandon').with_value(false) } + end + + context 'with disabled service managing' do before do params.merge!({