openstack_spec.rb 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. require 'puppet'
  2. require 'spec_helper'
  3. require 'puppet/provider/nova_service/openstack'
  4. provider_class = Puppet::Type.type(:nova_service).provider(:openstack)
  5. describe provider_class do
  6. shared_examples 'authenticated with environment variables' do
  7. ENV['OS_USERNAME'] = 'test'
  8. ENV['OS_PASSWORD'] = 'abc123'
  9. ENV['OS_PROJECT_NAME'] = 'test'
  10. ENV['OS_AUTH_URL'] = 'http://127.0.0.1:35357/v3'
  11. end
  12. describe 'managing nova services' do
  13. let(:service_attrs) do
  14. {
  15. :name => 'myhost',
  16. :ensure => 'present',
  17. :service_name => ['waffles'],
  18. #:ids => ['1']
  19. }
  20. end
  21. let(:service_attrs_without_name) do
  22. {
  23. :name => 'myhost',
  24. :ensure => 'absent',
  25. }
  26. end
  27. let(:resource) do
  28. Puppet::Type::Nova_service.new(service_attrs)
  29. end
  30. let(:provider) do
  31. provider_class.new(resource)
  32. end
  33. it_behaves_like 'authenticated with environment variables' do
  34. describe '#instances' do
  35. it 'finds existing services' do
  36. provider_class.expects(:openstack)
  37. .with('compute service', 'list', '--quiet', '--format', 'csv', [])
  38. .returns('"Id","Binary","Host","Zone","Status","State","Updated At"
  39. "1","waffles","myhost","internal","enabled","down","2016-01-01T12:00:00.000000"')
  40. instances = provider_class.instances
  41. expect(instances.count).to eq(1)
  42. end
  43. end
  44. describe '#destroy' do
  45. it 'destroys a service' do
  46. provider.class.stubs(:openstack)
  47. .with('compute service', 'delete', [])
  48. provider.destroy
  49. expect(provider.exists?).to be_falsey
  50. end
  51. end
  52. end
  53. end
  54. end