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
This commit is contained in:
Takashi Kajinami 2020-08-04 08:07:25 +09:00
parent e7c0c5042f
commit 895c8b4037
3 changed files with 85 additions and 0 deletions

32
manifests/quota.pp Normal file
View File

@ -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;
}
}

View File

@ -0,0 +1,5 @@
---
features:
- |
The ``aodh::quota`` class has been added to support parameters to define
quota.

View File

@ -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('<SERVICE DEFAULT>')
is_expected.to contain_aodh_config('api/project_alarm_quota').with_value('<SERVICE DEFAULT>')
is_expected.to contain_aodh_config('api/alarm_max_actions').with_value('<SERVICE DEFAULT>')
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