class Openstack::Client::Authenticator::Request

Handles authentication request.

Attributes

credentials[R]
uri[R]

Public Class Methods

new(credentials:, uri:) click to toggle source
# File lib/openstack/client/authenticator/request.rb, line 16
def initialize(credentials:, uri:)
  @credentials = credentials
  @uri = uri
end

Public Instance Methods

call() click to toggle source
# File lib/openstack/client/authenticator/request.rb, line 21
def call
  set_headers
  set_body
  https_client.request(request)
end

Private Instance Methods

payload() click to toggle source
# File lib/openstack/client/authenticator/request.rb, line 41
        def payload
          <<~JSON.squish
            {
              "auth": {
                "identity": {
                  "methods": [
                    "password"
                  ],
                  "password": {
                    "user": {
                      "name": "#{username}",
                      "domain": {
                        "id": "default"
                      },
                      "password": "#{password}"
                    }
                  }
                }
              }
            }
          JSON
        end
request() click to toggle source
# File lib/openstack/client/authenticator/request.rb, line 33
def request
  @request ||= Net::HTTP::Post.new(uri)
end
set_body() click to toggle source
# File lib/openstack/client/authenticator/request.rb, line 37
def set_body
  request.body = payload
end
set_headers() click to toggle source
# File lib/openstack/client/authenticator/request.rb, line 29
def set_headers
  request.add_field('Content-Type', 'application/json')
end