aboutsummaryrefslogtreecommitdiffstats
path: root/manifests
diff options
context:
space:
mode:
authorAlex Schultz <aschultz@redhat.com>2016-09-30 09:49:35 -0600
committerAlex Schultz <aschultz@redhat.com>2016-09-30 21:12:24 +0000
commitdaebf929822aa6849e4e8c6f2e61efe1759e4f80 (patch)
tree01c1690cfd5a252fb8b45175d023c51e640b22ca /manifests
parent1c725dd46f37e2b21d5e1dece467e4f5567bd761 (diff)
Add ceilometer profile rspec testing
This change adds rspec testing for the ceilometer profiles. While writing these tests, the tripleo::profile::base::ceilometer::collector class needed to have the hiera lookups moved to class parameters to allow for testing the possible options around the database backend. These tests add coverage for ipv4 and ipv6 configurations for the collector profile as well as excluding mongodb on the backend. Change-Id: I1abae040104e8492a9fe266de74080e1e7701731
Diffstat (limited to 'manifests')
-rw-r--r--manifests/profile/base/ceilometer/collector.pp68
1 files changed, 45 insertions, 23 deletions
diff --git a/manifests/profile/base/ceilometer/collector.pp b/manifests/profile/base/ceilometer/collector.pp
index e892478..443873f 100644
--- a/manifests/profile/base/ceilometer/collector.pp
+++ b/manifests/profile/base/ceilometer/collector.pp
@@ -27,9 +27,30 @@
# for more details.
# Defaults to hiera('step')
#
+# [*ceilometer_backend*]
+# (Optional) The ceilometer backend to use.
+# Defaults to hiera('ceilometer_backend', 'mongodb')
+#
+# [*mongodb_ipv6*]
+# (Optional) Flag to indicate if mongodb is using ipv6
+# Defaults to hiera('mongodb::server::ipv6', false)
+#
+# [*mongodb_node_ips*]
+# (Optional) Array of mongodb node ip address. Required if backend is set
+# to mongodb.
+# Defaults to hiera('mongodb_node_ips', [])
+#
+# [*mongodb_replset*]
+# (Optional) Replica set for mongodb. Required if backend is mongodb
+# Defaults to hiera(''mongodb::server::replset', '')
+#
class tripleo::profile::base::ceilometer::collector (
- $bootstrap_node = hiera('bootstrap_nodeid', undef),
- $step = hiera('step'),
+ $bootstrap_node = hiera('bootstrap_nodeid', undef),
+ $step = hiera('step'),
+ $ceilometer_backend = hiera('ceilometer_backend', 'mongodb'),
+ $mongodb_ipv6 = hiera('mongodb::server::ipv6', false),
+ $mongodb_node_ips = hiera('mongodb_node_ips', []),
+ $mongodb_replset = hiera('mongodb::server::replset', undef)
) {
if $::hostname == downcase($bootstrap_node) {
$sync_db = true
@@ -37,26 +58,6 @@ class tripleo::profile::base::ceilometer::collector (
$sync_db = false
}
- $ceilometer_backend = downcase(hiera('ceilometer_backend', 'mongodb'))
- # MongoDB
- if $ceilometer_backend == 'mongodb' {
- # NOTE(gfidente): We need to pass the list of IPv6 addresses *with* port and
- # without the brackets as 'members' argument for the 'mongodb_replset'
- # resource.
- if str2bool(hiera('mongodb::server::ipv6', false)) {
- $mongo_node_ips_with_port_prefixed = prefix(hiera('mongodb_node_ips'), '[')
- $mongo_node_ips_with_port = suffix($mongo_node_ips_with_port_prefixed, ']:27017')
- $mongo_node_ips_with_port_nobr = suffix(hiera('mongodb_node_ips'), ':27017')
- } else {
- $mongo_node_ips_with_port = suffix(hiera('mongodb_node_ips'), ':27017')
- $mongo_node_ips_with_port_nobr = suffix(hiera('mongodb_node_ips'), ':27017')
- }
- $mongo_node_string = join($mongo_node_ips_with_port, ',')
-
- $mongodb_replset = hiera('mongodb::server::replset')
- $ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
- }
-
include ::tripleo::profile::base::ceilometer
if $step >= 3 and $sync_db {
@@ -64,7 +65,28 @@ class tripleo::profile::base::ceilometer::collector (
}
if $step >= 4 or ($step >= 3 and $sync_db) {
- if $ceilometer_backend == 'mongodb' {
+ if downcase($ceilometer_backend) == 'mongodb' {
+ if empty($mongodb_node_ips) {
+ fail('Provided mongodb node ip addresses are empty')
+ }
+ if !$mongodb_replset {
+ fail('mongodb_replset is required when using mongodb')
+ }
+ # NOTE(gfidente): We need to pass the list of IPv6 addresses *with* port
+ # and without the brackets as 'members' argument for the 'mongodb_replset'
+ # resource.
+ if str2bool($mongodb_ipv6) {
+ $mongo_node_ips_with_port_prefixed = prefix($mongodb_node_ips, '[')
+ $mongo_node_ips_with_port = suffix($mongo_node_ips_with_port_prefixed, ']:27017')
+ $mongo_node_ips_with_port_nobr = suffix($mongodb_node_ips, ':27017')
+ } else {
+ $mongo_node_ips_with_port = suffix($mongodb_node_ips, ':27017')
+ $mongo_node_ips_with_port_nobr = suffix($mongodb_node_ips, ':27017')
+ }
+ $mongo_node_string = join($mongo_node_ips_with_port, ',')
+
+ $ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
+
class { '::ceilometer::db' :
database_connection => $ceilometer_mongodb_conn_string,
}