Standardize ceilometer module, and add postgresql backend.
Change-Id: I6603304cab680185d289e6b284e55deaef437b61
Implements: blueprint commmon-openstack-database-resource
fixtures:
repositories:
'inifile': 'git://github.com/puppetlabs/puppetlabs-inifile'
+ 'concat': 'git://github.com/puppetlabs/puppetlabs-concat.git'
'keystone': 'git://github.com/stackforge/puppet-keystone.git'
'mysql':
repo: 'git://github.com/puppetlabs/puppetlabs-mysql.git'
ref: 'origin/2.2.x'
'nova': 'git://github.com/stackforge/puppet-nova.git'
'openstacklib': 'git://github.com/stackforge/puppet-openstacklib.git'
+ 'postgresql': 'git://github.com/puppetlabs/puppet-postgresql.git'
'stdlib': 'git://github.com/puppetlabs/puppetlabs-stdlib.git'
symlinks:
'ceilometer': "#{source_dir}"
--- /dev/null
+# == Class: ceilometer::db::postgresql
+#
+# Class that configures postgresql for ceilometer
+# Requires the Puppetlabs postgresql module.
+#
+# === Parameters
+#
+# [*password*]
+# (Required) Password to connect to the database.
+#
+# [*dbname*]
+# (Optional) Name of the database.
+# Defaults to 'ceilometer'.
+#
+# [*user*]
+# (Optional) User to connect to the database.
+# Defaults to 'ceilometer'.
+#
+# [*encoding*]
+# (Optional) The charset to use for the database.
+# Default to undef.
+#
+# [*privileges*]
+# (Optional) Privileges given to the database user.
+# Default to 'ALL'
+#
+class ceilometer::db::postgresql(
+ $password,
+ $dbname = 'ceilometer',
+ $user = 'ceilometer',
+ $encoding = undef,
+ $privileges = 'ALL',
+) {
+
+ ::openstacklib::db::postgresql { 'ceilometer':
+ password_hash => postgresql_password($user, $password),
+ dbname => $dbname,
+ user => $user,
+ encoding => $encoding,
+ privileges => $privileges,
+ }
+
+ ::Openstacklib::Db::Postgresql['ceilometer'] ~> Exec<| title == 'ceilometer-dbsync' |>
+
+}
--- /dev/null
+require 'spec_helper'
+
+describe 'ceilometer::db::postgresql' do
+
+ let :req_params do
+ { :password => 'pw' }
+ end
+
+ let :pre_condition do
+ 'include postgresql::server'
+ end
+
+ context 'on a RedHat osfamily' do
+ let :facts do
+ {
+ :osfamily => 'RedHat',
+ :operatingsystemrelease => '7.0',
+ :concat_basedir => '/var/lib/puppet/concat'
+ }
+ end
+
+ context 'with only required parameters' do
+ let :params do
+ req_params
+ end
+
+ it { should contain_postgresql__server__db('ceilometer').with(
+ :user => 'ceilometer',
+ :password => 'md52899c518e96bce6633ab342b0ca38292'
+ )}
+ end
+
+ end
+
+ context 'on a Debian osfamily' do
+ let :facts do
+ {
+ :operatingsystemrelease => '7.8',
+ :operatingsystem => 'Debian',
+ :osfamily => 'Debian',
+ :concat_basedir => '/var/lib/puppet/concat'
+ }
+ end
+
+ context 'with only required parameters' do
+ let :params do
+ req_params
+ end
+
+ it { should contain_postgresql__server__db('ceilometer').with(
+ :user => 'ceilometer',
+ :password => 'md52899c518e96bce6633ab342b0ca38292'
+ )}
+ end
+
+ end
+
+end