class Fog::OpenStack::Auth::Token::V3
Constants
- DOMAIN_ID
Default
Domain
ID
Attributes
domain[R]
project[R]
Public Instance Methods
build_credentials(auth)
click to toggle source
# File lib/fog/openstack/auth/token/v3.rb, line 75 def build_credentials(auth) if auth[:openstack_project_id] || auth[:openstack_project_name] # project scoped @project = Fog::OpenStack::Auth::ProjectScope.new( auth[:openstack_project_id], auth[:openstack_project_name] ) @project.domain = if auth[:openstack_project_domain_id] || auth[:openstack_project_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_project_domain_id], auth[:openstack_project_domain_name] ) elsif auth[:openstack_domain_id] || auth[:openstack_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_domain_id], auth[:openstack_domain_name] ) else Fog::OpenStack::Auth::Name.new(DOMAIN_ID, nil) end elsif auth[:openstack_domain_id] || auth[:openstack_domain_name] # domain scoped @domain = Fog::OpenStack::Auth::DomainScope.new( auth[:openstack_domain_id], auth[:openstack_domain_name] ) end if auth[:openstack_auth_token] @token = auth[:openstack_auth_token] elsif auth[:openstack_application_credential_id] and auth[:openstack_application_credential_secret] @application_credential = { :id => auth[:openstack_application_credential_id], :secret => auth[:openstack_application_credential_secret], } else @user = Fog::OpenStack::Auth::User.new(auth[:openstack_userid], auth[:openstack_username]) @user.password = auth[:openstack_api_key] @user.domain = if auth[:openstack_user_domain_id] || auth[:openstack_user_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_user_domain_id], auth[:openstack_user_domain_name] ) elsif auth[:openstack_domain_id] || auth[:openstack_domain_name] Fog::OpenStack::Auth::Name.new( auth[:openstack_domain_id], auth[:openstack_domain_name] ) else Fog::OpenStack::Auth::Name.new(DOMAIN_ID, nil) end end credentials end
credentials()
click to toggle source
# File lib/fog/openstack/auth/token/v3.rb, line 15 def credentials identity = if @token { 'methods' => ['token'], 'token' => {'id' => @token} } elsif @application_credential { 'methods' => ['application_credential'], 'application_credential' => @application_credential } else { 'methods' => ['password'], 'password' => @user.identity } end if scope { 'auth' => { 'identity' => identity, 'scope' => scope } } else {'auth' => {'identity' => identity}} end end
path()
click to toggle source
# File lib/fog/openstack/auth/token/v3.rb, line 53 def path '/auth/tokens' end
prefix_path(uri)
click to toggle source
# File lib/fog/openstack/auth/token/v3.rb, line 45 def prefix_path(uri) if uri.path =~ /\/v3(\/)*.*$/ '' else '/v3' end end
scope()
click to toggle source
# File lib/fog/openstack/auth/token/v3.rb, line 57 def scope return nil if @application_credential return @project.identity if @project return @domain.identity if @domain end
set(response)
click to toggle source
# File lib/fog/openstack/auth/token/v3.rb, line 63 def set(response) @data = Fog::JSON.decode(response.body) @token = response.headers['x-subject-token'] @expires = @data['token']['expires_at'] @tenant = @data['token']['project'] @user = @data['token']['user'] catalog = @data['token']['catalog'] if catalog @catalog = Fog::OpenStack::Auth::Catalog::V3.new(catalog) end end