Sha256: 4ff8e83629223aa658fc9a86368b6cd980fe5343f2e239168563aa989e071c0b

Contents?: true

Size: 708 Bytes

Versions: 5

Compression:

Stored size: 708 Bytes

Contents

module OpenstackBridge
  class Authentication < Struct.new(:host, :username, :password, :tenant)
    attr_accessor :response

    def initialize(*)
      super
      request = HTTPI::Request.new
      request.url = host
      request.body = auth_hash.to_json
      request.headers['Content-Type'] = 'application/json'
      self.response = JSON.parse(HTTPI.post(request, :curb).body)
    end

    def token
      self.response['access']['token']['id']
    end

    private
    def auth_hash
      {
        "auth" => {
          "passwordCredentials" =>{
            "username" => username,
            "password" => password
          },
          "tenantName" => tenant
        }
      }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
openstack_bridge-1.0.0 lib/openstack_bridge/authentication.rb
openstack_bridge-0.0.5 lib/openstack_bridge/authentication.rb
openstack_bridge-0.0.4 lib/openstack_bridge/authentication.rb
openstack_bridge-0.0.3 lib/openstack_bridge/authentication.rb
openstack_bridge-0.0.2 lib/openstack_bridge/authentication.rb