
This change enforces usage of system scope credentials to manage flavors, aggregates, and services, following the new policy rules for SRBAC support in nova. The logic to look up credential for the nova service user from [keystone_authtoken] is left to keep backward compatibility but is deprecated and will be removed. Depends-on: https://review.opendev.org/806474 Depends-on: https://review.opendev.org/828025 Depends-on: https://review.opendev.org/828874 Change-Id: I71779f0f1459d64914589a94a440336386266306
68 lines
1.8 KiB
Ruby
68 lines
1.8 KiB
Ruby
require 'puppet'
|
|
require 'spec_helper'
|
|
require 'puppet/provider/nova_service/openstack'
|
|
|
|
provider_class = Puppet::Type.type(:nova_service).provider(:openstack)
|
|
|
|
describe provider_class do
|
|
|
|
shared_examples 'authenticated with environment variables' do
|
|
ENV['OS_USERNAME'] = 'test'
|
|
ENV['OS_PASSWORD'] = 'abc123'
|
|
ENV['OS_SYSTEM_SCOPE'] = 'all'
|
|
ENV['OS_AUTH_URL'] = 'http://127.0.0.1:5000/v3'
|
|
end
|
|
|
|
describe 'managing nova services' do
|
|
|
|
let(:service_attrs) do
|
|
{
|
|
:name => 'myhost',
|
|
:ensure => 'present',
|
|
:service_name => ['waffles'],
|
|
#:ids => ['1']
|
|
}
|
|
end
|
|
|
|
let(:service_attrs_without_name) do
|
|
{
|
|
:name => 'myhost',
|
|
:ensure => 'absent',
|
|
}
|
|
end
|
|
|
|
let(:resource) do
|
|
Puppet::Type::Nova_service.new(service_attrs)
|
|
end
|
|
|
|
let(:provider) do
|
|
provider_class.new(resource)
|
|
end
|
|
|
|
it_behaves_like 'authenticated with environment variables' do
|
|
describe '#instances' do
|
|
it 'finds existing services' do
|
|
provider_class.expects(:openstack)
|
|
.with('compute service', 'list', '--quiet', '--format', 'csv', [])
|
|
.returns('"Id","Binary","Host","Zone","Status","State","Updated At"
|
|
"1","waffles","myhost","internal","enabled","down","2016-01-01T12:00:00.000000"')
|
|
|
|
instances = provider_class.instances
|
|
expect(instances.count).to eq(1)
|
|
end
|
|
end
|
|
|
|
describe '#destroy' do
|
|
|
|
it 'destroys a service' do
|
|
provider.class.stubs(:openstack)
|
|
.with('compute service', 'delete', [])
|
|
provider.destroy
|
|
expect(provider.exists?).to be_falsey
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|