From a4cac0d56bf2d29a137cc264071b0a20949be6a9 Mon Sep 17 00:00:00 2001 From: Sebastien Badia Date: Tue, 30 Dec 2014 18:55:06 +0100 Subject: [PATCH] db: Added postgresql backend using openstacklib helper Standardize ceilometer module, and add postgresql backend. Change-Id: I6603304cab680185d289e6b284e55deaef437b61 Implements: blueprint commmon-openstack-database-resource --- .fixtures.yml | 2 + manifests/db/postgresql.pp | 45 ++++++++++++++ spec/classes/ceilometer_db_postgresql_spec.rb | 58 +++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 manifests/db/postgresql.pp create mode 100644 spec/classes/ceilometer_db_postgresql_spec.rb diff --git a/.fixtures.yml b/.fixtures.yml index cf0f5e5..5f2c284 100644 --- a/.fixtures.yml +++ b/.fixtures.yml @@ -1,12 +1,14 @@ 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}" diff --git a/manifests/db/postgresql.pp b/manifests/db/postgresql.pp new file mode 100644 index 0000000..6007b67 --- /dev/null +++ b/manifests/db/postgresql.pp @@ -0,0 +1,45 @@ +# == 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' |> + +} diff --git a/spec/classes/ceilometer_db_postgresql_spec.rb b/spec/classes/ceilometer_db_postgresql_spec.rb new file mode 100644 index 0000000..6478342 --- /dev/null +++ b/spec/classes/ceilometer_db_postgresql_spec.rb @@ -0,0 +1,58 @@ +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 -- 2.45.2