class Logstream::CloudAPIV2

Constants

CLOUDAPI_ENDPOINT

Attributes

client_id[RW]
client_secret[RW]
endpoint[RW]

Public Class Methods

new(client_id, client_secret) click to toggle source
# File lib/logstream/cloudapi_v2.rb, line 11
def initialize(client_id, client_secret)
  @client_id = client_id
  @client_secret = client_secret
end

Public Instance Methods

get(path) click to toggle source
# File lib/logstream/cloudapi_v2.rb, line 16
def get(path)
  bearer_token = get_token
  uri = URI.parse("#{CLOUDAPI_ENDPOINT}#{path}")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Get.new(uri.request_uri)
  request['Authorization'] = "Bearer #{bearer_token}"
  response = http.request(request)
  parsed = JSON.parse(response.body) rescue nil
  case response.code.to_i
  when 200
    raise Error, "Unexpected reply #{response.body}" unless parsed
    parsed
  else
    raise Error, "HTTP #{response.code}: #{response.body}"
  end
end
get_application_environments(application_uuid) click to toggle source
# File lib/logstream/cloudapi_v2.rb, line 34
def get_application_environments(application_uuid)
  response = get("/applications/#{application_uuid}/environments") #, { :query => { "filter" => "name%3D#{env}"}})
  raise Error, "No Environments found." if response['total'] == 0
  raise Error, "Unexpected reply #{response}" unless response['_embedded']['items']
  response['_embedded']['items']
end
get_envirornment_logstream(environment_uuid) click to toggle source
# File lib/logstream/cloudapi_v2.rb, line 41
def get_envirornment_logstream(environment_uuid)
  response = get("/environments/#{environment_uuid}/logstream")
  raise Error, "Unexpected reply #{response}" unless response['logstream']
  response['logstream']
end
get_token() click to toggle source
# File lib/logstream/cloudapi_v2.rb, line 47
def get_token
  uri = URI.parse("https://accounts.acquia.com/api/auth/oauth/token")
  response = Net::HTTP.post_form(uri, 'client_id' => @client_id, 'client_secret' => @client_secret, 'grant_type' => 'client_credentials')
  parsed = JSON.parse(response.body) rescue nil
  case response.code.to_i
  when 200
    raise Error, "Unexpected reply #{response.body}" unless parsed["access_token"]
    parsed["access_token"]
  else
    raise Error, "HTTP #{response.code}: #{response.body}"
  end
end