Skip to content

Commit

Permalink
Add udp_address/udp_port parameters for collector.
Browse files Browse the repository at this point in the history
Change-Id: Ib776ecda9185caca9ea5c95525f0ffe4487b6a56
Closes-Bug: rhbz/1185652
  • Loading branch information
sathlan committed Apr 3, 2015
1 parent b2e352b commit 2405adf
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
22 changes: 22 additions & 0 deletions manifests/collector.pp
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,38 @@
# (optional) ensure state for package.
# Defaults to 'present'
#
# [*udp_address*]
# (optional) the ceilometer collector udp bind address.
# Set it empty to disable the collector listener.
# Defaults to '0.0.0.0'
#
# [*udp_port*]
# (optional) the ceilometer collector udp bind port.
# Defaults to '4952'
#
class ceilometer::collector (
$manage_service = true,
$enabled = true,
$package_ensure = 'present',
$udp_address = '0.0.0.0',
$udp_port = '4952',
) {

include ::ceilometer::params

Ceilometer_config<||> ~> Service['ceilometer-collector']

# We accept udp_address to be set to empty instead of the usual undef to stay
# close to the "strange" upstream interface.
if (is_ip_address($udp_address) != true and $udp_address != '' ){
fail("${udp_address} is not a valid ip and is not empty")
}

ceilometer_config {
'collector/udp_address' : value => $udp_address;
'collector/udp_port' : value => $udp_port;
}

Package[$::ceilometer::params::collector_package_name] -> Service['ceilometer-collector']
ensure_resource( 'package', [$::ceilometer::params::collector_package_name],
{ ensure => $package_ensure }
Expand Down
39 changes: 38 additions & 1 deletion spec/classes/ceilometer_collector_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,51 @@

shared_examples_for 'ceilometer-collector' do

context 'when invalid ip is passed' do
let :params do
{ :udp_address => '300.0.0.0' }
end
it 'should fail' do
is_expected.to raise_error(Puppet::Error, /is not a valid ip and is not empty/)
end
end

context 'when a valid ipv6 is passed' do
before do
pre_condition << "class { 'ceilometer::db': }"
end
let :params do
{ :udp_address => '::1' }
end
it 'shouldn\'t fail' do
is_expected.to_not raise_error
end
end

context 'when an empty string passed' do
before do
pre_condition << "class { 'ceilometer::db': }"
end
let :params do
{ :udp_address => '' }
end
it 'should disable the listener' do
is_expected.to contain_ceilometer_config('collector/udp_address').with_value( '' )
end
end

context 'when enabled' do
before do
pre_condition << "class { 'ceilometer::db': }"
end

it { is_expected.to contain_class('ceilometer::params') }

it 'configures ceilometer-collector server' do
is_expected.to contain_ceilometer_config('collector/udp_address').with_value( '0.0.0.0' )
is_expected.to contain_ceilometer_config('collector/udp_port').with_value( '4952' )
end

it 'installs ceilometer-collector package' do
is_expected.to contain_package(platform_params[:collector_package_name]).with(
:ensure => 'present'
Expand Down Expand Up @@ -44,7 +82,6 @@

# Catalog compilation does not crash for lack of ceilometer::db
it { is_expected.to compile }

it 'configures ceilometer-collector service' do
is_expected.to contain_service('ceilometer-collector').with(
:ensure => 'stopped',
Expand Down

0 comments on commit 2405adf

Please sign in to comment.