nova_network_neutron_spec.rb 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. require 'spec_helper'
  2. describe 'nova::network::neutron' do
  3. let :default_params do
  4. { :neutron_auth_type => 'v3password',
  5. :neutron_url => 'http://127.0.0.1:9696',
  6. :neutron_url_timeout => '30',
  7. :neutron_project_name => 'services',
  8. :neutron_project_domain_name => 'Default',
  9. :neutron_region_name => 'RegionOne',
  10. :neutron_username => 'neutron',
  11. :neutron_user_domain_name => 'Default',
  12. :neutron_auth_url => 'http://127.0.0.1:35357/v3',
  13. :neutron_ovs_bridge => 'br-int',
  14. :neutron_extension_sync_interval => '600',
  15. :firewall_driver => 'nova.virt.firewall.NoopFirewallDriver',
  16. :vif_plugging_is_fatal => true,
  17. :vif_plugging_timeout => '300',
  18. :dhcp_domain => 'novalocal'
  19. }
  20. end
  21. let :params do
  22. { :neutron_password => 's3cr3t' }
  23. end
  24. context 'with required parameters' do
  25. it 'configures neutron endpoint in nova.conf' do
  26. is_expected.to contain_nova_config('neutron/password').with_value(params[:neutron_password]).with_secret(true)
  27. is_expected.to contain_nova_config('DEFAULT/dhcp_domain').with_value(default_params[:dhcp_domain])
  28. is_expected.to contain_nova_config('DEFAULT/use_neutron').with_value(true)
  29. is_expected.to contain_nova_config('neutron/auth_type').with_value(default_params[:neutron_auth_type])
  30. is_expected.to contain_nova_config('neutron/url').with_value(default_params[:neutron_url])
  31. is_expected.to contain_nova_config('neutron/timeout').with_value(default_params[:neutron_url_timeout])
  32. is_expected.to contain_nova_config('neutron/project_name').with_value(default_params[:neutron_project_name])
  33. is_expected.to contain_nova_config('neutron/project_domain_name').with_value(default_params[:neutron_project_domain_name])
  34. is_expected.to contain_nova_config('neutron/region_name').with_value(default_params[:neutron_region_name])
  35. is_expected.to contain_nova_config('neutron/username').with_value(default_params[:neutron_username])
  36. is_expected.to contain_nova_config('neutron/user_domain_name').with_value(default_params[:neutron_user_domain_name])
  37. is_expected.to contain_nova_config('neutron/auth_url').with_value(default_params[:neutron_auth_url])
  38. is_expected.to contain_nova_config('neutron/extension_sync_interval').with_value(default_params[:neutron_extension_sync_interval])
  39. is_expected.to contain_nova_config('neutron/default_tenant_id').with_ensure('absent')
  40. end
  41. it 'configures Nova to use Neutron Bridge Security Groups and Firewall' do
  42. is_expected.to contain_nova_config('DEFAULT/firewall_driver').with_value(default_params[:firewall_driver])
  43. is_expected.to contain_nova_config('neutron/ovs_bridge').with_value(default_params[:neutron_ovs_bridge])
  44. end
  45. it 'configures neutron vif plugging events in nova.conf' do
  46. is_expected.to contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(default_params[:vif_plugging_is_fatal])
  47. is_expected.to contain_nova_config('DEFAULT/vif_plugging_timeout').with_value(default_params[:vif_plugging_timeout])
  48. end
  49. end
  50. context 'when overriding class parameters' do
  51. before do
  52. params.merge!(
  53. :neutron_url => 'http://10.0.0.1:9696',
  54. :neutron_url_timeout => '30',
  55. :neutron_project_name => 'openstack',
  56. :neutron_project_domain_name => 'openstack_domain',
  57. :neutron_region_name => 'RegionTwo',
  58. :neutron_username => 'neutron2',
  59. :neutron_user_domain_name => 'neutron_domain',
  60. :neutron_auth_url => 'http://10.0.0.1:35357/v2',
  61. :firewall_driver => 'nova.virt.firewall.IptablesFirewallDriver',
  62. :neutron_ovs_bridge => 'br-int',
  63. :neutron_extension_sync_interval => '600',
  64. :vif_plugging_is_fatal => false,
  65. :vif_plugging_timeout => '0',
  66. :dhcp_domain => 'foo'
  67. )
  68. end
  69. it 'configures neutron endpoint in nova.conf' do
  70. is_expected.to contain_nova_config('neutron/auth_strategy').with_ensure('absent')
  71. is_expected.to contain_nova_config('neutron/password').with_value(params[:neutron_password]).with_secret(true)
  72. is_expected.to contain_nova_config('DEFAULT/dhcp_domain').with_value(params[:dhcp_domain])
  73. is_expected.to contain_nova_config('neutron/url').with_value(params[:neutron_url])
  74. is_expected.to contain_nova_config('neutron/timeout').with_value(params[:neutron_url_timeout])
  75. is_expected.to contain_nova_config('neutron/project_name').with_value(params[:neutron_project_name])
  76. is_expected.to contain_nova_config('neutron/project_domain_name').with_value(params[:neutron_project_domain_name])
  77. is_expected.to contain_nova_config('neutron/region_name').with_value(params[:neutron_region_name])
  78. is_expected.to contain_nova_config('neutron/username').with_value(params[:neutron_username])
  79. is_expected.to contain_nova_config('neutron/user_domain_name').with_value(params[:neutron_user_domain_name])
  80. is_expected.to contain_nova_config('neutron/auth_url').with_value(params[:neutron_auth_url])
  81. is_expected.to contain_nova_config('neutron/extension_sync_interval').with_value(params[:neutron_extension_sync_interval])
  82. is_expected.to contain_nova_config('neutron/default_tenant_id').with_ensure('absent')
  83. end
  84. it 'configures Nova to use Neutron Security Groups and Firewall' do
  85. is_expected.to contain_nova_config('DEFAULT/firewall_driver').with_value(params[:firewall_driver])
  86. is_expected.to contain_nova_config('neutron/ovs_bridge').with_value(params[:neutron_ovs_bridge])
  87. end
  88. it 'configures neutron vif plugging events in nova.conf' do
  89. is_expected.to contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(params[:vif_plugging_is_fatal])
  90. is_expected.to contain_nova_config('DEFAULT/vif_plugging_timeout').with_value(params[:vif_plugging_timeout])
  91. end
  92. end
  93. context 'with deprecated class parameters' do
  94. before do
  95. params.merge!(
  96. :neutron_url => 'http://10.0.0.1:9696',
  97. :neutron_url_timeout => '30',
  98. :neutron_admin_tenant_name => 'openstack',
  99. :neutron_default_tenant_id => 'default',
  100. :neutron_region_name => 'RegionTwo',
  101. :neutron_admin_username => 'neutron2',
  102. :neutron_admin_auth_url => 'http://10.0.0.1:35357',
  103. :firewall_driver => 'nova.virt.firewall.IptablesFirewallDriver',
  104. :neutron_ovs_bridge => 'br-int',
  105. :neutron_extension_sync_interval => '600',
  106. :vif_plugging_is_fatal => false,
  107. :vif_plugging_timeout => '0',
  108. :dhcp_domain => 'foo',
  109. :neutron_auth_plugin => 'oldparam',
  110. )
  111. end
  112. it 'configures neutron endpoint in nova.conf' do
  113. is_expected.to contain_nova_config('neutron/auth_strategy').with_ensure('absent')
  114. is_expected.to contain_nova_config('neutron/password').with_value(params[:neutron_password]).with_secret(true)
  115. is_expected.to contain_nova_config('DEFAULT/dhcp_domain').with_value(params[:dhcp_domain])
  116. is_expected.to contain_nova_config('neutron/url').with_value(params[:neutron_url])
  117. is_expected.to contain_nova_config('neutron/timeout').with_value(params[:neutron_url_timeout])
  118. is_expected.to contain_nova_config('neutron/project_name').with_value(params[:neutron_admin_tenant_name])
  119. is_expected.to contain_nova_config('neutron/default_tenant_id').with_value(params[:neutron_default_tenant_id])
  120. is_expected.to contain_nova_config('neutron/region_name').with_value(params[:neutron_region_name])
  121. is_expected.to contain_nova_config('neutron/username').with_value(params[:neutron_admin_username])
  122. is_expected.to contain_nova_config('neutron/auth_url').with_value(params[:neutron_admin_auth_url])
  123. is_expected.to contain_nova_config('neutron/extension_sync_interval').with_value(params[:neutron_extension_sync_interval])
  124. is_expected.to contain_nova_config('neutron/auth_type').with_value(params[:neutron_auth_plugin])
  125. end
  126. it 'configures Nova to use Neutron Security Groups and Firewall' do
  127. is_expected.to contain_nova_config('DEFAULT/firewall_driver').with_value(params[:firewall_driver])
  128. is_expected.to contain_nova_config('neutron/ovs_bridge').with_value(params[:neutron_ovs_bridge])
  129. end
  130. it 'configures neutron vif plugging events in nova.conf' do
  131. is_expected.to contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(params[:vif_plugging_is_fatal])
  132. is_expected.to contain_nova_config('DEFAULT/vif_plugging_timeout').with_value(params[:vif_plugging_timeout])
  133. end
  134. end
  135. end