Class: Convox::Api::Client

Inherits:
Object
  • Object
show all
Includes:
HTTMultiParty
Defined in:
lib/convox_api_client/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(api_key, debug = false) ⇒ Client

Returns a new instance of Client.



8
9
10
11
12
# 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

Instance Method Details

#add_certificate(public, private, chain: nil) ⇒ Object



128
129
130
# File 'lib/convox_api_client/client.rb', line 128

def add_certificate(public, private, chain: nil)
  raise 'Not implemented'    
end

#app(app, rack: nil) ⇒ Object



27
28
29
# 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) ⇒ Object



51
52
53
# 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) ⇒ Object



31
32
33
# 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) ⇒ Object



59
60
61
# 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) ⇒ Object



72
73
74
# 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) ⇒ Object

Not documented in Swagger



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# 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) ⇒ Object



223
224
225
226
227
# 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) ⇒ Object



80
81
82
# 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) ⇒ Object



96
97
98
# 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) ⇒ Object



88
89
90
# 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) ⇒ Object



108
109
110
# 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) ⇒ Object



104
105
106
# 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) ⇒ Object



116
117
118
# 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) ⇒ Object



14
15
16
# File 'lib/convox_api_client/client.rb', line 14

def apps(rack: nil)
  parsed_response!(self.class.get('/apps', headers: headers(rack: rack)))
end

#certificatesObject



124
125
126
# File 'lib/convox_api_client/client.rb', line 124

def certificates
  raise 'Not implemented'    
end

#create_app(name, rack: nil) ⇒ Object



18
19
20
21
# 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) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# 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) ⇒ Object



76
77
78
# 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) ⇒ Object



160
161
162
# 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) ⇒ Object



168
169
170
# File 'lib/convox_api_client/client.rb', line 168

def create_service(name, type)
  raise 'Not implemented'    
end


180
181
182
# File 'lib/convox_api_client/client.rb', line 180

def create_service_link(service, app)
  raise 'Not implemented'    
end

#delete_app(name, rack: nil) ⇒ Object



23
24
25
# 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) ⇒ Object

API not functioning



47
48
49
# 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) ⇒ Object



68
69
70
# 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) ⇒ Object



92
93
94
# 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) ⇒ Object



136
137
138
# File 'lib/convox_api_client/client.rb', line 136

def delete_certificate(id: nil)
  raise 'Not implemented'    
end

#delete_instance(id: nil) ⇒ Object



148
149
150
# File 'lib/convox_api_client/client.rb', line 148

def delete_instance(id: nil)
  raise 'Not implemented'    
end

#delete_registriesObject



152
153
154
# File 'lib/convox_api_client/client.rb', line 152

def delete_registries
  raise 'Not implemented'    
end

#delete_service(name) ⇒ Object



172
173
174
# File 'lib/convox_api_client/client.rb', line 172

def delete_service(name)
  raise 'Not implemented'    
end


184
185
186
# File 'lib/convox_api_client/client.rb', line 184

def delete_service_link(service, app)
  raise 'Not implemented'    
end

#generate_certificate(domains: nil) ⇒ Object



132
133
134
# File 'lib/convox_api_client/client.rb', line 132

def generate_certificate(domains: nil)
  raise 'Not implemented'    
end

#instancesObject



140
141
142
# File 'lib/convox_api_client/client.rb', line 140

def instances
  raise 'Not implemented'    
end

#instances_keyrollObject



144
145
146
# File 'lib/convox_api_client/client.rb', line 144

def instances_keyroll
  raise 'Not implemented'    
end

#promote_app_release(app, release, rack: nil) ⇒ Object



112
113
114
# 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

#registriesObject



156
157
158
# File 'lib/convox_api_client/client.rb', line 156

def registries
  raise 'Not implemented'    
end

#run_app_process(app, process, rack: nil, command: nil) ⇒ Object



100
101
102
# 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) ⇒ Object



176
177
178
# File 'lib/convox_api_client/client.rb', line 176

def service(name)
  raise 'Not implemented'    
end

#servicesObject



164
165
166
# File 'lib/convox_api_client/client.rb', line 164

def services
  raise 'Not implemented'    
end

#set_app_environment(app, environment, rack: nil) ⇒ Object



63
64
65
66
# 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) ⇒ Object



84
85
86
# 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) ⇒ Object



120
121
122
# 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) ⇒ Object



188
189
190
# File 'lib/convox_api_client/client.rb', line 188

def system(rack: nil)
  raise 'Not implemented'    
end

#system_capacityObject



196
197
198
# File 'lib/convox_api_client/client.rb', line 196

def system_capacity
  raise 'Not implemented'    
end

#update_app_build(app, build, rack: nil) ⇒ Object



55
56
57
# 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) ⇒ Object



192
193
194
# File 'lib/convox_api_client/client.rb', line 192

def update_system(count: nil, type: nil, version: nil)
  raise 'Not implemented'    
end