nova_placement_spec.rb 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. require 'spec_helper'
  2. describe 'nova::placement' do
  3. let :default_params do
  4. { :auth_type => 'password',
  5. :project_name => 'services',
  6. :project_domain_name => 'Default',
  7. :os_region_name => 'RegionOne',
  8. :username => 'placement',
  9. :user_domain_name => 'Default',
  10. :auth_url => 'http://127.0.0.1:35357/v3',
  11. }
  12. end
  13. let :params do
  14. { :password => 's3cr3t' }
  15. end
  16. shared_examples 'nova::placement' do
  17. context 'with required parameters' do
  18. it 'configures [placement] parameters in nova.conf' do
  19. is_expected.to contain_nova_config('placement/password').with_value(params[:password]).with_secret(true)
  20. is_expected.to contain_nova_config('placement/auth_type').with_value(default_params[:auth_type])
  21. is_expected.to contain_nova_config('placement/project_name').with_value(default_params[:project_name])
  22. is_expected.to contain_nova_config('placement/project_domain_name').with_value(default_params[:project_domain_name])
  23. is_expected.to contain_nova_config('placement/os_region_name').with_value(default_params[:os_region_name])
  24. is_expected.to contain_nova_config('placement/os_interface').with_value('<SERVICE DEFAULT>')
  25. is_expected.to contain_nova_config('placement/username').with_value(default_params[:username])
  26. is_expected.to contain_nova_config('placement/user_domain_name').with_value(default_params[:user_domain_name])
  27. is_expected.to contain_nova_config('placement/auth_url').with_value(default_params[:auth_url])
  28. end
  29. end
  30. context 'when overriding class parameters' do
  31. before do
  32. params.merge!(
  33. :auth_type => 'password',
  34. :project_name => 'service',
  35. :project_domain_name => 'default',
  36. :os_region_name => 'RegionTwo',
  37. :os_interface => 'internal',
  38. :username => 'placement2',
  39. :user_domain_name => 'default',
  40. :auth_url => 'https://127.0.0.1:35357/v3',
  41. )
  42. end
  43. it 'configures [placement] parameters in nova.conf' do
  44. is_expected.to contain_nova_config('placement/password').with_value(params[:password]).with_secret(true)
  45. is_expected.to contain_nova_config('placement/auth_type').with_value(params[:auth_type])
  46. is_expected.to contain_nova_config('placement/project_name').with_value(params[:project_name])
  47. is_expected.to contain_nova_config('placement/project_domain_name').with_value(params[:project_domain_name])
  48. is_expected.to contain_nova_config('placement/os_region_name').with_value(params[:os_region_name])
  49. is_expected.to contain_nova_config('placement/os_interface').with_value(params[:os_interface])
  50. is_expected.to contain_nova_config('placement/username').with_value(params[:username])
  51. is_expected.to contain_nova_config('placement/user_domain_name').with_value(params[:user_domain_name])
  52. is_expected.to contain_nova_config('placement/auth_url').with_value(params[:auth_url])
  53. end
  54. end
  55. end
  56. on_supported_os({
  57. :supported_os => OSDefaults.get_supported_os
  58. }).each do |os,facts|
  59. context "on #{os}" do
  60. let (:facts) do
  61. facts.merge!(OSDefaults.get_facts())
  62. end
  63. it_behaves_like 'nova::placement'
  64. end
  65. end
  66. end