diff --git a/manifests/init.pp b/manifests/init.pp index c82b71ad4..9dfd5e7e8 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -813,6 +813,7 @@ class keystone( } if $service_name == $::keystone::params::service_name { + $service_name_real = $::keystone::params::service_name if $validate_service { if $validate_auth_url { $v_auth_url = $validate_auth_url @@ -845,6 +846,7 @@ class keystone( } } } elsif $service_name == 'httpd' { + include ::apache::params class { '::keystone::service': ensure => 'stopped', service_name => $::keystone::params::service_name, @@ -852,6 +854,7 @@ class keystone( provider => $service_provider, validate => false, } + $service_name_real = $::apache::params::service_name } else { fail('Invalid service_name. Either keystone/openstack-keystone for running as a standalone service, or httpd for being run by a httpd server') } @@ -957,7 +960,7 @@ class keystone( if $manage_service and $enabled { exec { 'restart_keystone': path => ['/usr/sbin', '/usr/bin', '/sbin', '/bin/'], - command => "service ${service_name} restart", + command => "service ${service_name_real} restart", refreshonly => true, } } diff --git a/spec/classes/keystone_spec.rb b/spec/classes/keystone_spec.rb index c97241fa2..497598210 100644 --- a/spec/classes/keystone_spec.rb +++ b/spec/classes/keystone_spec.rb @@ -854,20 +854,37 @@ describe 'keystone' do end end - describe 'when configuring default domain' do + shared_examples_for "when configuring default domain" do describe 'with default config' do let :params do default_params end it { is_expected.to_not contain_exec('restart_keystone') } end - describe 'with default domain and service is managed and enabled' do + describe 'with default domain and eventlet service is managed and enabled' do let :params do default_params.merge({ 'default_domain'=> 'test', }) end - it { is_expected.to contain_exec('restart_keystone') } + it { is_expected.to contain_exec('restart_keystone').with( + 'command' => "service #{platform_parameters[:service_name]} restart", + ) } + it { is_expected.to contain_anchor('default_domain_created') } + end + describe 'with default domain and wsgi service is managed and enabled' do + let :pre_condition do + 'include ::apache' + end + let :params do + default_params.merge({ + 'default_domain'=> 'test', + 'service_name' => 'httpd', + }) + end + it { is_expected.to contain_exec('restart_keystone').with( + 'command' => "service #{platform_parameters[:httpd_service_name]} restart", + ) } it { is_expected.to contain_anchor('default_domain_created') } end describe 'with default domain and service is not managed' do @@ -892,11 +909,13 @@ describe 'keystone' do let :platform_parameters do { - :service_name => 'openstack-keystone' + :service_name => 'openstack-keystone', + :httpd_service_name => 'httpd', } end it_configures 'when using default class parameters for httpd' + it_configures 'when configuring default domain' end context 'on Debian platforms' do @@ -910,10 +929,12 @@ describe 'keystone' do let :platform_parameters do { - :service_name => 'keystone' + :service_name => 'keystone', + :httpd_service_name => 'apache2', } end it_configures 'when using default class parameters for httpd' + it_configures 'when configuring default domain' end end