class Convox::Api::Client

Public Class Methods

new(api_key, debug = false) click to toggle source
# File lib/convox_api_client/client.rb, line 8
def initialize(api_key, debug = false)
  raise 'api_key must be set' if api_key.nil?
  @api_key = api_key
  self.class.debug_output $stdout if debug
end

Public Instance Methods

add_certificate(public, private, chain: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 128
def add_certificate(public, private, chain: nil)
  raise 'Not implemented'    
end
app(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 27
def app(app, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}", headers: headers(rack: rack)))
end
app_build(app, build, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 51
def app_build(app, build, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}/builds/#{build}", headers: headers(rack: rack)))
end
app_builds(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 31
def app_builds(app, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}/builds", headers: headers(rack: rack)))
end
app_environment(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 59
def app_environment(app, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}/environment", headers: headers(rack: rack)))
end
app_formation(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 72
def app_formation(app, rack: nil)
  raise 'Not implemented'
end
app_logs(app, rack: nil, wait_for: 5) click to toggle source

Not documented in Swagger

# File lib/convox_api_client/client.rb, line 201
def app_logs(app, rack: nil, wait_for: 5)
  logs = []
  EM.run {
    ws = app_logs_websocket(app, rack: rack)
 
    ws.on :open do |event|
      EventMachine.add_timer wait_for, proc { ws.close }
    end

    ws.on :message do |event|
      logs << event.data
    end

    ws.on :close do |event|
      p [:close, event.code, event.reason]
      ws = nil
      EM.stop_event_loop
    end
  }
  logs
end
app_logs_websocket(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 223
def app_logs_websocket(app, rack: nil)
  ws_headers = authorization_headers
  ws_headers["Rack"] = rack if rack
  Faye::WebSocket::Client.new("wss://console.convox.com/apps/#{app}/logs", nil, {headers: ws_headers})
end
app_parameters(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 80
def app_parameters(app, rack: nil)
  raise 'Not implemented'        
end
app_process(app, process, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 96
def app_process(app, process, rack: nil)
  raise 'Not implemented'        
end
app_processes(app, rack: nil, stats: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 88
def app_processes(app, rack: nil, stats: nil)
  raise 'Not implemented'        
end
app_release(app, release, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 108
def app_release(app, release, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}/releases/#{release}", headers: headers(rack: rack)))
end
app_releases(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 104
def app_releases(app, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}/releases", headers: headers(rack: rack)))
end
app_ssls(app, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 116
def app_ssls(app, rack: nil)
  parsed_response!(self.class.get("/apps/#{app}/ssl", headers: headers(rack: rack)))
end
apps(rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 14
def apps(rack: nil)
  parsed_response!(self.class.get('/apps', headers: headers(rack: rack)))
end
certificates() click to toggle source
# File lib/convox_api_client/client.rb, line 124
def certificates
  raise 'Not implemented'    
end
create_app(name, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 18
def create_app(name, rack: nil)
  query = {name: name}
  parsed_response!(self.class.post('/apps', query: query, headers: headers(rack: rack)))
end
create_app_build(app, rack: nil, cache: nil, description: nil, manifest: 'docker-compose.yml', repo: nil, source: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 35
def create_app_build(app, rack: nil, cache: nil, description: nil, manifest: 'docker-compose.yml', repo: nil, source: nil)
  query = {}
  query[:cache] = cache if cache
  query[:description] = description if description
  query[:manifest] = manifest if manifest
  query[:repo] = repo if repo
  query[:source] = source if source
  
  parsed_response!(self.class.post("/apps/#{app}/builds", query: query, headers: headers(rack: rack)))
end
create_app_formation_process(app, process, rack: nil, count: nil, memory: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 76
def create_app_formation_process(app, process, rack: nil, count: nil, memory: nil)
  raise 'Not implemented'
end
create_registry(server: nil, username: nil, password: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 160
def create_registry(server: nil, username: nil, password: nil)
  raise 'Not implemented'    
end
create_service(name, type) click to toggle source
# File lib/convox_api_client/client.rb, line 168
def create_service(name, type)
  raise 'Not implemented'    
end
delete_app(name, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 23
def delete_app(name, rack: nil)
  parsed_response!(self.class.delete("/apps/#{name}", headers: headers(rack: rack)))
end
delete_app_build(app, build, rack: nil) click to toggle source

API not functioning

# File lib/convox_api_client/client.rb, line 47
def delete_app_build(app, build, rack: nil)
  parsed_response!(self.class.delete("/apps/#{app}/builds/#{build}", headers: headers(rack: rack)))
end
delete_app_environment_key(app, key, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 68
def delete_app_environment_key(app, key, rack: nil)
  parsed_response!(self.class.delete("/apps/#{app}/environment/#{key}", query: query, headers: headers(rack: rack)))
end
delete_app_process(app, process, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 92
def delete_app_process(app, process, rack: nil)
  raise 'Not implemented'        
end
delete_certificate(id: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 136
def delete_certificate(id: nil)
  raise 'Not implemented'    
end
delete_instance(id: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 148
def delete_instance(id: nil)
  raise 'Not implemented'    
end
delete_registries() click to toggle source
# File lib/convox_api_client/client.rb, line 152
def delete_registries
  raise 'Not implemented'    
end
delete_service(name) click to toggle source
# File lib/convox_api_client/client.rb, line 172
def delete_service(name)
  raise 'Not implemented'    
end
generate_certificate(domains: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 132
def generate_certificate(domains: nil)
  raise 'Not implemented'    
end
instances() click to toggle source
# File lib/convox_api_client/client.rb, line 140
def instances
  raise 'Not implemented'    
end
instances_keyroll() click to toggle source
# File lib/convox_api_client/client.rb, line 144
def instances_keyroll
  raise 'Not implemented'    
end
promote_app_release(app, release, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 112
def promote_app_release(app, release, rack: nil)
  parsed_response!(self.class.post("/apps/#{app}/releases/#{release}/promote", headers: headers(rack: rack)))
end
registries() click to toggle source
# File lib/convox_api_client/client.rb, line 156
def registries
  raise 'Not implemented'    
end
run_app_process(app, process, rack: nil, command: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 100
def run_app_process(app, process, rack: nil, command: nil)
  raise 'Not implemented'        
end
service(name) click to toggle source
# File lib/convox_api_client/client.rb, line 176
def service(name)
  raise 'Not implemented'    
end
services() click to toggle source
# File lib/convox_api_client/client.rb, line 164
def services
  raise 'Not implemented'    
end
set_app_environment(app, environment, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 63
def set_app_environment(app, environment, rack: nil)
  environment = environment.to_a.collect{|e| e.join "="}.join "\n"
  parsed_response!(self.class.post("/apps/#{app}/environment", body: environment, headers: headers(rack: rack)))
end
set_app_parameters(app, parameters, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 84
def set_app_parameters(app, parameters, rack: nil)
  raise 'Not implemented'        
end
set_app_ssl(app, process, port, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 120
def set_app_ssl(app, process, port, rack: nil)
  raise 'Not implemented'    
end
system(rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 188
def system(rack: nil)
  raise 'Not implemented'    
end
system_capacity() click to toggle source
# File lib/convox_api_client/client.rb, line 196
def system_capacity
  raise 'Not implemented'    
end
update_app_build(app, build, rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 55
def update_app_build(app, build, rack: nil)
  raise 'Not implemented'
end
update_system(count: nil, type: nil, version: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 192
def update_system(count: nil, type: nil, version: nil)
  raise 'Not implemented'    
end

Private Instance Methods

authorization_headers() click to toggle source
# File lib/convox_api_client/client.rb, line 241
def authorization_headers
  auth_b64 = Base64.encode64("convox:#{@api_key}")
  {'Authorization' => "Basic #{auth_b64}"}
end
headers(rack: nil) click to toggle source
# File lib/convox_api_client/client.rb, line 235
def headers(rack: nil)
  headers = {}
  headers[:rack] = rack if rack
  headers.merge authorization_headers
end
parsed_response!(response) click to toggle source
# File lib/convox_api_client/client.rb, line 230
def parsed_response!(response)
  raise "Error: #{response.code} #{response.body}" unless response.code == 200
  response.parsed_response        
end