nova_keystone_auth_placement_spec.rb 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. require 'spec_helper'
  2. describe 'nova::keystone::auth_placement' do
  3. let :params do
  4. {:password => 'placement_password'}
  5. end
  6. let :default_params do
  7. { :auth_name => 'placement',
  8. :service_name => 'placement',
  9. :region => 'RegionOne',
  10. :tenant => 'services',
  11. :email => 'placement@localhost',
  12. :public_url => 'http://127.0.0.1/placement',
  13. :internal_url => 'http://127.0.0.1/placement',
  14. :admin_url => 'http://127.0.0.1/placement' }
  15. end
  16. context 'with default parameters' do
  17. it { is_expected.to contain_keystone_user('placement').with(
  18. :ensure => 'present',
  19. :password => 'placement_password'
  20. ) }
  21. it { is_expected.to contain_keystone_user_role('placement@services').with(
  22. :ensure => 'present',
  23. :roles => ['admin']
  24. )}
  25. it { is_expected.to contain_keystone_service('placement::placement').with(
  26. :ensure => 'present',
  27. :description => 'Openstack Placement Service'
  28. )}
  29. it { is_expected.to contain_keystone_endpoint('RegionOne/placement::placement').with(
  30. :ensure => 'present',
  31. :public_url => 'http://127.0.0.1/placement',
  32. :admin_url => 'http://127.0.0.1/placement',
  33. :internal_url => 'http://127.0.0.1/placement'
  34. )}
  35. end
  36. context 'when setting auth name' do
  37. before do
  38. params.merge!( :auth_name => 'foo' )
  39. end
  40. it { is_expected.to contain_keystone_user('foo').with(
  41. :ensure => 'present',
  42. :password => 'placement_password'
  43. ) }
  44. it { is_expected.to contain_keystone_user_role('foo@services').with(
  45. :ensure => 'present',
  46. :roles => ['admin']
  47. )}
  48. it { is_expected.to contain_keystone_service('placement::placement').with(
  49. :ensure => 'present',
  50. :description => 'Openstack Placement Service'
  51. )}
  52. end
  53. context 'when overriding endpoint parameters' do
  54. before do
  55. params.merge!(
  56. :region => 'RegionTwo',
  57. :public_url => 'https://10.0.0.1:9778',
  58. :internal_url => 'https://10.0.0.3:9778',
  59. :admin_url => 'https://10.0.0.2:9778',
  60. )
  61. end
  62. it { is_expected.to contain_keystone_endpoint('RegionTwo/placement::placement').with(
  63. :ensure => 'present',
  64. :public_url => params[:public_url],
  65. :internal_url => params[:internal_url],
  66. :admin_url => params[:admin_url]
  67. )}
  68. end
  69. describe 'when disabling endpoint configuration' do
  70. before do
  71. params.merge!( :configure_endpoint => false )
  72. end
  73. it { is_expected.to_not contain_keystone_endpoint('RegionOne/placement::placement') }
  74. end
  75. describe 'when disabling user configuration' do
  76. before do
  77. params.merge!( :configure_user => false )
  78. end
  79. it { is_expected.to_not contain_keystone_user('placement') }
  80. it { is_expected.to contain_keystone_user_role('placement@services') }
  81. it { is_expected.to contain_keystone_service('placement::placement').with(
  82. :ensure => 'present',
  83. :description => 'Openstack Placement Service'
  84. )}
  85. end
  86. describe 'when disabling user and user role configuration' do
  87. let :params do
  88. {
  89. :configure_user => false,
  90. :configure_user_role => false,
  91. :password => 'placement_password'
  92. }
  93. end
  94. it { is_expected.to_not contain_keystone_user('placement') }
  95. it { is_expected.to_not contain_keystone_user_role('placement@services') }
  96. it { is_expected.to contain_keystone_service('placement::placement').with(
  97. :ensure => 'present',
  98. :description => 'Openstack Placement Service'
  99. )}
  100. end
  101. describe 'when configuring nova-placement and the keystone endpoint' do
  102. let :pre_condition do
  103. "class { '::nova::keystone::authtoken':
  104. password => 'secrete',
  105. }
  106. class { 'nova::api':}
  107. include nova"
  108. end
  109. let :facts do
  110. @default_facts.merge({ :osfamily => "Debian"})
  111. end
  112. let :params do
  113. {
  114. :password => 'test'
  115. }
  116. end
  117. end
  118. describe 'when overriding service names' do
  119. let :params do
  120. {
  121. :service_name => 'nova_service',
  122. :password => 'placement_password'
  123. }
  124. end
  125. it { is_expected.to contain_keystone_user('placement') }
  126. it { is_expected.to contain_keystone_user_role('placement@services') }
  127. it { is_expected.to contain_keystone_service('nova_service::placement') }
  128. it { is_expected.to contain_keystone_endpoint('RegionOne/nova_service::placement') }
  129. end
  130. end