From 895c8b4037fe6cc498374886d7e182560d89957d Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Tue, 4 Aug 2020 08:07:25 +0900 Subject: [PATCH] Add support for quota parameters This patch introduces the new ``aodh::quota`` class, to support parameters which define quota amount in aodh. Change-Id: Ice37e64bddb0e128f3fc98de7b5fe35bd08e5f36 --- manifests/quota.pp | 32 +++++++++++++ .../notes/quota-2c8473e178a2f566.yaml | 5 ++ spec/classes/aodh_quota_spec.rb | 48 +++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 manifests/quota.pp create mode 100644 releasenotes/notes/quota-2c8473e178a2f566.yaml create mode 100644 spec/classes/aodh_quota_spec.rb diff --git a/manifests/quota.pp b/manifests/quota.pp new file mode 100644 index 00000000..2074b739 --- /dev/null +++ b/manifests/quota.pp @@ -0,0 +1,32 @@ +# The aodh::quota class helps configure quota settings +# +# == Params +# +# [*user_alarm_quota*] +# (optional) Maximum number of alarms defined for a user. +# Defaults to $:os_service_default. +# +# [*project_alarm_quota*] +# (optional) Maximum number of alarms defined for a project. +# Defaults to $:os_service_default. +# +# [*alarm_max_actions*] +# (optional) Maximum count of actions for each state of an alarm. +# Defaults to $:os_service_default. +# +class aodh::quota ( + $user_alarm_quota = $::os_service_default, + $project_alarm_quota = $::os_service_default, + $alarm_max_actions = $::os_service_default, +) { + + include aodh::deps + include aodh::params + + aodh_config { + 'api/user_alarm_quota': value => $user_alarm_quota; + 'api/project_alarm_quota': value => $project_alarm_quota; + 'api/alarm_max_actions': value => $alarm_max_actions; + } + +} diff --git a/releasenotes/notes/quota-2c8473e178a2f566.yaml b/releasenotes/notes/quota-2c8473e178a2f566.yaml new file mode 100644 index 00000000..1e146ef2 --- /dev/null +++ b/releasenotes/notes/quota-2c8473e178a2f566.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The ``aodh::quota`` class has been added to support parameters to define + quota. diff --git a/spec/classes/aodh_quota_spec.rb b/spec/classes/aodh_quota_spec.rb new file mode 100644 index 00000000..c50f9489 --- /dev/null +++ b/spec/classes/aodh_quota_spec.rb @@ -0,0 +1,48 @@ +require 'spec_helper' + +describe 'aodh::quota' do + + shared_examples_for 'aodh::quota' do + + context 'with default parameters' do + let :params do + {} + end + + it 'configures default values' do + is_expected.to contain_aodh_config('api/user_alarm_quota').with_value('') + is_expected.to contain_aodh_config('api/project_alarm_quota').with_value('') + is_expected.to contain_aodh_config('api/alarm_max_actions').with_value('') + end + end + + context 'when specific parameters' do + let :params do + { + :user_alarm_quota => 10, + :project_alarm_quota => 20, + :alarm_max_actions => 5, + } + end + + it 'configures specified values' do + is_expected.to contain_aodh_config('api/user_alarm_quota').with_value(10) + is_expected.to contain_aodh_config('api/project_alarm_quota').with_value(20) + is_expected.to contain_aodh_config('api/alarm_max_actions').with_value(5) + end + 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 'aodh::quota' + end + end + +end