]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Ensure passwords/secrets are specified by user
authorFrançois Charlier <francois.charlier@enovance.com>
Sat, 20 Apr 2013 02:29:00 +0000 (04:29 +0200)
committerFrançois Charlier <francois.charlier@enovance.com>
Sat, 20 Apr 2013 03:50:29 +0000 (05:50 +0200)
manifests/db/mysql.pp
manifests/init.pp
manifests/keystone/auth.pp
spec/classes/ceilometer_api_spec.rb
spec/classes/ceilometer_db_mysql_spec.rb
spec/classes/ceilometer_init_spec.rb
spec/classes/ceilometer_keystone_auth_spec.rb

index 82b4182f8f6b2b72619e0f66aa74878e59867dfb..643c5564033df9358267e6e845eed46dbf07c6c6 100644 (file)
@@ -17,7 +17,7 @@
 #    Optional. Defaults to 'latin1'
 
 class ceilometer::db::mysql(
-  $password      = undef,
+  $password      = false,
   $dbname        = 'ceilometer',
   $user          = 'ceilometer',
   $host          = 'localhost',
@@ -25,12 +25,12 @@ class ceilometer::db::mysql(
   $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,
index e581e49dbd2874047c12411005bdc476f0586ad8..32519911cb118f7fa633ea2ddd3024be293a11c1 100644 (file)
@@ -26,7 +26,7 @@
 #     Optional. Defaults to '/'
 #
 class ceilometer(
-  $metering_secret    = undef,
+  $metering_secret    = false,
   $package_ensure     = 'present',
   $verbose            = 'False',
   $debug              = 'False',
@@ -38,7 +38,7 @@ class ceilometer(
   $rabbit_virtualhost = '/',
 ) {
 
-  #FIXME: ensure metering_secret is non-empty
+  validate_string($metering_secret)
 
   include ceilometer::params
 
index c5b2a14bda1f0e2781e203b78df3c7a4b227d73d..37cf32f6e7f7cae88940f9046580d935fb1064a0 100644 (file)
@@ -29,7 +29,7 @@
 #    Optional. Defaults to true
 #
 class ceilometer::keystone::auth(
-  $password           = undef,
+  $password           = false,
   $email              = 'ceilometer@localhost',
   $auth_name          = 'ceilometer',
   $service_type       = 'metering',
@@ -45,7 +45,7 @@ class ceilometer::keystone::auth(
   $configure_endpoint = true
 ) {
 
-  #FIXME: ensure $password is not empty
+  validate_string($password)
 
   Keystone_user_role["${auth_name}@${tenant}"] ~>
     Service <| name == 'ceilometer' |>
index c50a3afe5514715dbbe4988e978c6784bd35ed43..fc86640f7779a7c906a98b46c8d1f598be0f9fd8 100644 (file)
@@ -19,6 +19,11 @@ describe 'ceilometer::api' do
 
   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
index d6d150ca947c74bda0647c4be6ca28a0995c4172..f0c02b3bfb22ccca1a1d78c7eea670eb6a15b133 100644 (file)
@@ -17,6 +17,11 @@ describe 'ceilometer::db::mysql' 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],
index f006878c644bb95eac74eaa3cf5705e1ddedc3d6..54a194f0106a6b4e0e6811f2a61e75af2bc9f088 100644 (file)
@@ -93,6 +93,11 @@ describe 'ceilometer' do
       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] )
index 1e090d4a54cd722419b55eec2208b1cf36a926e4..efe9545d1fef692ea0b0c3a7f656eda46fe5b48f 100644 (file)
@@ -20,6 +20,11 @@ describe 'ceilometer::keystone::auth' do
 
   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',