+++ /dev/null
-require 'puppet'
-require 'spec_helper'
-require 'puppet/provider/keystone_tenant/openstack'
-
-provider_class = Puppet::Type.type(:keystone_tenant).provider(:openstack)
-
-describe provider_class do
-
- describe 'when updating a tenant' do
-
- let(:tenant_attrs) do
- {
- :name => 'foo',
- :description => 'foo',
- :ensure => 'present',
- :enabled => 'True',
- :auth => {
- 'username' => 'test',
- 'password' => 'abc123',
- 'tenant_name' => 'foo',
- 'auth_url' => 'http://127.0.0.1:5000/v2.0',
- }
- }
- end
-
- let(:resource) do
- Puppet::Type::Keystone_tenant.new(tenant_attrs)
- end
-
- let(:provider) do
- provider_class.new(resource)
- end
-
- describe '#create' do
- it 'creates a tenant' do
- provider.class.stubs(:openstack)
- .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']])
- .returns('"ID","Name","Description","Enabled"
-"1cb05cfed7c24279be884ba4f6520262","foo","foo",True
-')
- provider.class.stubs(:openstack)
- .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']])
- .returns('description="foo"
-enabled="True"
-name="foo"
-')
- provider.create
- expect(provider.exists?).to be_truthy
- end
- end
-
- describe '#destroy' do
- it 'destroys a tenant' do
- provider.class.stubs(:openstack)
- .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']])
- .returns('"ID","Name","Description","Enabled"')
- provider.class.stubs(:openstack)
- .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']])
- provider.destroy
- expect(provider.exists?).to be_falsey
- end
-
- end
-
- describe '#exists' do
- context 'when tenant exists' do
-
- subject(:response) do
- provider.class.stubs(:openstack)
- .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']])
- .returns('"ID","Name","Description","Enabled"
-"1cb05cfed7c24279be884ba4f6520262","foo","foo",True
-')
- response = provider.exists?
- end
-
- it { is_expected.to be_truthy }
- end
-
- context 'when tenant does not exist' do
-
- subject(:response) do
- provider.class.stubs(:openstack)
- .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']])
- .returns('"ID","Name","Description","Enabled"')
- response = provider.exists?
- end
-
- it { is_expected.to be_falsey }
- end
- end
-
- describe '#instances' do
- it 'finds every tenant' do
- provider.class.stubs(:openstack)
- .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']])
- .returns('"ID","Name","Description","Enabled"
-"1cb05cfed7c24279be884ba4f6520262","foo","foo",True
-')
- instances = provider.instances
- expect(instances.count).to eq(1)
- end
- end
-
- end
-end