]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Fail when ssl parameters are missing and rabbit_use_ssl is set to true
authorYanis Guenane <yanis.guenane@enovance.com>
Fri, 16 May 2014 15:48:51 +0000 (11:48 -0400)
committerYanis Guenane <yanis.guenane@enovance.com>
Fri, 16 May 2014 16:23:39 +0000 (12:23 -0400)
This commit causes the run to fail is rabbit_use_ssl parameter is set
to true but the ssl related parameters remains undef.

Change-Id: Idd40601fe4a632204fdde120b857d0e22b6a2aed

manifests/init.pp
spec/classes/ceilometer_init_spec.rb

index 09eae730a035b569bcf4ee8c853e0603a2eb8c71..4f46cdd28a210161cf8482b1502c8b86f7b7c051 100644 (file)
@@ -111,6 +111,18 @@ class ceilometer(
 
   include ceilometer::params
 
+  if $rabbit_use_ssl {
+    if !$kombu_ssl_ca_certs {
+      fail('The kombu_ssl_ca_certs parameter is required when rabbit_use_ssl is set to true')
+    }
+    if !$kombu_ssl_certfile {
+      fail('The kombu_ssl_certfile parameter is required when rabbit_use_ssl is set to true')
+    }
+    if !$kombu_ssl_keyfile {
+      fail('The kombu_ssl_keyfile parameter is required when rabbit_use_ssl is set to true')
+    }
+  }
+
   File {
     require => Package['ceilometer-common'],
   }
@@ -177,28 +189,11 @@ class ceilometer(
       }
 
       if $rabbit_use_ssl {
-        if $kombu_ssl_ca_certs {
-          ceilometer_config { 'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs }
-        } else {
-          ceilometer_config { 'DEFAULT/kombu_ssl_ca_certs': ensure => absent}
-        }
-
-        if $kombu_ssl_certfile {
-          ceilometer_config { 'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile }
-        } else {
-          ceilometer_config { 'DEFAULT/kombu_ssl_certfile': ensure => absent}
-        }
-
-        if $kombu_ssl_keyfile {
-          ceilometer_config { 'DEFAULT/kombu_ssl_keyfile': value => $kombu_ssl_keyfile }
-        } else {
-          ceilometer_config { 'DEFAULT/kombu_ssl_keyfile': ensure => absent}
-        }
-
-        if $kombu_ssl_version {
-          ceilometer_config { 'DEFAULT/kombu_ssl_version': value => $kombu_ssl_version }
-        } else {
-          ceilometer_config { 'DEFAULT/kombu_ssl_version': ensure => absent}
+        ceilometer_config {
+          'DEFAULT/kombu_ssl_ca_certs': value => $kombu_ssl_ca_certs;
+          'DEFAULT/kombu_ssl_certfile': value => $kombu_ssl_certfile;
+          'DEFAULT/kombu_ssl_keyfile':  value => $kombu_ssl_keyfile;
+          'DEFAULT/kombu_ssl_version':  value => $kombu_ssl_version;
         }
       } else {
         ceilometer_config {
@@ -208,6 +203,7 @@ class ceilometer(
           'DEFAULT/kombu_ssl_version':  ensure => absent;
         }
       }
+
   }
 
   if $rpc_backend == 'ceilometer.openstack.common.rpc.impl_qpid' {
index 67423e67a36f4fd7aca81287afb3db5534f13f80..e1a6ee73a777c6731d958c3bae67aa70f5a7c663 100644 (file)
@@ -221,33 +221,32 @@ describe 'ceilometer' do
     end
 
     context "with SSL enabled" do
-      before { params.merge!( :rabbit_use_ssl => 'true' ) }
-      it { should contain_ceilometer_config('DEFAULT/rabbit_use_ssl').with_value('true') }
-      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_ca_certs').with_ensure('absent') }
-      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_certfile').with_ensure('absent') }
-      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_keyfile').with_ensure('absent') }
-      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_version').with_value('SSLv3') }
-
-      context "with ca_certs" do
-        before { params.merge!( :kombu_ssl_ca_certs => '/path/to/ca.crt' ) }
-        it { should contain_ceilometer_config('DEFAULT/kombu_ssl_ca_certs').with_value('/path/to/ca.crt') }
-      end
+      before { params.merge!(
+        :rabbit_use_ssl     => 'true',
+        :kombu_ssl_ca_certs => '/path/to/ca.crt',
+        :kombu_ssl_certfile => '/path/to/cert.crt',
+        :kombu_ssl_keyfile  => '/path/to/cert.key',
+        :kombu_ssl_version  => 'TLSv1'
+      ) }
 
-      context "with certfile" do
-        before { params.merge!( :kombu_ssl_certfile => '/path/to/cert.crt' ) }
-        it { should contain_ceilometer_config('DEFAULT/kombu_ssl_certfile').with_value('/path/to/cert.crt') }
-      end
+      it { should contain_ceilometer_config('DEFAULT/rabbit_use_ssl').with_value('true') }
+      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_ca_certs').with_value('/path/to/ca.crt') }
+      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_certfile').with_value('/path/to/cert.crt') }
+      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_keyfile').with_value('/path/to/cert.key') }
+      it { should contain_ceilometer_config('DEFAULT/kombu_ssl_version').with_value('TLSv1') }
+    end
 
-      context "with keyfile" do
-        before { params.merge!( :kombu_ssl_keyfile => '/path/to/cert.key' ) }
-        it { should contain_ceilometer_config('DEFAULT/kombu_ssl_keyfile').with_value('/path/to/cert.key') }
-      end
+    context "with SSL wrongly configured" do
+      before { params.merge!(
+        :rabbit_use_ssl     => 'false',
+        :kombu_ssl_certfile => '/path/to/cert.crt',
+        :kombu_ssl_keyfile  => '/path/to/cert.key',
+        :kombu_ssl_version  => 'TLSv1'
+      ) }
 
-      context "with version" do
-        before { params.merge!( :kombu_ssl_version => 'TLSv1' ) }
-        it { should contain_ceilometer_config('DEFAULT/kombu_ssl_version').with_value('TLSv1') }
-      end
+      it_raises 'a Puppet::Error', /The kombu_ssl_ca_certs parameter is required when rabbit_use_ssl is set to true/
     end
+
   end
 
   shared_examples_for 'qpid support' do