nova_spec.rb 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. require 'puppet'
  2. require 'puppet/provider/nova_security_group/nova'
  3. require 'tempfile'
  4. provider_class = Puppet::Type.type(:nova_security_group).provider(:nova)
  5. describe provider_class do
  6. let :secgroup_attrs do
  7. {
  8. :name => "scg0",
  9. :description => "Security Group",
  10. }
  11. end
  12. let :resource do
  13. Puppet::Type::Nova_security_group.new(secgroup_attrs)
  14. end
  15. let :provider do
  16. provider_class.new(resource)
  17. end
  18. shared_examples "nova_security_group" do
  19. describe "#exists?" do
  20. it 'should check non-existing security group' do
  21. output = <<-EOT
  22. +--------------------------------------+---------+------------------------+
  23. | Id | Name | Description |
  24. +--------------------------------------+---------+------------------------+
  25. | f630dd92-3ff7-49bc-b012-b211451aa418 | default | Default security group |
  26. +--------------------------------------+---------+------------------------+
  27. EOT
  28. provider.expects(:auth_nova).with('secgroup-list').returns(output)
  29. expect(provider.exists?).to be_falsey
  30. end
  31. it 'should check existing security group' do
  32. output = <<-EOT
  33. +--------------------------------------+------+----------------+
  34. | Id | Name | Description |
  35. +--------------------------------------+------+----------------+
  36. | f630dd92-3ff7-49bc-b012-b211451aa419 | scg0 | Security Group |
  37. +--------------------------------------+------+----------------+
  38. EOT
  39. provider.expects(:auth_nova).with('secgroup-list').returns(output)
  40. expect(provider.exists?).to be_truthy
  41. end
  42. end
  43. describe "#create" do
  44. it 'should create security group' do
  45. output = <<-EOT
  46. +--------------------------------------+------+----------------+
  47. | Id | Name | Description |
  48. +--------------------------------------+------+----------------+
  49. | f630dd92-3ff7-49bc-b012-b211451aa419 | scg0 | Security Group |
  50. +--------------------------------------+------+----------------+
  51. EOT
  52. provider.expects(:auth_nova).with('secgroup-create', 'scg0', 'Security Group').returns(output)
  53. expect(provider.create).to be_truthy
  54. end
  55. end
  56. describe "#destroy" do
  57. it 'should destroy security group' do
  58. output = <<-EOT
  59. +--------------------------------------+------+----------------+
  60. | Id | Name | Description |
  61. +--------------------------------------+------+----------------+
  62. | f630dd92-3ff7-49bc-b012-b211451aa419 | scg0 | Security Group |
  63. +--------------------------------------+------+----------------+
  64. EOT
  65. provider.expects(:auth_nova).with('secgroup-delete', 'scg0').returns(output)
  66. expect(provider.destroy).to be_truthy
  67. end
  68. end
  69. end
  70. it_behaves_like('nova_security_group')
  71. end