From 4e873d66f6c39df0e40c42dc7419c6de9e0692f8 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 27 Sep 2021 08:51:57 +0900 Subject: [PATCH] Do not test detail of keystone::resource::service_identity ... but test interfaces of that resource type. This helps us avoid direct breakage caused by any change in puppet-keystone. Change-Id: If58e43c0b031916d3792435d98f3f002da174410 --- spec/classes/glance_keystone_auth_spec.rb | 195 ++++++---------------- 1 file changed, 51 insertions(+), 144 deletions(-) diff --git a/spec/classes/glance_keystone_auth_spec.rb b/spec/classes/glance_keystone_auth_spec.rb index 6569db92..1f29ce93 100644 --- a/spec/classes/glance_keystone_auth_spec.rb +++ b/spec/classes/glance_keystone_auth_spec.rb @@ -1,173 +1,80 @@ +# +# Unit tests for glance::keystone::auth +# + require 'spec_helper' describe 'glance::keystone::auth' do - shared_examples_for 'glance::keystone::auth' do - describe 'with defaults' do - + context 'with default class parameters' do let :params do - {:password => 'pass'} + { :password => 'glance_password' } end - it { is_expected.to contain_keystone_user('glance').with( - :ensure => 'present', - :password => 'pass' - )} - - it { is_expected.to contain_keystone_user_role('glance@services').with( - :ensure => 'present', - :roles => ['admin'] - ) } - - it { is_expected.to contain_keystone_service('glance::image').with( - :ensure => 'present', - :description => 'OpenStack Image Service' - ) } - - it { is_expected.to contain_keystone_endpoint('RegionOne/glance::image').with( - :ensure => 'present', - :public_url => 'http://127.0.0.1:9292', - :admin_url => 'http://127.0.0.1:9292', - :internal_url => 'http://127.0.0.1:9292' - )} - - end - - describe 'when auth_type, password, and service_type are overridden' do - - let :params do - { - :auth_name => 'glancey', - :password => 'password', - :service_type => 'imagey' - } - end - - it { is_expected.to contain_keystone_user('glancey').with( - :ensure => 'present', - :password => 'password' - )} - - it { is_expected.to contain_keystone_user_role('glancey@services').with( - :ensure => 'present', - :roles => ['admin'] - ) } - - it { is_expected.to contain_keystone_service('glance::imagey').with( - :ensure => 'present', - :description => 'OpenStack Image Service' - ) } - - end - - describe 'when overriding endpoint URLs' do - let :params do - { :password => 'passw0rd', - :region => 'RegionTwo', - :public_url => 'https://10.10.10.10:81/v2', - :internal_url => 'https://10.10.10.11:81/v2', - :admin_url => 'https://10.10.10.12:81/v2' } - end - - it { is_expected.to contain_keystone_endpoint('RegionTwo/glance::image').with( - :ensure => 'present', - :public_url => 'https://10.10.10.10:81/v2', - :internal_url => 'https://10.10.10.11:81/v2', - :admin_url => 'https://10.10.10.12:81/v2' + it { is_expected.to contain_keystone__resource__service_identity('glance').with( + :configure_user => true, + :configure_user_role => true, + :configure_endpoint => true, + :service_name => 'glance', + :service_type => 'image', + :service_description => 'OpenStack Image Service', + :region => 'RegionOne', + :auth_name => 'glance', + :password => 'glance_password', + :email => 'glance@localhost', + :tenant => 'services', + :public_url => 'http://127.0.0.1:9292', + :internal_url => 'http://127.0.0.1:9292', + :admin_url => 'http://127.0.0.1:9292', ) } end - describe 'when endpoint is not set' do - + context 'when overriding parameters' do let :params do - { - :configure_endpoint => false, - :password => 'pass', - } - end - - it { is_expected.to_not contain_keystone_endpoint('RegionOne/glance::image') } - end - - describe 'when disabling user configuration' do - let :params do - { - :configure_user => false, - :password => 'pass', - } - end - - it { is_expected.to_not contain_keystone_user('glance') } - - it { is_expected.to contain_keystone_user_role('glance@services') } - - it { is_expected.to contain_keystone_service('glance::image').with( - :ensure => 'present', - :description => 'OpenStack Image Service' - ) } - end - - describe 'when disabling user and user role configuration' do - let :params do - { + { :password => 'glance_password', + :auth_name => 'alt_glance', + :email => 'alt_glance@alt_localhost', + :tenant => 'alt_service', + :configure_endpoint => false, :configure_user => false, :configure_user_role => false, - :password => 'pass', - } + :service_description => 'Alternative OpenStack Image Service', + :service_name => 'alt_service', + :service_type => 'alt_image', + :region => 'RegionTwo', + :public_url => 'https://10.10.10.10:80', + :internal_url => 'http://10.10.10.11:81', + :admin_url => 'http://10.10.10.12:81' } end - it { is_expected.to_not contain_keystone_user('glance') } - - it { is_expected.to_not contain_keystone_user_role('glance@services') } - - it { is_expected.to contain_keystone_service('glance::image').with( - :ensure => 'present', - :description => 'OpenStack Image Service' + it { is_expected.to contain_keystone__resource__service_identity('glance').with( + :configure_user => false, + :configure_user_role => false, + :configure_endpoint => false, + :service_name => 'alt_service', + :service_type => 'alt_image', + :service_description => 'Alternative OpenStack Image Service', + :region => 'RegionTwo', + :auth_name => 'alt_glance', + :password => 'glance_password', + :email => 'alt_glance@alt_localhost', + :tenant => 'alt_service', + :public_url => 'https://10.10.10.10:80', + :internal_url => 'http://10.10.10.11:81', + :admin_url => 'http://10.10.10.12:81', ) } end - - describe 'when configuring glance-api and the keystone endpoint' do - let :pre_condition do - "class { 'glance::api::authtoken': password => 'test' } - include glance::api" - end - - let :params do - { - :password => 'test', - :configure_endpoint => true - } - end - - it { is_expected.to contain_keystone_endpoint('RegionOne/glance::image').that_notifies(["Anchor[glance::service::begin]"]) } - end - - describe 'when overriding service name' do - - let :params do - { - :service_name => 'glance_service', - :password => 'pass' - } - end - - it { is_expected.to contain_keystone_user('glance') } - it { is_expected.to contain_keystone_user_role('glance@services') } - it { is_expected.to contain_keystone_service('glance_service::image') } - it { is_expected.to contain_keystone_endpoint('RegionOne/glance_service::image') } - - end end on_supported_os({ - :supported_os => OSDefaults.get_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 'glance::keystone::auth' + it_behaves_like 'glance::keystone::auth' end end end