deis_client 1.5.1.dev2 → 1.5.1.dev3

Sign up to get free protection for your applications and to get access to all the features.
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