nova_ironic_common_spec.rb 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. require 'spec_helper'
  2. describe 'nova::ironic::common' do
  3. shared_examples_for 'nova-ironic-common' do
  4. context 'with default parameters' do
  5. it 'configures ironic in nova.conf' do
  6. is_expected.to contain_nova_config('ironic/auth_plugin').with_value('password')
  7. is_expected.to contain_nova_config('ironic/username').with_value('admin')
  8. is_expected.to contain_nova_config('ironic/password').with_value('ironic')
  9. is_expected.to contain_nova_config('ironic/auth_url').with_value('http://127.0.0.1:35357/')
  10. is_expected.to contain_nova_config('ironic/project_name').with_value('services')
  11. is_expected.to contain_nova_config('ironic/api_endpoint').with_value('http://127.0.0.1:6385/v1')
  12. is_expected.to contain_nova_config('ironic/api_max_retries').with('value' => '<SERVICE DEFAULT>')
  13. is_expected.to contain_nova_config('ironic/api_retry_interval').with('value' => '<SERVICE DEFAULT>')
  14. is_expected.to contain_nova_config('ironic/admin_username').with_value('admin')
  15. is_expected.to contain_nova_config('ironic/admin_password').with_value('ironic')
  16. is_expected.to contain_nova_config('ironic/admin_url').with_value('http://127.0.0.1:35357/')
  17. is_expected.to contain_nova_config('ironic/admin_tenant_name').with_value('services')
  18. end
  19. end
  20. context 'with parameters' do
  21. let :params do
  22. {
  23. :username => 'ironic',
  24. :password => 's3cr3t',
  25. :auth_url => 'http://10.0.0.10:35357/',
  26. :project_name => 'services2',
  27. :api_endpoint => 'http://10.0.0.10:6385/v1',
  28. :api_max_retries => 60,
  29. :api_retry_interval => 2,
  30. }
  31. end
  32. it 'configures ironic in nova.conf' do
  33. is_expected.to contain_nova_config('ironic/auth_plugin').with_value('password')
  34. is_expected.to contain_nova_config('ironic/username').with_value('ironic')
  35. is_expected.to contain_nova_config('ironic/password').with_value('s3cr3t')
  36. is_expected.to contain_nova_config('ironic/auth_url').with_value('http://10.0.0.10:35357/')
  37. is_expected.to contain_nova_config('ironic/project_name').with_value('services2')
  38. is_expected.to contain_nova_config('ironic/api_endpoint').with_value('http://10.0.0.10:6385/v1')
  39. is_expected.to contain_nova_config('ironic/api_max_retries').with('value' => '60')
  40. is_expected.to contain_nova_config('ironic/api_retry_interval').with('value' => '2')
  41. is_expected.to contain_nova_config('ironic/admin_username').with_value('ironic')
  42. is_expected.to contain_nova_config('ironic/admin_password').with_value('s3cr3t')
  43. is_expected.to contain_nova_config('ironic/admin_url').with_value('http://10.0.0.10:35357/')
  44. is_expected.to contain_nova_config('ironic/admin_tenant_name').with_value('services2')
  45. end
  46. end
  47. context 'with deprecated parameters' do
  48. let :params do
  49. {
  50. :admin_username => 'ironic',
  51. :admin_password => 's3cr3t',
  52. :admin_url => 'http://10.0.0.10:35357/v2.0',
  53. :admin_tenant_name => 'services2',
  54. :api_endpoint => 'http://10.0.0.10:6385/v1',
  55. }
  56. end
  57. it 'configures ironic in nova.conf' do
  58. is_expected.to contain_nova_config('ironic/username').with_value('ironic')
  59. is_expected.to contain_nova_config('ironic/password').with_value('s3cr3t')
  60. is_expected.to contain_nova_config('ironic/auth_url').with_value('http://10.0.0.10:35357/v2.0')
  61. is_expected.to contain_nova_config('ironic/project_name').with_value('services2')
  62. is_expected.to contain_nova_config('ironic/api_endpoint').with_value('http://10.0.0.10:6385/v1')
  63. is_expected.to contain_nova_config('ironic/admin_username').with_value('ironic')
  64. is_expected.to contain_nova_config('ironic/admin_password').with_value('s3cr3t')
  65. is_expected.to contain_nova_config('ironic/admin_url').with_value('http://10.0.0.10:35357/v2.0')
  66. is_expected.to contain_nova_config('ironic/admin_tenant_name').with_value('services2')
  67. end
  68. end
  69. end
  70. on_supported_os({
  71. :supported_os => OSDefaults.get_supported_os
  72. }).each do |os,facts|
  73. context "on #{os}" do
  74. let (:facts) do
  75. facts.merge!(OSDefaults.get_facts)
  76. end
  77. it_configures 'nova-ironic-common'
  78. end
  79. end
  80. end