deis_client 1.5.1.dev2 → 1.5.1.dev3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/deis_client.rb +42 -13
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff02438c612cb9dff23d2132b125ec5e97d371b1
4
- data.tar.gz: be2b37594a47afb8b24d40ceb586ab1f2fe742dc
3
+ metadata.gz: 91244b20bfcb418319c9b9fcbb5d7bd799bd3017
4
+ data.tar.gz: 1f86918cc17e74dcc8b29c6554bacc0b15235445
5
5
  SHA512:
6
- metadata.gz: d2808dbb04f07e16733a45db358ba9d5f81d0fb16cfe65d292acf9813426bbb5defd3aab2c49fd38e635a70f7a0b28598dd5ad4838798253ffc9b2e217159da3
7
- data.tar.gz: b3291b512b7a1e148ab06bc3e7a8728da6a7d69675c275cce90d98fb200fde775e52a28eeed26227d074807d004a424137a300cfe0d21fcdedebaa7fa618b249
6
+ metadata.gz: 3813b2230e0dc6a09048da2f6153a4fbf429f1bc7f5d4a0f48ba462c0c0a6e76752fa4793793df355b11efe4c5fcc57c80dfd13d9b460bbfd4f61bccfe8fa60d
7
+ data.tar.gz: d6cc27ac19b18d8954ebdd31cebba766a328d24bf5573707a26f161e42e55ec05e0131cb2076f25ec4e10914fe5c6a8072a4d0378970cb1139009b9cba23e06b
data/lib/deis_client.rb CHANGED
@@ -1,6 +1,32 @@
1
1
  require 'httparty'
2
2
 
3
3
  module Deis
4
+ class Error < StandardError
5
+ def initialize(http_status = nil, message = nil, data = nil)
6
+ @status = http_status
7
+ @message = message
8
+ @data = data
9
+ end
10
+ end
11
+
12
+ class ClientError < Error; end
13
+
14
+ class ServerError < Error; end
15
+
16
+ # the following two errors are just convenience for better rescuing
17
+ class AuthorizationError < ClientError
18
+ def initialize(message = nil, data = nil)
19
+ super(401, message, data)
20
+ end
21
+ end
22
+
23
+ class NotFound < ClientError
24
+ def initialize(message = nil, data = nil)
25
+ super(404, message, data)
26
+ end
27
+ end
28
+
29
+
4
30
  class ApiWrapper
5
31
  include HTTParty
6
32
  format :json
@@ -30,20 +56,20 @@ module Deis
30
56
  @@methods = {
31
57
  # method => HTTP-verb, path
32
58
  login: [:post, '/auth/login/'],
33
- apps: [:get, '/apps/'],
59
+ apps: [:get, '/apps'],
34
60
  create_app: [:post, '/apps/'],
35
61
  delete_app: [:delete, '/apps/:app/'],
36
62
  app: [:get, '/apps/:app/'],
37
63
  app_logs: [:get, '/apps/:app/logs/'],
38
64
  app_run: [:post, '/apps/:app/run/'],
39
65
  containers: [:get, '/apps/:app/containers/'],
40
- config: [:get, '/apps/:app/config'],
41
- domains: [:get, '/apps/:app/domains'],
42
- builds: [:get, '/apps/:app/builds'],
43
- create_build: [:post, '/apps/:app/builds'],
44
- releases: [:get, '/apps/:app/releases'],
45
- release: [:get, '/apps/:app/releases/:release'],
46
- rollback_release: [:post, '/apps/:app/releases/rollback']
66
+ config: [:get, '/apps/:app/config/'],
67
+ domains: [:get, '/apps/:app/domains/'],
68
+ builds: [:get, '/apps/:app/builds/'],
69
+ create_build: [:post, '/apps/:app/builds/'],
70
+ releases: [:get, '/apps/:app/releases/'],
71
+ release: [:get, '/apps/:app/releases/:release/'],
72
+ rollback_release: [:post, '/apps/:app/releases/rollback/']
47
73
  }
48
74
 
49
75
  def initialize(deis_url, username, password)
@@ -55,7 +81,7 @@ module Deis
55
81
  def login
56
82
  response = @http.post('/auth/login/', {body: @auth})
57
83
 
58
- throw Exception unless response.code == 200
84
+ raise AuthorizationError.new unless response.code == 200
59
85
 
60
86
  @token = response['token']
61
87
  @headers['Authorization'] = "token #{@token}"
@@ -124,7 +150,6 @@ module Deis
124
150
 
125
151
  protected
126
152
 
127
- # TODO: use own, meaningful exceptions expecially in this method
128
153
  def perform(method_sym, body={}, try_twice=true)
129
154
  login unless @token
130
155
 
@@ -143,13 +168,17 @@ module Deis
143
168
  when 200...300
144
169
  response.parsed_response
145
170
  when 401 # authentification required
146
- raise Exception unless try_twice
171
+ raise AuthorizationError.new unless try_twice
147
172
  login
148
173
  perform method_sym, options, false
149
174
  when 404
150
- nil # or better an exception?
175
+ raise NotFound
176
+ when 400...500
177
+ raise ClientError.new response.code, response.message, response: response
178
+ when 500...600
179
+ raise ServerError.new response.code, response.message, response: response
151
180
  else
152
- raise Exception
181
+ raise Error.new response.code, response.message, response: response
153
182
  end
154
183
  end
155
184
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deis_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1.dev2
4
+ version: 1.5.1.dev3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franz Liedke