]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/openstacklib/lib/puppet/provider/openstack/credentials.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / openstacklib / lib / puppet / provider / openstack / credentials.rb
1 require 'puppet'
2 require 'puppet/provider/openstack'
3
4 class Puppet::Provider::Openstack::Credentials
5
6   KEYS = [
7     :auth_url, :password, :project_name, :username,
8     :token, :url,
9     :identity_api_version
10   ]
11
12   KEYS.each { |var| attr_accessor var }
13
14   def self.defined?(name)
15     KEYS.include?(name.to_sym)
16   end
17
18   def set(key, val)
19     if self.class.defined?(key.to_sym)
20       self.instance_variable_set("@#{key}".to_sym, val)
21     end
22   end
23
24   def set?
25     return true if user_password_set? || service_token_set?
26   end
27
28   def service_token_set?
29     return true if @token && @url
30   end
31
32   def to_env
33     env = {}
34     self.instance_variables.each do |var|
35       name = var.to_s.sub(/^@/,'OS_').upcase
36       env.merge!(name => self.instance_variable_get(var))
37     end
38     env
39   end
40
41   def user_password_set?
42     return true if @username && @password && @project_name && @auth_url
43   end
44
45   def unset
46     KEYS.each do |key|
47       if key != :identity_api_version &&
48         self.instance_variable_defined?("@#{key}")
49         set(key, '')
50       end
51     end
52   end
53
54   def version
55     self.class.to_s.sub(/.*V/,'').sub('_','.')
56   end
57 end
58
59 class Puppet::Provider::Openstack::CredentialsV2_0 < Puppet::Provider::Openstack::Credentials
60 end
61
62 class Puppet::Provider::Openstack::CredentialsV3 < Puppet::Provider::Openstack::Credentials
63
64   KEYS = [
65     :cacert,
66     :cert,
67     :default_domain,
68     :domain_id,
69     :domain_name,
70     :key,
71     :project_domain_id,
72     :project_domain_name,
73     :project_id,
74     :trust_id,
75     :user_domain_id,
76     :user_domain_name,
77     :user_id
78   ]
79
80   KEYS.each { |var| attr_accessor var }
81
82   def self.defined?(name)
83     KEYS.include?(name.to_sym) || super
84   end
85
86   def user_password_set?
87     return true if (@username || @user_id) && @password && (@project_name || @project_id) && @auth_url
88   end
89
90   def initialize
91     set(:identity_api_version, version)
92   end
93 end