aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPradeep Kilambi <pkilambi@redhat.com>2017-02-07 15:47:49 -0500
committerPradeep Kilambi <pkilambi@redhat.com>2017-02-25 12:19:31 -0500
commit7dddf041c5b7940fa974164c157b7f70840a1e9c (patch)
tree12e47a2e39a6e102bcddff770cb605a155e745ac
parent9a8ca3a1dae82d2203037d59584c2f4276821fcd (diff)
Add ceilometer polling agent profile
Ceilometer central, compute and ipmi agent classes are deprecated. Instead we should be using polling agent with relevant namespace. Closes-bug: #1662685 Change-Id: I1ee50124bf8936e12414f984e1bcd4545d92e953
-rw-r--r--manifests/profile/base/ceilometer/agent/polling.pp64
-rw-r--r--releasenotes/notes/add-ceilo-polling-agent-53fab550a09a6196.yaml6
-rw-r--r--spec/classes/tripleo_profile_base_ceilometer_agent_polling_spec.rb72
3 files changed, 142 insertions, 0 deletions
diff --git a/manifests/profile/base/ceilometer/agent/polling.pp b/manifests/profile/base/ceilometer/agent/polling.pp
new file mode 100644
index 0000000..3706c2e
--- /dev/null
+++ b/manifests/profile/base/ceilometer/agent/polling.pp
@@ -0,0 +1,64 @@
+# Copyright 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+# == Class: tripleo::profile::base::ceilometer::agent::polling
+#
+# Ceilometer polling Agent profile for tripleo
+#
+# === Parameters
+#
+# [*central_namespace*]
+# (Optional) Use central namespace for polling agent.
+# Defaults to false.
+#
+# [*compute_namespace*]
+# (Optional) Use compute namespace for polling agent.
+# Defaults to false.
+#
+# [*ipmi_namespace*]
+# (Optional) Use ipmi namespace for polling agent.
+# Defaults to false.
+#
+# [*ceilometer_redis_password*]
+# (Optional) redis password to configure coordination url
+#
+# [*redis_vip*]
+# (Optional) redis vip to configure coordination url
+#
+# [*step*]
+# (Optional) The current step in deployment. See tripleo-heat-templates
+# for more details.
+# Defaults to hiera('step')
+#
+class tripleo::profile::base::ceilometer::agent::polling (
+ $central_namespace = hiera('central_namespace', false),
+ $compute_namespace = hiera('compute_namespace', false),
+ $ipmi_namespace = hiera('ipmi_namespace', false),
+ $ceilometer_redis_password = hiera('ceilometer_redis_password', undef),
+ $redis_vip = hiera('redis_vip', undef),
+ $step = hiera('step'),
+) {
+ include ::tripleo::profile::base::ceilometer
+
+ if $step >= 4 {
+ include ::ceilometer::agent::auth
+ class { '::ceilometer::agent::polling':
+ central_namespace => $central_namespace,
+ compute_namespace => $compute_namespace,
+ ipmi_namespace => $ipmi_namespace,
+ coordination_url => join(['redis://:', $ceilometer_redis_password, '@', normalize_ip_for_uri($redis_vip), ':6379/']),
+ }
+ }
+
+}
diff --git a/releasenotes/notes/add-ceilo-polling-agent-53fab550a09a6196.yaml b/releasenotes/notes/add-ceilo-polling-agent-53fab550a09a6196.yaml
new file mode 100644
index 0000000..127991b
--- /dev/null
+++ b/releasenotes/notes/add-ceilo-polling-agent-53fab550a09a6196.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - Add support for cielometer polling agent. The central, compute and ipmi
+ agent services should use polling agent with namespace. This has been
+ done in packaging already since few releases now. Let puppet do it
+ correctly as well.
diff --git a/spec/classes/tripleo_profile_base_ceilometer_agent_polling_spec.rb b/spec/classes/tripleo_profile_base_ceilometer_agent_polling_spec.rb
new file mode 100644
index 0000000..38c94c6
--- /dev/null
+++ b/spec/classes/tripleo_profile_base_ceilometer_agent_polling_spec.rb
@@ -0,0 +1,72 @@
+#
+# Copyright (C) 2016 Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+require 'spec_helper'
+
+describe 'tripleo::profile::base::ceilometer::agent::polling' do
+ shared_examples_for 'tripleo::profile::base::ceilometer::agent::polling' do
+ before :each do
+ facts.merge!({ :step => params[:step] })
+ end
+
+ let(:pre_condition) do
+ "class { '::tripleo::profile::base::ceilometer': step => #{params[:step]}, oslomsg_rpc_hosts => ['localhost.localdomain'] }"
+ end
+
+ context 'with step less than 4' do
+ let(:params) { { :step => 3 } }
+
+ it 'should do nothing' do
+ is_expected.to contain_class('tripleo::profile::base::ceilometer::agent::polling')
+ is_expected.to_not contain_class('ceilometer::agent::polling')
+ end
+ end
+
+ context 'with step 4 on polling agent' do
+
+ let(:pre_condition) do
+ "class { '::ceilometer::agent::auth': auth_password => 'password' }"
+ end
+
+ let(:params) { {
+ :step => 4,
+ :ceilometer_redis_password => 'password',
+ :redis_vip => '127.0.0.1',
+ :central_namespace => true
+ } }
+
+ it 'should trigger complete configuration' do
+ is_expected.to contain_class('ceilometer::agent::polling').with(
+ :central_namespace => true,
+ :compute_namespace => false,
+ :ipmi_namespace => false,
+ :coordination_url => 'redis://:password@127.0.0.1:6379/',
+ )
+ end
+ end
+ end
+
+
+ on_supported_os.each do |os, facts|
+ context "on #{os}" do
+ let(:facts) do
+ facts.merge({ :hostname => 'node.example.com' })
+ end
+
+ it_behaves_like 'tripleo::profile::base::ceilometer::agent::polling'
+ end
+ end
+end