1
1
require 'diego/bbs/bbs'
2
2
require 'diego/errors'
3
3
require 'diego/routes'
4
+ require 'http/httpclient'
4
5
5
6
module Diego
6
7
class Client
7
8
PROTOBUF_HEADER = { 'Content-Type' . freeze => 'application/x-protobuf' . freeze } . freeze
8
9
9
10
def initialize ( url :, ca_cert_file :, client_cert_file :, client_key_file :,
10
- connect_timeout :, send_timeout :, receive_timeout :)
11
+ connect_timeout :, send_timeout :, receive_timeout :)
11
12
ENV [ 'PB_IGNORE_DEPRECATIONS' ] ||= 'true'
12
13
@client = build_client (
13
14
url ,
@@ -24,7 +25,7 @@ def ping
24
25
client . post ( Routes ::PING )
25
26
end
26
27
27
- validate_status !( response : response , statuses : [ 200 ] )
28
+ validate_status_200 !( response )
28
29
protobuf_decode! ( response . body , Bbs ::Models ::PingResponse )
29
30
end
30
31
@@ -35,7 +36,7 @@ def upsert_domain(domain:, ttl:)
35
36
client . post ( Routes ::UPSERT_DOMAIN , request , PROTOBUF_HEADER )
36
37
end
37
38
38
- validate_status !( response : response , statuses : [ 200 ] )
39
+ validate_status_200 !( response )
39
40
protobuf_decode! ( response . body , Bbs ::Models ::UpsertDomainResponse )
40
41
end
41
42
@@ -46,7 +47,7 @@ def desire_task(task_definition:, domain:, task_guid:)
46
47
client . post ( Routes ::DESIRE_TASK , request , PROTOBUF_HEADER )
47
48
end
48
49
49
- validate_status !( response : response , statuses : [ 200 ] )
50
+ validate_status_200 !( response )
50
51
protobuf_decode! ( response . body , Bbs ::Models ::TaskLifecycleResponse )
51
52
end
52
53
@@ -57,7 +58,7 @@ def task_by_guid(task_guid)
57
58
client . post ( Routes ::TASK_BY_GUID , request , PROTOBUF_HEADER )
58
59
end
59
60
60
- validate_status !( response : response , statuses : [ 200 ] )
61
+ validate_status_200 !( response )
61
62
protobuf_decode! ( response . body , Bbs ::Models ::TaskResponse )
62
63
end
63
64
@@ -68,7 +69,7 @@ def tasks(domain: '', cell_id: '')
68
69
client . post ( Routes ::LIST_TASKS , request , PROTOBUF_HEADER )
69
70
end
70
71
71
- validate_status !( response : response , statuses : [ 200 ] )
72
+ validate_status_200 !( response )
72
73
protobuf_decode! ( response . body , Bbs ::Models ::TasksResponse )
73
74
end
74
75
@@ -79,7 +80,7 @@ def cancel_task(task_guid)
79
80
client . post ( Routes ::CANCEL_TASK , request , PROTOBUF_HEADER )
80
81
end
81
82
82
- validate_status !( response : response , statuses : [ 200 ] )
83
+ validate_status_200 !( response )
83
84
protobuf_decode! ( response . body , Bbs ::Models ::TaskLifecycleResponse )
84
85
end
85
86
@@ -90,7 +91,7 @@ def desire_lrp(lrp)
90
91
client . post ( Routes ::DESIRE_LRP , request , PROTOBUF_HEADER )
91
92
end
92
93
93
- validate_status !( response : response , statuses : [ 200 ] )
94
+ validate_status_200 !( response )
94
95
protobuf_decode! ( response . body , Bbs ::Models ::DesiredLRPLifecycleResponse )
95
96
end
96
97
@@ -101,7 +102,7 @@ def desired_lrp_by_process_guid(process_guid)
101
102
client . post ( Routes ::DESIRED_LRP_BY_PROCESS_GUID , request , PROTOBUF_HEADER )
102
103
end
103
104
104
- validate_status !( response : response , statuses : [ 200 ] )
105
+ validate_status_200 !( response )
105
106
protobuf_decode! ( response . body , Bbs ::Models ::DesiredLRPResponse )
106
107
end
107
108
@@ -112,7 +113,7 @@ def update_desired_lrp(process_guid, lrp_update)
112
113
client . post ( Routes ::UPDATE_DESIRED_LRP , request , PROTOBUF_HEADER )
113
114
end
114
115
115
- validate_status !( response : response , statuses : [ 200 ] )
116
+ validate_status_200 !( response )
116
117
protobuf_decode! ( response . body , Bbs ::Models ::DesiredLRPLifecycleResponse )
117
118
end
118
119
@@ -123,7 +124,7 @@ def remove_desired_lrp(process_guid)
123
124
client . post ( Routes ::REMOVE_DESIRED_LRP , request , PROTOBUF_HEADER )
124
125
end
125
126
126
- validate_status !( response : response , statuses : [ 200 ] )
127
+ validate_status_200 !( response )
127
128
protobuf_decode! ( response . body , Bbs ::Models ::DesiredLRPLifecycleResponse )
128
129
end
129
130
@@ -134,7 +135,7 @@ def retire_actual_lrp(actual_lrp_key)
134
135
client . post ( Routes ::RETIRE_ACTUAL_LRP , request , PROTOBUF_HEADER )
135
136
end
136
137
137
- validate_status !( response : response , statuses : [ 200 ] )
138
+ validate_status_200 !( response )
138
139
protobuf_decode! ( response . body , Bbs ::Models ::ActualLRPLifecycleResponse )
139
140
end
140
141
@@ -145,7 +146,7 @@ def desired_lrp_scheduling_infos(domain)
145
146
client . post ( Routes ::DESIRED_LRP_SCHEDULING_INFOS , request , PROTOBUF_HEADER )
146
147
end
147
148
148
- validate_status !( response : response , statuses : [ 200 ] )
149
+ validate_status_200 !( response )
149
150
protobuf_decode! ( response . body , Bbs ::Models ::DesiredLRPSchedulingInfosResponse )
150
151
end
151
152
@@ -156,7 +157,7 @@ def actual_lrps_by_process_guid(process_guid)
156
157
client . post ( Routes ::ACTUAL_LRPS , request , PROTOBUF_HEADER )
157
158
end
158
159
159
- validate_status !( response : response , statuses : [ 200 ] )
160
+ validate_status_200 !( response )
160
161
protobuf_decode! ( response . body , Bbs ::Models ::ActualLRPsResponse )
161
162
end
162
163
@@ -180,8 +181,8 @@ def protobuf_encode!(hash, protobuf_message_class)
180
181
raise EncodeError . new ( e . message )
181
182
end
182
183
183
- def validate_status !( response : , statuses : )
184
- raise ResponseError . new ( "failed with status: #{ response . status } , body: #{ response . body } " ) unless statuses . include? ( response . status )
184
+ def validate_status_200 !( response )
185
+ raise ResponseError . new ( "failed with status: #{ response . status } , body: #{ response . body } " ) unless response . status == 200
185
186
end
186
187
187
188
def protobuf_decode! ( message , protobuf_decoder )
@@ -191,11 +192,12 @@ def protobuf_decode!(message, protobuf_decoder)
191
192
end
192
193
193
194
def build_client ( url , ca_cert_file , client_cert_file , client_key_file ,
194
- connect_timeout , send_timeout , receive_timeout )
195
- client = HTTPClient . new ( base_url : url )
196
- client . connect_timeout = connect_timeout
197
- client . send_timeout = send_timeout
198
- client . receive_timeout = receive_timeout
195
+ connect_timeout , send_timeout , receive_timeout )
196
+ client = HTTPClient . new ( base_url : url )
197
+ client . socket_connect_timeout = connect_timeout / 2
198
+ client . connect_timeout = connect_timeout
199
+ client . send_timeout = send_timeout
200
+ client . receive_timeout = receive_timeout
199
201
client . ssl_config . set_client_cert_file ( client_cert_file , client_key_file )
200
202
client . ssl_config . set_trust_ca ( ca_cert_file )
201
203
client
0 commit comments