nova_spec.rb 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. require 'puppet'
  2. require 'puppet/provider/nova_network/nova'
  3. require 'tempfile'
  4. provider_class = Puppet::Type.type(:nova_network).provider(:nova)
  5. describe provider_class do
  6. let :net_attrs do
  7. {
  8. :network => '10.20.0.0/16',
  9. :label => 'novanetwork',
  10. :ensure => 'present',
  11. }
  12. end
  13. let :resource do
  14. Puppet::Type::Nova_network.new(net_attrs)
  15. end
  16. let :provider do
  17. provider_class.new(resource)
  18. end
  19. shared_examples 'nova_network' do
  20. describe '#exists?' do
  21. it 'should check non-existsing network' do
  22. provider.expects(:auth_nova).with("network-list")
  23. .returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-884b30e9acbd | novanetwork | 10.0.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
  24. ')
  25. expect(provider.exists?).to be_falsey
  26. end
  27. it 'should check existsing network' do
  28. provider.expects(:auth_nova).with("network-list")
  29. .returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-884b30e9acbd | novanetwork | 10.20.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
  30. ')
  31. expect(provider.exists?).to be_truthy
  32. end
  33. end
  34. describe '#create' do
  35. it 'should create network' do
  36. provider.expects(:auth_nova).with("network-create", ['novanetwork', '--fixed-range-v4', '10.20.0.0/16'] )
  37. .returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n| 703edc62-36ab-4c41-9d73-88sdfsdfsdfsd | nova-network | 10.20.0.0/16 |\n+--------------------------------------+-------------+-------------+\n"
  38. ')
  39. provider.create
  40. end
  41. end
  42. describe '#destroy' do
  43. it 'should destroy network' do
  44. resource[:ensure] = :absent
  45. provider.expects(:auth_nova).with("network-delete", "10.20.0.0/16")
  46. .returns('"+--------------------------------------+-------------+-------------+\n| ID | Label | Cidr |\n+--------------------------------------+-------------+-------------+\n
  47. ')
  48. provider.destroy
  49. end
  50. end
  51. end
  52. it_behaves_like('nova_network')
  53. end