]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Switch ceilometer to rspec-puppet-facts
authorMykyta Karpin <mkarpin@mirantis.com>
Fri, 11 Nov 2016 17:03:11 +0000 (19:03 +0200)
committerMykyta Karpin <mkarpin@mirantis.com>
Mon, 14 Nov 2016 13:50:37 +0000 (15:50 +0200)
Change-Id: I5befcadb924f0896457f3db0b712f6de157e926c

19 files changed:
spec/classes/ceilometer_agent_auth_spec.rb
spec/classes/ceilometer_agent_central_spec.rb
spec/classes/ceilometer_agent_compute_spec.rb
spec/classes/ceilometer_agent_notification_spec.rb
spec/classes/ceilometer_agent_polling_spec.rb
spec/classes/ceilometer_api_spec.rb
spec/classes/ceilometer_client_spec.rb
spec/classes/ceilometer_collector_spec.rb
spec/classes/ceilometer_db_mysql_spec.rb
spec/classes/ceilometer_db_spec.rb
spec/classes/ceilometer_db_sync_spec.rb
spec/classes/ceilometer_dispatcher_gnocchi_spec.rb
spec/classes/ceilometer_expirer_spec.rb
spec/classes/ceilometer_init_spec.rb
spec/classes/ceilometer_keystone_auth_spec.rb
spec/classes/ceilometer_keystone_authtoken_spec.rb
spec/classes/ceilometer_logging_spec.rb
spec/classes/ceilometer_policy_spec.rb
spec/classes/ceilometer_wsgi_apache_spec.rb

index 72a4d81aa64e9aa1454a08ca5733ed2ba5f183f0..97dc0d6d9e9f83bdf912004c06dd8b068ed17937 100644 (file)
@@ -49,20 +49,16 @@ describe 'ceilometer::agent::auth' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    it_configures 'ceilometer-agent-auth'
-  end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
+      it_behaves_like 'ceilometer-agent-auth'
     end
-
-    it_configures 'ceilometer-agent-auth'
   end
 
 end
index ddf87d1f2515c6ccc4dfecf429202e2e8e14c536..b22024c2c2bf95abce4f750cbcc6623daab96755 100644 (file)
@@ -77,29 +77,27 @@ describe 'ceilometer::agent::central' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    let :platform_params do
-      { :agent_package_name => 'ceilometer-agent-central',
-        :agent_service_name => 'ceilometer-agent-central' }
-    end
-
-    it_configures 'ceilometer-agent-central'
-  end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          { :agent_package_name => 'ceilometer-agent-central',
+            :agent_service_name => 'ceilometer-agent-central' }
+        when 'RedHat'
+          { :agent_package_name => 'openstack-ceilometer-central',
+            :agent_service_name => 'openstack-ceilometer-central' }
+        end
+      end
 
-    let :platform_params do
-      { :agent_package_name => 'openstack-ceilometer-central',
-        :agent_service_name => 'openstack-ceilometer-central' }
+      it_behaves_like 'ceilometer-agent-central'
     end
-
-    it_configures 'ceilometer-agent-central'
   end
+
 end
index 76497290aa8012292be16b9fd1c0e4e4ed7ff405..5dd6ad1fbd44e32170a0d763b50c8244c4113fbf 100644 (file)
@@ -88,44 +88,34 @@ describe 'ceilometer::agent::compute' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    let :platform_params do
-      { :agent_package_name => 'ceilometer-agent-compute',
-        :agent_service_name => 'ceilometer-agent-compute' }
-    end
-
-    context 'on Ubuntu operating systems' do
-      before do
-        facts.merge!( :operatingsystem => 'Ubuntu' )
-        platform_params.merge!( :libvirt_group => 'libvirtd' )
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
       end
 
-      it_configures 'ceilometer-agent-compute'
-    end
-
-    context 'on other operating systems' do
-      before do
-        platform_params.merge!( :libvirt_group => 'libvirt' )
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          if facts[:operatingsystem] == 'Ubuntu'
+            { :agent_package_name => 'ceilometer-agent-compute',
+              :agent_service_name => 'ceilometer-agent-compute',
+              :libvirt_group      => 'libvirtd' }
+          else
+            { :agent_package_name => 'ceilometer-agent-compute',
+              :agent_service_name => 'ceilometer-agent-compute',
+              :libvirt_group      => 'libvirt' }
+          end
+        when 'RedHat'
+          { :agent_package_name => 'openstack-ceilometer-compute',
+            :agent_service_name => 'openstack-ceilometer-compute' }
+        end
       end
 
-      it_configures 'ceilometer-agent-compute'
+      it_behaves_like 'ceilometer-agent-compute'
     end
   end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-
-    let :platform_params do
-      { :agent_package_name => 'openstack-ceilometer-compute',
-        :agent_service_name => 'openstack-ceilometer-compute' }
-    end
-
-    it_configures 'ceilometer-agent-compute'
-  end
 end
index c172234e47d9b07f4daf6f27a534f40ddbf26716..f66858a6b47b3b0208a9a3ec263bb722c1795cd0 100644 (file)
@@ -172,94 +172,27 @@ describe 'ceilometer::agent::notification' do
     end
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    let :platform_params do
-      { :agent_notification_package_name => 'ceilometer-agent-notification',
-        :agent_notification_service_name => 'ceilometer-agent-notification' }
-    end
-
-    it_configures 'ceilometer-agent-notification'
-  end
-
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-
-    let :platform_params do
-      { :agent_notification_package_name => 'openstack-ceilometer-notification',
-        :agent_notification_service_name => 'openstack-ceilometer-notification' }
-    end
-
-    it_configures 'ceilometer-agent-notification'
-  end
-
-  context 'on RHEL 7' do
-    let :facts do
-      @default_facts.merge({ :osfamily                  => 'RedHat',
-        :operatingsystem           => 'RedHat',
-        :operatingsystemmajrelease => 7
-      })
-    end
-
-    let :platform_params do
-      { :agent_notification_package_name => 'openstack-ceilometer-notification',
-        :agent_notification_service_name => 'openstack-ceilometer-notification' }
-    end
-
-    it_configures 'ceilometer-agent-notification'
-  end
-
-  context 'on CentOS 7' do
-    let :facts do
-      @default_facts.merge({ :osfamily                  => 'RedHat',
-        :operatingsystem           => 'CentOS',
-        :operatingsystemmajrelease => 7
-      })
-    end
-
-    let :platform_params do
-      { :agent_notification_package_name => 'openstack-ceilometer-notification',
-        :agent_notification_service_name => 'openstack-ceilometer-notification' }
-    end
-
-    it_configures 'ceilometer-agent-notification'
-  end
-
-  context 'on Scientific 7' do
-    let :facts do
-      @default_facts.merge({ :osfamily                  => 'RedHat',
-        :operatingsystem           => 'Scientific',
-        :operatingsystemmajrelease => 7
-      })
-    end
-
-    let :platform_params do
-      { :agent_notification_package_name => 'openstack-ceilometer-notification',
-        :agent_notification_service_name => 'openstack-ceilometer-notification' }
-    end
-
-    it_configures 'ceilometer-agent-notification'
-  end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
 
-  context 'on Fedora 20' do
-    let :facts do
-      @default_facts.merge({ :osfamily               => 'RedHat',
-        :operatingsystem        => 'Fedora',
-        :operatingsystemrelease => 20
-      })
-    end
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          { :agent_notification_package_name => 'ceilometer-agent-notification',
+            :agent_notification_service_name => 'ceilometer-agent-notification' }
+        when 'RedHat'
+          { :agent_notification_package_name => 'openstack-ceilometer-notification',
+            :agent_notification_service_name => 'openstack-ceilometer-notification' }
+        end
+      end
 
-    let :platform_params do
-      { :agent_notification_package_name => 'openstack-ceilometer-notification',
-        :agent_notification_service_name => 'openstack-ceilometer-notification' }
+      it_behaves_like 'ceilometer-agent-notification'
     end
-
-    it_configures 'ceilometer-agent-notification'
   end
 
 end
index 3280a172f177276331e4022d24aea2fb0e79aeb4..184685525c5df0f6ff5c1bfdc782e185e73f620e 100644 (file)
@@ -114,45 +114,34 @@ describe 'ceilometer::agent::polling' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    let :platform_params do
-      { :agent_package_name => 'ceilometer-polling',
-        :agent_service_name => 'ceilometer-polling' }
-    end
-
-    context 'on Ubuntu operating systems' do
-      before do
-        facts.merge!( :operatingsystem => 'Ubuntu' )
-        platform_params.merge!( :libvirt_group => 'libvirtd' )
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
       end
 
-      it_configures 'ceilometer-polling'
-    end
-
-    context 'on other operating systems' do
-      before do
-        platform_params.merge!( :libvirt_group => 'libvirt' )
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          if facts[:operatingsystem] == 'Ubuntu'
+            { :agent_package_name => 'ceilometer-polling',
+              :agent_service_name => 'ceilometer-polling',
+              :libvirt_group      => 'libvirtd' }
+          else
+            { :agent_package_name => 'ceilometer-polling',
+              :agent_service_name => 'ceilometer-polling',
+              :libvirt_group      => 'libvirt' }
+          end
+        when 'RedHat'
+            { :agent_package_name => 'openstack-ceilometer-polling',
+              :agent_service_name => 'openstack-ceilometer-polling' }
+        end
       end
 
-      it_configures 'ceilometer-polling'
+      it_behaves_like 'ceilometer-polling'
     end
-
   end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-
-    let :platform_params do
-      { :agent_package_name => 'openstack-ceilometer-polling',
-        :agent_service_name => 'openstack-ceilometer-polling' }
-    end
-
-    it_configures 'ceilometer-polling'
-  end
 end
index e0ccda5649434759d6d5078f4bcae8d345ce441b..bfb1de695a5f07a43f31b116d67a10e87065302c 100644 (file)
@@ -149,41 +149,30 @@ describe 'ceilometer::api' do
     end
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily               => 'Debian',
-        :operatingsystem        => 'Debian',
-        :operatingsystemrelease => '8.0',
-        :concat_basedir         => '/var/lib/puppet/concat',
-        :fqdn                   => 'some.host.tld',
-      })
-    end
-
-    let :platform_params do
-      { :api_package_name => 'ceilometer-api',
-        :api_service_name => 'ceilometer-api' }
-    end
-
-    it_configures 'ceilometer-api'
-  end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts({
+          :concat_basedir         => '/var/lib/puppet/concat',
+          :fqdn                   => 'some.host.tld',
+        }))
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily               => 'RedHat',
-        :operatingsystem        => 'RedHat',
-        :operatingsystemrelease => '7.1',
-        :operatingsystemmajrelease => '7',
-        :fqdn                   => 'some.host.tld',
-        :concat_basedir         => '/var/lib/puppet/concat',
-      })
-    end
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          { :api_package_name => 'ceilometer-api',
+            :api_service_name => 'ceilometer-api' }
+        when 'RedHat'
+          { :api_package_name => 'openstack-ceilometer-api',
+            :api_service_name => 'openstack-ceilometer-api' }
+        end
+      end
 
-    let :platform_params do
-      { :api_package_name => 'openstack-ceilometer-api',
-        :api_service_name => 'openstack-ceilometer-api' }
+      it_behaves_like 'ceilometer-api'
     end
-
-    it_configures 'ceilometer-api'
   end
 
 end
index 99f2e29152648bca3a3a275fc3eb3a06d73b67a6..ce4927e3cfb22637fa3b66a8d99baac4378dacc3 100644 (file)
@@ -15,27 +15,20 @@ describe 'ceilometer::client' do
     end
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
+
+      let :platform_params do
+        { :client_package_name => 'python-ceilometerclient' }
+      end
+
+      it_behaves_like 'ceilometer client'
     end
-
-    let :platform_params do
-      { :client_package_name => 'python-ceilometerclient' }
-    end
-
-    it_configures 'ceilometer client'
   end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-
-    let :platform_params do
-      { :client_package_name => 'python-ceilometerclient' }
-    end
-
-    it_configures 'ceilometer client'
-  end
 end
index 4763ae89203fa994089807a1f5bce447c2ee8ae7..1316dfb64b0f41dfc8d252537dea9e7b602d766e 100644 (file)
@@ -113,29 +113,27 @@ describe 'ceilometer::collector' do
     end
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
+
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          { :collector_package_name => 'ceilometer-collector',
+            :collector_service_name => 'ceilometer-collector' }
+        when 'RedHat'
+          { :collector_package_name => 'openstack-ceilometer-collector',
+            :collector_service_name => 'openstack-ceilometer-collector' }
+        end
+      end
+
+      it_behaves_like 'ceilometer-collector'
     end
-
-    let :platform_params do
-      { :collector_package_name => 'ceilometer-collector',
-        :collector_service_name => 'ceilometer-collector' }
-    end
-
-    it_configures 'ceilometer-collector'
   end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-
-    let :platform_params do
-      { :collector_package_name => 'openstack-ceilometer-collector',
-        :collector_service_name => 'openstack-ceilometer-collector' }
-    end
-
-    it_configures 'ceilometer-collector'
-  end
 end
index 610f4fc53f6c6a99d338a5eaf5726121752b22c7..fde10386d0ceeb6144364542a59f05a544bfba0b 100644 (file)
@@ -31,60 +31,48 @@ describe 'ceilometer::db::mysql' do
         :charset       => params[:charset]
       )
     end
-  end
-
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
 
-    it_configures 'ceilometer mysql database'
-  end
+    describe "overriding allowed_hosts param to array" do
+      let :params do
+        {
+          :password       => 'ceilometerpass',
+          :allowed_hosts  => ['localhost','%']
+        }
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
     end
 
-    it_configures 'ceilometer mysql database'
-  end
+    describe "overriding allowed_hosts param to string" do
+      let :params do
+        {
+          :password       => 'ceilometerpass2',
+          :allowed_hosts  => '192.168.1.1'
+        }
+      end
 
-  describe "overriding allowed_hosts param to array" do
-    let :facts do
-      @default_facts.merge({ :osfamily => "Debian" })
-    end
-    let :params do
-      {
-        :password       => 'ceilometerpass',
-        :allowed_hosts  => ['localhost','%']
-      }
     end
 
-  end
+    describe "overriding allowed_hosts param equals to host param " do
+      let :params do
+        {
+          :password       => 'ceilometerpass2',
+          :allowed_hosts  => 'localhost'
+        }
+      end
 
-  describe "overriding allowed_hosts param to string" do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
     end
-    let :params do
-      {
-        :password       => 'ceilometerpass2',
-        :allowed_hosts  => '192.168.1.1'
-      }
-    end
-
   end
 
-  describe "overriding allowed_hosts param equals to host param " do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-    let :params do
-      {
-        :password       => 'ceilometerpass2',
-        :allowed_hosts  => 'localhost'
-      }
-    end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
 
+      it_behaves_like 'ceilometer mysql database'
+    end
   end
+
 end
index 1da5b16fa50e6894b06d15b376f526e1c419d370..3b098c376b94430c5f735e178f9547f6c4184930 100644 (file)
@@ -91,63 +91,66 @@ describe 'ceilometer::db' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian',
-        :operatingsystem => 'Debian',
-        :operatingsystemrelease => 'jessie',
-      })
-    end
-
-    it_configures 'ceilometer::db'
-
-    context 'using pymysql driver' do
+  shared_examples_for 'ceilometer::db on Debian' do
+    context 'with sqlite backend' do
       let :params do
-        { :database_connection     => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
+        { :database_connection     => 'sqlite:///var/lib/ceilometer.db', }
       end
 
       it 'install the proper backend package' do
         is_expected.to contain_package('db_backend_package').with(
           :ensure => 'present',
-          :name   => 'python-pymysql',
+          :name   => 'python-pysqlite2',
           :tag    => 'openstack'
         )
       end
     end
 
-    context 'with sqlite backend' do
+    context 'using pymysql driver' do
       let :params do
-        { :database_connection     => 'sqlite:///var/lib/ceilometer.db', }
+        { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
       end
 
       it 'install the proper backend package' do
         is_expected.to contain_package('db_backend_package').with(
           :ensure => 'present',
-          :name   => 'python-pysqlite2',
+          :name   => 'python-pymysql',
           :tag    => 'openstack'
         )
       end
-
     end
   end
 
-  context 'on Redhat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat',
-        :operatingsystemrelease => '7.1',
-      })
-    end
-
-    it_configures 'ceilometer::db'
-
+  shared_examples_for 'ceilometer::db on RedHat' do
     context 'using pymysql driver' do
       let :params do
-        { :database_connection     => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
+        { :database_connection => 'mysql+pymysql:///ceilometer:ceilometer@localhost/ceilometer', }
       end
 
       it { is_expected.not_to contain_package('db_backend_package') }
     end
   end
 
-end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts({
+          :concat_basedir         => '/var/lib/puppet/concat',
+          :fqdn                   => 'some.host.tld',
+        }))
+      end
 
+      case facts[:osfamily]
+      when 'Debian'
+        it_behaves_like 'ceilometer::db on Debian'
+      when 'RedHat'
+        it_behaves_like 'ceilometer::db on RedHat'
+      end
+
+      it_behaves_like 'ceilometer::db'
+    end
+  end
+
+end
index f4b37b438f0159375bcd790856f6c404406cf8b0..6a9239fef65178e2811f39f8569334ac08f502aa 100644 (file)
@@ -43,7 +43,7 @@ describe 'ceilometer::db::sync' do
         }))
       end
 
-      it_configures 'ceilometer-dbsync'
+      it_behaves_like 'ceilometer-dbsync'
     end
   end
 
index e4554005903740b6cbc610fed5d39fed3de8b158..a5b644407e86fc350e1d9f787dc6e0ba2cf4c360 100644 (file)
@@ -35,20 +35,16 @@ describe 'ceilometer::dispatcher::gnocchi' do
     end
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    it_configures 'ceilometer-gnocchi-dispatcher'
-  end
+  on_supported_os({
+    :supported_os   => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge(OSDefaults.get_facts())
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
+      it_behaves_like 'ceilometer-gnocchi-dispatcher'
     end
-
-    it_configures 'ceilometer-gnocchi-dispatcher'
   end
 
 end
index 3bf6fe051fca1acf8ccf1a503a6f8682572adaff..8c9b0a632aaab5bc43bd11bafc5644b5ac7b3cf3 100644 (file)
@@ -64,28 +64,25 @@ describe 'ceilometer::expirer' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    let :platform_params do
-      { :common_package_name => 'ceilometer-common' }
-    end
-
-    it_configures 'ceilometer-expirer'
-  end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          { :common_package_name => 'ceilometer-common' }
+        when 'RedHat'
+          { :common_package_name => 'openstack-ceilometer-common' }
+        end
+      end
 
-    let :platform_params do
-      { :common_package_name => 'openstack-ceilometer-common' }
+      it_behaves_like 'ceilometer-expirer'
     end
-
-    it_configures 'ceilometer-expirer'
   end
 
 end
index 36af30d1f2a152cdc7e9557335029780f6d28e5d..b5cd7e511beff8f0ef4bc64e2b97a9540e7c1848 100644 (file)
@@ -375,27 +375,25 @@ describe 'ceilometer' do
     end
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    let :platform_params do
-      { :common_package_name => 'ceilometer-common' }
-    end
-
-    it_configures 'ceilometer'
-  end
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts())
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
+      let :platform_params do
+        case facts[:osfamily]
+        when 'Debian'
+          { :common_package_name => 'ceilometer-common' }
+        when 'RedHat'
+          { :common_package_name => 'openstack-ceilometer-common' }
+        end
+      end
 
-    let :platform_params do
-      { :common_package_name => 'openstack-ceilometer-common' }
+      it_behaves_like 'ceilometer'
     end
-
-    it_configures 'ceilometer'
   end
+
 end
index 84177f6f484c5e1215edd2416c2ea72abb1f16be..4110ca798f9dfc5ec522c2b450e4aaf57ba17e8f 100644 (file)
@@ -169,20 +169,16 @@ describe 'ceilometer::keystone::auth' do
 
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
-    end
-
-    it_configures 'ceilometer keystone auth'
-  end
+  on_supported_os({
+    :supported_os   => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge(OSDefaults.get_facts())
+      end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
+      it_behaves_like 'ceilometer keystone auth'
     end
-
-    it_configures 'ceilometer keystone auth'
   end
 
 end
index 17c1f6daec861edab783db97c53e3f0a7e6d781b..ce6caa3d751f8bec19ea8ef9b6b95a2265f9b9f4 100644 (file)
@@ -138,7 +138,7 @@ describe 'ceilometer::keystone::authtoken' do
         facts.merge!(OSDefaults.get_facts())
       end
 
-      it_configures 'ceilometer authtoken'
+      it_behaves_like 'ceilometer authtoken'
     end
   end
 
index e96456fd4533d997b45eaf565d6c20982286070d..37e0c9dab7082aa881021b3c1368f6d79c8bc063 100644 (file)
@@ -120,20 +120,16 @@ describe 'ceilometer::logging' do
       }
   end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'Debian' })
+  on_supported_os({
+    :supported_os   => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge(OSDefaults.get_facts())
+      end
+
+      it_behaves_like 'ceilometer-logging'
     end
-
-    it_configures 'ceilometer-logging'
-  end
-
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge({ :osfamily => 'RedHat' })
-    end
-
-    it_configures 'ceilometer-logging'
   end
 
 end
index 5bb54737e87f74516d82f386611b1a36fa085193..c57d367189bf3fb760c4ecb42ae0a8d2b9a8b804 100644 (file)
@@ -32,7 +32,7 @@ describe 'ceilometer::policy' do
         facts.merge!(OSDefaults.get_facts())
       end
 
-      it_configures 'ceilometer policies'
+      it_behaves_like 'ceilometer policies'
     end
   end
 
index 64908b5652e0eb417ab016e1cd800791bc7b1bb5..4b4543b3186cb8c0003361933292f6d8f1b886cf 100644 (file)
@@ -85,44 +85,37 @@ describe 'ceilometer::wsgi::apache' do
     end
   end
 
-  context 'on RedHat platforms' do
-    let :facts do
-      @default_facts.merge(global_facts.merge({
-        :osfamily               => 'RedHat',
-        :operatingsystemrelease => '7.0'
-      }))
-    end
-
-    let :platform_parameters do
-      {
-        :httpd_service_name => 'httpd',
-        :httpd_ports_file   => '/etc/httpd/conf/ports.conf',
-        :wsgi_script_path   => '/var/www/cgi-bin/ceilometer',
-        :wsgi_script_source => '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi'
-      }
-    end
-
-    it_configures 'apache serving ceilometer with mod_wsgi'
-  end
+  on_supported_os({
+    :supported_os   => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge!(OSDefaults.get_facts({
+          :fqdn => 'some.host.tld'
+        }))
+      end
 
-  context 'on Debian platforms' do
-    let :facts do
-      @default_facts.merge(global_facts.merge({
-        :osfamily               => 'Debian',
-        :operatingsystem        => 'Debian',
-        :operatingsystemrelease => '7.0'
-      }))
-    end
+      let :platform_parameters do
+        case facts[:osfamily]
+        when 'Debian'
+         {
+            :httpd_service_name => 'apache2',
+            :httpd_ports_file   => '/etc/apache2/ports.conf',
+            :wsgi_script_path   => '/usr/lib/cgi-bin/ceilometer',
+            :wsgi_script_source => '/usr/lib/python2.7/dist-packages/ceilometer/api/app.wsgi'
+          }
+        when 'RedHat'
+          {
+            :httpd_service_name => 'httpd',
+            :httpd_ports_file   => '/etc/httpd/conf/ports.conf',
+            :wsgi_script_path   => '/var/www/cgi-bin/ceilometer',
+            :wsgi_script_source => '/usr/lib/python2.7/site-packages/ceilometer/api/app.wsgi'
+          }
+        end
+      end
 
-    let :platform_parameters do
-      {
-        :httpd_service_name => 'apache2',
-        :httpd_ports_file   => '/etc/apache2/ports.conf',
-        :wsgi_script_path   => '/usr/lib/cgi-bin/ceilometer',
-        :wsgi_script_source => '/usr/lib/python2.7/dist-packages/ceilometer/api/app.wsgi'
-      }
+      it_behaves_like 'apache serving ceilometer with mod_wsgi'
     end
-
-    it_configures 'apache serving ceilometer with mod_wsgi'
   end
+
 end