Merge "Add support for [collector] options"

This commit is contained in:
Zuul
2025-09-02 22:45:54 +00:00
committed by Gerrit Code Review
3 changed files with 81 additions and 0 deletions

31
manifests/collector.pp Normal file
View File

@@ -0,0 +1,31 @@
# == Class: watcher::collector
#
# Configure the collector options
#
# === Parameters
#
# [*collector_plugins*]
# (Optional) The cluster data model plugin names
# Defaults to $facts['os_service_default']
#
# [*api_query_retries*]
# (Optional) Number of retries before giving up on external service queries.
# Defaults to $facts['os_service_default']
#
# [*api_query_interval*]
# (Optional) How many seconds Watcher should wait to do query again.
# Defaults to $facts['os_service_default']
#
class watcher::collector (
$collector_plugins = $facts['os_service_default'],
$api_query_retries = $facts['os_service_default'],
$api_query_interval = $facts['os_service_default'],
) {
include watcher::deps
watcher_config {
'collector/collector_plugins': value => join(any2array($collector_plugins), ',');
'collector/api_query_retries': value => $api_query_retries;
'collector/api_query_interval': value => $api_query_interval;
}
}

View File

@@ -0,0 +1,4 @@
---
features:
- |
The new ``watcher::collector`` class has been added.

View File

@@ -0,0 +1,46 @@
require 'spec_helper'
describe 'watcher::collector' do
shared_examples 'watcher::collector' do
context 'with defaults' do
let :params do
{}
end
it 'should set the defaults' do
should contain_watcher_config('collector/collector_plugins').with_value('<SERVICE DEFAULT>')
should contain_watcher_config('collector/api_query_retries').with_value('<SERVICE DEFAULT>')
should contain_watcher_config('collector/api_query_interval').with_value('<SERVICE DEFAULT>')
end
end
context 'with parameters overridden' do
let :params do
{
:collector_plugins => ['compute', 'storage'],
:api_query_retries => 10,
:api_query_interval => 1,
}
end
it 'should set the overridden values' do
should contain_watcher_config('collector/collector_plugins').with_value('compute,storage')
should contain_watcher_config('collector/api_query_retries').with_value(10)
should contain_watcher_config('collector/api_query_interval').with_value(1)
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 'watcher::collector'
end
end
end