3 require 'puppet/provider/keystone_tenant/openstack'
5 provider_class = Puppet::Type.type(:keystone_tenant).provider(:openstack)
7 describe provider_class do
9 describe 'when updating a tenant' 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_tenant.new(tenant_attrs)
31 provider_class.new(resource)
35 it 'creates a tenant' do
36 provider.class.stubs(:openstack)
37 .with('project', '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","Description","Enabled"
39 "1cb05cfed7c24279be884ba4f6520262","foo","foo",True
41 provider.class.stubs(:openstack)
42 .with('project', 'create', '--format', 'shell', [['foo', '--enable', '--description', '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"
48 expect(provider.exists?).to be_truthy
52 describe '#destroy' do
53 it 'destroys a tenant' do
54 provider.class.stubs(:openstack)
55 .with('project', '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']])
56 .returns('"ID","Name","Description","Enabled"')
57 provider.class.stubs(:openstack)
58 .with('project', 'delete', [['foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']])
60 expect(provider.exists?).to be_falsey
66 context 'when tenant exists' do
69 provider.class.stubs(:openstack)
70 .with('project', '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']])
71 .returns('"ID","Name","Description","Enabled"
72 "1cb05cfed7c24279be884ba4f6520262","foo","foo",True
74 response = provider.exists?
77 it { is_expected.to be_truthy }
80 context 'when tenant does not exist' do
83 provider.class.stubs(:openstack)
84 .with('project', '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']])
85 .returns('"ID","Name","Description","Enabled"')
86 response = provider.exists?
89 it { is_expected.to be_falsey }
93 describe '#instances' do
94 it 'finds every tenant' do
95 provider.class.stubs(:openstack)
96 .with('project', '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']])
97 .returns('"ID","Name","Description","Enabled"
98 "1cb05cfed7c24279be884ba4f6520262","foo","foo",True
100 instances = provider.instances
101 expect(instances.count).to eq(1)