3 require 'puppet/provider/keystone_service/openstack'
5 provider_class = Puppet::Type.type(:keystone_service).provider(:openstack)
7 describe provider_class do
9 describe 'when creating a service' do
11 let(:service_attrs) do
14 :description => 'foo',
19 'password' => 'abc123',
20 'tenant_name' => 'foo',
21 'auth_url' => 'http://127.0.0.1:5000/v2.0',
27 Puppet::Type::Keystone_service.new(service_attrs)
31 provider_class.new(resource)
35 it 'creates a service' do
36 provider.class.stubs(:openstack)
37 .with('service', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
38 .returns('"ID","Name","Type","Description"
39 "1cb05cfed7c24279be884ba4f6520262","foo","foo","foo"
41 provider.class.stubs(:openstack)
42 .with('service', 'create', '--format', 'shell', [['foo', '--description', 'foo', '--type', 'foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
43 .returns('description="foo"
45 id="8f0dd4c0abc44240998fbb3f5089ecbf"
50 expect(provider.exists?).to be_truthy
54 describe '#destroy' do
55 it 'destroys a service' do
56 provider.class.stubs(:openstack)
57 .with('service', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
58 .returns('"ID","Name","Type","Description"')
59 provider.class.stubs(:openstack)
60 .with('service', 'delete', [['foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
62 expect(provider.exists?).to be_falsey
68 context 'when service exists' do
71 provider.class.stubs(:openstack)
72 .with('service', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
73 .returns('"ID","Name","Type","Description"
74 "1cb05cfed7c24279be884ba4f6520262","foo","foo","foo"
76 response = provider.exists?
79 it { is_expected.to be_truthy }
82 context 'when service does not exist' do
85 provider.class.stubs(:openstack)
86 .with('service', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
87 .returns('"ID","Name","Type","Description"')
88 response = provider.exists?
91 it { is_expected.to be_falsey }
95 describe '#instances' do
96 it 'finds every service' do
97 provider.class.stubs(:openstack)
98 .with('service', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
99 .returns('"ID","Name","Type","Description"
100 "1cb05cfed7c24279be884ba4f6520262","foo","foo","foo"
102 instances = provider.instances
103 expect(instances.count).to eq(1)