Sha256: 05a64cfecc520b62275da20eec2426161f0b326fbac6300fe7128c79e4041a68

Contents?: true

Size: 728 Bytes

Versions: 5

Compression:

Stored size: 728 Bytes

Contents

require "ostruct"

module Rancher
  module ManagementApi
    class Token < OpenStruct
      def self.create(code:, conn:)
        token_response = conn.post do |req|
          req.url "/v1/token"
          req.body = { code: code }.to_json
        end

        data = JSON.parse(token_response.body)

        new(data)
      end

      def self.build_manager(host:, username:, password:)
        conn = Rancher::ManagementApi.connection(host)

        token = create(code: [username, password].join(":"), conn: conn)

        tokened_conn = Rancher::ManagementApi.connection(host) do |faraday|
          faraday.headers["Cookie"] = "token=#{token.jwt}"
        end

        Manager.new(tokened_conn)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rancher-management_api-0.3.2 lib/rancher/management_api/token.rb
rancher-management_api-0.3.0 lib/rancher/management_api/token.rb
rancher-management_api-0.2.0 lib/rancher/management_api/token.rb
rancher-management_api-0.1.1 lib/rancher/management_api/token.rb
rancher-management_api-0.1.0 lib/rancher/management_api/token.rb