Allow to configure the polling interval

This change allows the management of polling.yaml. This allow
to configure the polling interval.

Change-Id: I4e63d48e57700146ccfb6685cc1e3ad1c9e6102f
This commit is contained in:
Mehdi Abaakouk 2017-05-09 12:51:31 +02:00
parent 6431cca541
commit 36b2ecdd7c
4 changed files with 44 additions and 0 deletions

View File

@ -40,6 +40,14 @@
# * libvirt_metadata: get instances from libvirt metadata
# but without instance metadata (recommended for Gnocchi backend).
#
# [*manage_polling*]
# (Optional) Whether to manage polling.yaml
# Defaults to false
#
# [*polling_interval*]
# (Optional) Number of seconds between polling cycle
# Defaults to 600 seconds, used only if manage_polling is true.
#
class ceilometer::agent::polling (
$manage_service = true,
$enabled = true,
@ -49,6 +57,8 @@ class ceilometer::agent::polling (
$ipmi_namespace = true,
$coordination_url = undef,
$instance_discovery_method = $::os_service_default,
$manage_polling = false,
$polling_interval = 600,
) inherits ceilometer {
include ::ceilometer::deps
@ -127,4 +137,13 @@ class ceilometer::agent::polling (
'coordination/backend_url': value => $coordination_url
}
}
if $manage_polling {
file { 'polling':
ensure => present,
path => $::ceilometer::params::polling,
content => template('ceilometer/polling.yaml.erb'),
selinux_ignore_defaults => true,
}
}
}

View File

@ -11,6 +11,7 @@ class ceilometer::params {
$user = 'ceilometer'
$event_pipeline = '/etc/ceilometer/event_pipeline.yaml'
$pipeline = '/etc/ceilometer/pipeline.yaml'
$polling = '/etc/ceilometer/polling.yaml'
$client_package_name = 'python-ceilometerclient'
case $::osfamily {

View File

@ -117,6 +117,24 @@ describe 'ceilometer::agent::polling' do
end
end
context "with polling management enabled" do
before { params.merge!(
:manage_polling => true
) }
it { is_expected.to contain_file('polling').with(
'path' => '/etc/ceilometer/polling.yaml',
) }
end
context "with polling management disabled" do
before { params.merge!(
:manage_polling => false
) }
it { is_expected.not_to contain_file('polling') }
end
it 'configures central agent' do
is_expected.to contain_ceilometer_config('coordination/backend_url').with_value( params[:coordination_url] )
end

View File

@ -0,0 +1,6 @@
---
sources:
- name: all_pollsters
interval: <%= @polling_interval %>
meters:
- "*"