# Optional. Defaults to 'latin1'
class ceilometer::db::mysql(
- $password = undef,
+ $password = false,
$dbname = 'ceilometer',
$user = 'ceilometer',
$host = 'localhost',
$charset = 'latin1',
) {
+ validate_string($password)
+
Class['mysql::server'] -> Class['ceilometer::db::mysql']
Class['ceilometer::db::mysql'] -> Exec<| title == 'ceilometer-dbsync' |>
Mysql::Db[$dbname] ~> Exec<| title == 'ceilometer-dbsync' |>
- #FIXME: ensure password is not empty
-
mysql::db { $dbname:
user => $user,
password => $password,
# Optional. Defaults to '/'
#
class ceilometer(
- $metering_secret = undef,
+ $metering_secret = false,
$package_ensure = 'present',
$verbose = 'False',
$debug = 'False',
$rabbit_virtualhost = '/',
) {
- #FIXME: ensure metering_secret is non-empty
+ validate_string($metering_secret)
include ceilometer::params
# Optional. Defaults to true
#
class ceilometer::keystone::auth(
- $password = undef,
+ $password = false,
$email = 'ceilometer@localhost',
$auth_name = 'ceilometer',
$service_type = 'metering',
$configure_endpoint = true
) {
- #FIXME: ensure $password is not empty
+ validate_string($password)
Keystone_user_role["${auth_name}@${tenant}"] ~>
Service <| name == 'ceilometer' |>
shared_examples_for 'ceilometer-api' do
+ context 'without required parameter keystone_password' do
+ before { params.delete(:keystone_password) }
+ it { expect { should raise_error(Puppet::Error) } }
+ end
+
it { should include_class('ceilometer::params') }
it 'installs ceilometer-api package' do
shared_examples_for 'ceilometer mysql database' do
+ context 'when omiting the required parameter password' do
+ before { params.delete(:password) }
+ it { expect { should raise_error(Puppet::Error) } }
+ end
+
it 'creates a mysql database' do
should contain_mysql__db( params[:dbname] ).with(
:user => params[:user],
should contain_ceilometer_config('DEFAULT/metering_secret').with_value('metering-s3cr3t')
end
+ context 'without the required metering_secret' do
+ before { params.delete(:metering_secret) }
+ it { expect { should raise_error(Puppet::Error) } }
+ end
+
it 'configures rabbit' do
should contain_ceilometer_config('DEFAULT/rabbit_userid').with_value( params[:rabbit_userid] )
should contain_ceilometer_config('DEFAULT/rabbit_password').with_value( params[:rabbit_password] )
shared_examples_for 'ceilometer keystone auth' do
+ context 'without the required password parameter' do
+ before { params.delete(:password) }
+ it { expect { should raise_error(Puppet::Error) } }
+ end
+
it 'configures ceilometer user' do
should contain_keystone_user( params[:auth_name] ).with(
:ensure => 'present',