Module: Yao::Auth

Defined in:
lib/yao/auth.rb

Class Method Summary collapse

Class Method Details

.build_auth_info(tenant_name, username, password) ⇒ Hash

Parameters:

  • tenant_name (String)
  • username (String)
  • password (String)

Returns:

  • (Hash)


72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/yao/auth.rb', line 72

def build_auth_info(tenant_name, username, password)
    auth_info = {
      auth: {
        passwordCredentials: {
          username: username, password: password
        }
      }
    }
    auth_info[:auth][:tenantName] = tenant_name if tenant_name

    auth_info
end

.build_authv3_info(tenant_name, username, password, default_domain, user_domain_id, user_domain_name, project_domain_id, project_domain_name) ⇒ Hash

Parameters:

  • tenant_name (String)
  • username (String)
  • password (String)
  • default_domain (String)
  • user_domain_id (String)
  • user_domain_name (String)
  • project_domain_id (String)
  • project_domain_name (String)

Returns:

  • (Hash)


31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/yao/auth.rb', line 31

def build_authv3_info(tenant_name, username, password,
                      default_domain,
                      user_domain_id, user_domain_name,
                      project_domain_id, project_domain_name)
    identity = {
      methods: ["password"],
      password: {
        user: { name: username, password: password }
      }
    }
    if user_domain_id
      identity[:password][:user][:domain] = { id: user_domain_id }
    elsif user_domain_name
      identity[:password][:user][:domain] = { name: user_domain_name }
    elsif default_domain
      identity[:password][:user][:domain] = { id: default_domain }
    end

    scope = {
      project: { name: tenant_name }
    }
    if project_domain_id
      scope[:project][:domain] = { id: project_domain_id }
    elsif project_domain_name
      scope[:project][:domain] = { name: project_domain_name }
    elsif default_domain
      scope[:project][:domain] = { id: default_domain }
    end

    {
      auth: {
        identity: identity,
        scope: scope
      }
    }
end

.new(tenant_name: Yao.config.tenant_name, username: Yao.config.username, password: Yao.config.password, identity_api_version: Yao.config.identity_api_version, default_domain: Yao.config.default_domain, user_domain_id: Yao.config.user_domain_id, user_domain_name: Yao.config.user_domain_name, project_domain_id: Yao.config.project_domain_id, project_domain_name: Yao.config.project_domain_name) ⇒ TokenV3, Token

if identity_api_version == “3” else

Returns:



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/yao/auth.rb', line 89

def new(
    tenant_name: Yao.config.tenant_name,
    username: Yao.config.username,
    password: Yao.config.password,
    identity_api_version: Yao.config.identity_api_version,
    default_domain: Yao.config.default_domain,
    user_domain_id: Yao.config.user_domain_id,
    user_domain_name: Yao.config.user_domain_name,
    project_domain_id: Yao.config.project_domain_id,
    project_domain_name: Yao.config.project_domain_name
)
  if identity_api_version.to_i == 3
    auth_info = build_authv3_info(tenant_name, username, password,
                                  default_domain,
                                  user_domain_id, user_domain_name,
                                  project_domain_id, project_domain_name)
    issue = TokenV3.issue(Yao.default_client.default, auth_info)
  else
    auth_info = build_auth_info(tenant_name, username, password)
    issue = Token.issue(Yao.default_client.default, auth_info)
  end

  issue
end

.try_newYao::Auth

Returns:



16
17
18
19
20
# File 'lib/yao/auth.rb', line 16

def try_new
  if Yao.config.tenant_name && Yao.config.username && Yao.config.password && Yao.default_client
    Yao::Auth.new
  end
end