nova_conductor_spec.rb 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. require 'spec_helper'
  2. describe 'nova::conductor' do
  3. let :pre_condition do
  4. 'include nova'
  5. end
  6. shared_examples 'nova-conductor' do
  7. it { is_expected.to contain_package('nova-conductor').with(
  8. :name => platform_params[:conductor_package_name],
  9. :ensure => 'present'
  10. ) }
  11. it { is_expected.to contain_service('nova-conductor').with(
  12. :name => platform_params[:conductor_service_name],
  13. :hasstatus => 'true',
  14. :ensure => 'running'
  15. )}
  16. context 'with manage_service as false' do
  17. let :params do
  18. { :enabled => true,
  19. :manage_service => false
  20. }
  21. end
  22. it { is_expected.to contain_service('nova-conductor').without_ensure }
  23. end
  24. context 'with package version' do
  25. let :params do
  26. { :ensure_package => '2012.1-2' }
  27. end
  28. it { is_expected.to contain_package('nova-conductor').with(
  29. :ensure => params[:ensure_package]
  30. )}
  31. end
  32. context 'with overriden workers parameter' do
  33. let :params do
  34. {:workers => '5' }
  35. end
  36. it { is_expected.to contain_nova_config('conductor/workers').with_value('5') }
  37. end
  38. context 'with default enable_new_services parameter' do
  39. it { is_expected.to contain_nova_config('DEFAULT/enable_new_services').with_value('<SERVICE DEFAULT>') }
  40. end
  41. context 'with enable_new_services parameter set to false' do
  42. let :params do
  43. { :enable_new_services => false }
  44. end
  45. it { is_expected.to contain_nova_config('DEFAULT/enable_new_services').with_value(false) }
  46. end
  47. context 'with default database parameters' do
  48. let :pre_condition do
  49. "include nova"
  50. end
  51. it { is_expected.to_not contain_nova_config('database/connection') }
  52. it { is_expected.to_not contain_nova_config('database/slave_connection') }
  53. it { is_expected.to_not contain_nova_config('database/idle_timeout').with_value('<SERVICE DEFAULT>') }
  54. end
  55. context 'with overridden database parameters' do
  56. let :pre_condition do
  57. "class { 'nova':
  58. database_connection => 'mysql://user:pass@db/db',
  59. slave_connection => 'mysql://user:pass@slave/db',
  60. database_idle_timeout => '30',
  61. }
  62. "
  63. end
  64. it { is_expected.to contain_nova_config('database/connection').with_value('mysql://user:pass@db/db').with_secret(true) }
  65. it { is_expected.to contain_nova_config('database/slave_connection').with_value('mysql://user:pass@slave/db').with_secret(true) }
  66. it { is_expected.to contain_nova_config('database/idle_timeout').with_value('30') }
  67. end
  68. end
  69. on_supported_os({
  70. :supported_os => OSDefaults.get_supported_os
  71. }).each do |os,facts|
  72. context "on #{os}" do
  73. let (:facts) do
  74. facts.merge!(OSDefaults.get_facts())
  75. end
  76. let (:platform_params) do
  77. case facts[:osfamily]
  78. when 'Debian'
  79. { :conductor_package_name => 'nova-conductor',
  80. :conductor_service_name => 'nova-conductor' }
  81. when 'RedHat'
  82. { :conductor_package_name => 'openstack-nova-conductor',
  83. :conductor_service_name => 'openstack-nova-conductor' }
  84. end
  85. end
  86. it_configures 'nova-conductor'
  87. end
  88. end
  89. end