Added a class for managing quotas

Change-Id: I8663139fb88dd6f81a92e9680c8cfc632ac31b10
This commit is contained in:
Stephen Crawley 2020-10-27 15:19:52 +11:00 committed by Takashi Kajinami
parent 74720c21cf
commit 82cb1503be
3 changed files with 70 additions and 0 deletions

18
manifests/quota.pp Normal file
View File

@ -0,0 +1,18 @@
# == Class: magnum::quota
#
# Setup magnum quota.
#
# === Parameters
#
# [*max_clusters_per_project*]
# (optional) Number of clusters allowed per project.
# Defaults to $::os_service_default.
#
class magnum::quota (
$max_clusters_per_project = $::os_service_default
) {
magnum_config {
'quotas/max_clusters_per_project': value => $max_clusters_per_project;
}
}

View File

@ -0,0 +1,5 @@
---
features:
- Added global quota configuration parameter ``max_clusters_per_project``
to configure the ``quotas/max_clusters_per_project`` setting.
- Added new ``magnum::quota`` class for above and future magnum quotas.

View File

@ -0,0 +1,47 @@
require 'spec_helper'
describe 'magnum::quota' do
let :default_params do
{
:max_clusters_per_project => '<SERVICE DEFAULT>',
}
end
let :params do
{}
end
shared_examples 'magnum quota' do
let :p do
default_params.merge(params)
end
it 'contains default values' do
is_expected.to contain_magnum_config('quotas/max_clusters_per_project').with_value(p[:max_clusters_per_project])
end
context 'configure quota with parameters' do
before :each do
params.merge!({ :max_clusters_per_project => 10 })
end
it 'contains overrided values' do
is_expected.to contain_magnum_config('quotas/max_clusters_per_project').with_value(p[:max_clusters_per_project])
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_behaves_like 'magnum quota'
end
end
end