nova_manage_spec.rb 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. require 'puppet'
  2. require 'puppet/provider/nova_floating/nova_manage'
  3. require 'tempfile'
  4. provider_class = Puppet::Type.type(:nova_floating).provider(:nova_manage)
  5. describe provider_class do
  6. let :range_attrs do
  7. {
  8. :ensure => 'present',
  9. :pool => 'nova',
  10. :network => '10.1.0.1-10.1.0.2',
  11. }
  12. end
  13. let :network_attrs do
  14. {
  15. :ensure => 'present',
  16. :pool => 'nova',
  17. :network => '11.1.0.0/30'
  18. }
  19. end
  20. let :resource_range do
  21. Puppet::Type::Nova_floating.new(range_attrs)
  22. end
  23. let :resource_network do
  24. Puppet::Type::Nova_floating.new(network_attrs)
  25. end
  26. let :provider_range do
  27. provider_class.new(resource_range)
  28. end
  29. let :provider_network do
  30. provider_class.new(resource_network)
  31. end
  32. shared_examples 'nova_floating' do
  33. describe '#exists?' do
  34. it 'should check if ips of a network are not existing' do
  35. provider_network.expects(:nova_manage).with('floating', 'list').returns('No floating IP addresses have been defined.')
  36. expect(provider_network.exists?).to be_falsey
  37. end
  38. it 'should check if ips of a network are existing' do
  39. provider_network.expects(:nova_manage).with('floating', 'list').returns('None 11.1.0.1 None nova br-ex\nNone 11.1.0.2 None nova br-ex')
  40. expect(provider_network.exists?).to be_truthy
  41. end
  42. it 'should check if ips are not existing' do
  43. provider_range.expects(:nova_manage).with('floating', 'list').returns('No floating IP addresses have been defined.')
  44. expect(provider_range.exists?).to be_falsey
  45. end
  46. it 'should check if ips are existing' do
  47. provider_range.expects(:nova_manage).with('floating', 'list').returns('None 10.1.0.1 None nova br-ex\nNone 10.1.0.2 None nova br-ex')
  48. expect(provider_range.exists?).to be_truthy
  49. end
  50. end
  51. describe '#create' do
  52. it 'should check if ips of network were created' do
  53. provider_network.expects(:nova_manage).with('floating', 'create', '--pool', 'nova', '11.1.0.0/30').returns('None 11.1.0.1 None nova br-ex\nNone 11.1.0.2 None nova br-ex')
  54. expect(provider_network.create).to be_truthy
  55. end
  56. it 'should check if ips of range were created' do
  57. provider_range.stubs(:nova_manage).with('floating', 'create', '10.1.0.1')
  58. provider_range.stubs(:nova_manage).with('floating', 'create', '10.1.0.2')
  59. provider_range.stubs(:nova_manage).with('floating', 'list').returns('None 10.1.0.1 None nova br-ex\nNone 10.1.0.2 None nova br-ex')
  60. expect(provider_range.create).to be_truthy
  61. end
  62. end
  63. describe '#destroy' do
  64. it 'should check if ips of network were deleted' do
  65. provider_network.expects(:nova_manage).with('floating', 'delete', '11.1.0.0/30').returns('No floating IP addresses have been defined.')
  66. expect(provider_network.destroy).to be_truthy
  67. end
  68. it 'should check if ips of range were deleted' do
  69. provider_range.stubs(:nova_manage).with('floating', 'delete', '10.1.0.1')
  70. provider_range.expects(:nova_manage).with('floating', 'list').returns('None 10.1.0.2 None nova br-ex')
  71. provider_range.stubs(:nova_manage).with('floating', 'delete', '10.1.0.2')
  72. provider_range.expects(:nova_manage).with('floating', 'list').returns('No floating IP addresses have been defined.')
  73. expect(provider_range.destroy).to be_truthy
  74. end
  75. end
  76. end
  77. it_behaves_like('nova_floating')
  78. end