2 require 'puppet/provider/openstack'
4 class Puppet::Provider::Openstack::Credentials
7 :auth_url, :password, :project_name, :username,
12 KEYS.each { |var| attr_accessor var }
14 def self.defined?(name)
15 KEYS.include?(name.to_sym)
19 if self.class.defined?(key.to_sym)
20 self.instance_variable_set("@#{key}".to_sym, val)
25 return true if user_password_set? || service_token_set?
28 def service_token_set?
29 return true if @token && @url
34 self.instance_variables.each do |var|
35 name = var.to_s.sub(/^@/,'OS_').upcase
36 env.merge!(name => self.instance_variable_get(var))
41 def user_password_set?
42 return true if @username && @password && @project_name && @auth_url
47 if key != :identity_api_version &&
48 self.instance_variable_defined?("@#{key}")
55 self.class.to_s.sub(/.*V/,'').sub('_','.')
59 class Puppet::Provider::Openstack::CredentialsV2_0 < Puppet::Provider::Openstack::Credentials
62 class Puppet::Provider::Openstack::CredentialsV3 < Puppet::Provider::Openstack::Credentials
80 KEYS.each { |var| attr_accessor var }
82 def self.defined?(name)
83 KEYS.include?(name.to_sym) || super
86 def user_password_set?
87 return true if (@username || @user_id) && @password && (@project_name || @project_id) && @auth_url
91 set(:identity_api_version, version)