Sha256: c17c6b843980531bf8532c66193a7d41155ff12a2b5a3fa67c57430268f314ff
Contents?: true
Size: 1.38 KB
Versions: 4
Compression:
Stored size: 1.38 KB
Contents
module NightcrawlerSwift class Connection attr_accessor :opts, :auth_response, :token_id, :expires_at, :admin_url, :upload_url, :public_url # Hash with: bucket, tenant_name, username, password, auth_url # def initialize opts = {} @opts = OpenStruct.new opts end def connect! auth_response = authenticate! @token_id = auth_response.access["token"]["id"] @expires_at = auth_response.access["token"]["expires"] @expires_at = DateTime.parse(@expires_at).to_time @admin_url = auth_response.access["serviceCatalog"].first["endpoints"].first["adminURL"] @upload_url = "#{@admin_url}/#{opts.bucket}" @public_url = auth_response.access["serviceCatalog"].first["endpoints"].first["publicURL"] NightcrawlerSwift.logger.info "Connected, token_id: #{@token_id}" self end def connected? !self.token_id.nil? and self.expires_at > Time.now end private def authenticate! auth_options = { tenantName: opts.tenant_name, passwordCredentials: {username: opts.username, password: opts.password} } response = RestClient.post( opts.auth_url, { auth: auth_options }.to_json, content_type: :json, accept: :json, ) OpenStruct.new(JSON.parse(response.body)) rescue StandardError => e raise Exceptions::ConnectionError.new(e) end end end
Version data entries
4 entries across 4 versions & 1 rubygems