]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Adds ability to override service name for service catalog
authorMike Dorman <mdorman@godaddy.com>
Wed, 13 Aug 2014 15:19:26 +0000 (09:19 -0600)
committerMathieu Gagné <mgagne@iweb.com>
Thu, 21 Aug 2014 13:53:34 +0000 (09:53 -0400)
Instead of forcing the name of the service in the service catalog to
match auth_name, this allows the ability to explicitly set the service
name, spearately from auth_name.
If service_name is not specified, it's value defaults to the value
of auth_name (which maintains the current behavior.)

Closes-bug: #1359755
Change-Id: I66dadaebb526cfae2b6c250b2bef97e1e6d6aafe

manifests/keystone/auth.pp
spec/classes/ceilometer_keystone_auth_spec.rb

index 811bcfbdf464dcbbe4b4a5308628efed7995a379..18f4c4e1e97ac4776ab6be994819432dfdd1e2a5 100644 (file)
@@ -16,6 +16,9 @@
 # [*configure_endpoint*]
 #   Should Ceilometer endpoint be configured? Optional. Defaults to 'true'.
 #
+# [*service_name*]
+#   Name of the service. Optional. Defaults to value of auth_name.
+#
 # [*service_type*]
 #    Type of service. Optional. Defaults to 'metering'.
 #
@@ -71,6 +74,7 @@ class ceilometer::keystone::auth (
   $password           = false,
   $email              = 'ceilometer@localhost',
   $auth_name          = 'ceilometer',
+  $service_name       = undef,
   $service_type       = 'metering',
   $public_address     = '127.0.0.1',
   $admin_address      = '127.0.0.1',
@@ -107,6 +111,12 @@ class ceilometer::keystone::auth (
     $internal_url_real = "${internal_protocol}://${internal_address}:${port}"
   }
 
+  if $service_name {
+    $real_service_name = $service_name
+  } else {
+    $real_service_name = $auth_name
+  }
+
   Keystone_user_role["${auth_name}@${tenant}"] ~>
     Service <| name == 'ceilometer-api' |>
 
@@ -126,13 +136,13 @@ class ceilometer::keystone::auth (
     roles   => ['admin', 'ResellerAdmin'],
     require => Keystone_role['ResellerAdmin'],
   }
-  keystone_service { $auth_name:
+  keystone_service { $real_service_name:
     ensure      => present,
     type        => $service_type,
     description => 'Openstack Metering Service',
   }
   if $configure_endpoint {
-    keystone_endpoint { "${region}/${auth_name}":
+    keystone_endpoint { "${region}/${real_service_name}":
       ensure       => present,
       public_url   => $public_url_real,
       admin_url    => $admin_url_real,
index 15287fc26b1c3e8d859b85fdf22b24d0ae19c0a1..cf06a01d4dcf1f3e2101bcd8194b235f40400394 100644 (file)
@@ -144,10 +144,28 @@ describe 'ceilometer::keystone::auth' do
       end
     end
 
+    context 'when overriding service name' do
+      before do
+        params.merge!({
+          :service_name => 'ceilometer_service'
+        })
+      end
+      it 'configures correct user name' do
+        should contain_keystone_user('ceilometer')
+      end
+      it 'configures correct user role' do
+        should contain_keystone_user_role('ceilometer@services')
+      end
+      it 'configures correct service name' do
+        should contain_keystone_service('ceilometer_service')
+      end
+      it 'configures correct endpoint name' do
+        should contain_keystone_endpoint('RegionOne/ceilometer_service')
+      end
+    end
 
   end
 
-
   context 'on Debian platforms' do
     let :facts do
       { :osfamily => 'Debian' }
@@ -163,4 +181,5 @@ describe 'ceilometer::keystone::auth' do
 
     it_configures 'ceilometer keystone auth'
   end
+
 end