Merge "support for Keystone v3 authentication"
This commit is contained in:
@@ -54,3 +54,36 @@ end
|
|||||||
|
|
||||||
class Puppet::Provider::Openstack::CredentialsV2_0 < Puppet::Provider::Openstack::Credentials
|
class Puppet::Provider::Openstack::CredentialsV2_0 < Puppet::Provider::Openstack::Credentials
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class Puppet::Provider::Openstack::CredentialsV3 < Puppet::Provider::Openstack::Credentials
|
||||||
|
|
||||||
|
KEYS = [
|
||||||
|
:cacert,
|
||||||
|
:cert,
|
||||||
|
:default_domain,
|
||||||
|
:domain_id,
|
||||||
|
:domain_name,
|
||||||
|
:key,
|
||||||
|
:project_domain_id,
|
||||||
|
:project_domain_name,
|
||||||
|
:project_id,
|
||||||
|
:trust_id,
|
||||||
|
:user_domain_id,
|
||||||
|
:user_domain_name,
|
||||||
|
:user_id
|
||||||
|
]
|
||||||
|
|
||||||
|
KEYS.each { |var| attr_accessor var }
|
||||||
|
|
||||||
|
def self.defined?(name)
|
||||||
|
KEYS.include?(name.to_sym) || super
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_password_set?
|
||||||
|
return true if (@username || @user_id) && @password && (@project_name || @project_id) && @auth_url
|
||||||
|
end
|
||||||
|
|
||||||
|
def initialize
|
||||||
|
set(:identity_api_version, version)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@@ -60,4 +60,33 @@ describe Puppet::Provider::Openstack::Credentials do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'using v3' do
|
||||||
|
let(:creds) do
|
||||||
|
creds = Puppet::Provider::Openstack::CredentialsV3.new
|
||||||
|
end
|
||||||
|
describe 'with v3' do
|
||||||
|
it 'uses v3 identity api' do
|
||||||
|
creds.identity_api_version == '3'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
describe '#password_set? with username and project_name' do
|
||||||
|
it 'is successful' do
|
||||||
|
creds.auth_url = 'auth_url'
|
||||||
|
creds.password = 'password'
|
||||||
|
creds.project_name = 'project_name'
|
||||||
|
creds.username = 'username'
|
||||||
|
expect(creds.user_password_set?).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
describe '#password_set? with user_id and project_id' do
|
||||||
|
it 'is successful' do
|
||||||
|
creds.auth_url = 'auth_url'
|
||||||
|
creds.password = 'password'
|
||||||
|
creds.project_id = 'projid'
|
||||||
|
creds.user_id = 'userid'
|
||||||
|
expect(creds.user_password_set?).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user