pagerduty 2.1.1 → 4.0.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +476 -0
- data/README.md +161 -59
- data/lib/pagerduty/events_api_v1.rb +279 -0
- data/lib/pagerduty/events_api_v2.rb +280 -0
- data/lib/pagerduty/http_transport.rb +16 -14
- data/lib/pagerduty/version.rb +4 -2
- data/lib/pagerduty.rb +62 -163
- metadata +24 -48
- data/.gitignore +0 -9
- data/.rubocop.yml +0 -38
- data/.travis.yml +0 -9
- data/Gemfile +0 -4
- data/Rakefile +0 -12
- data/pagerduty.gemspec +0 -32
- data/script/setup.sh +0 -8
- data/spec/pagerduty/http_transport_spec.rb +0 -132
- data/spec/pagerduty_spec.rb +0 -364
- data/spec/spec_helper.rb +0 -14
- data/spec/support/warnings.rb +0 -13
data/spec/pagerduty_spec.rb
DELETED
@@ -1,364 +0,0 @@
|
|
1
|
-
|
2
|
-
require "spec_helper"
|
3
|
-
|
4
|
-
describe Pagerduty do
|
5
|
-
Given(:pagerduty) { Pagerduty.new(service_key, options) }
|
6
|
-
|
7
|
-
Given(:service_key) { "a-test-service-key" }
|
8
|
-
Given(:options) { { transport: transport } }
|
9
|
-
Given(:transport) { spy }
|
10
|
-
|
11
|
-
describe "#trigger" do
|
12
|
-
describe "provides the correct request" do
|
13
|
-
Given {
|
14
|
-
allow(transport)
|
15
|
-
.to receive(:send_payload)
|
16
|
-
.and_return(standard_response)
|
17
|
-
}
|
18
|
-
|
19
|
-
context "no options" do
|
20
|
-
When(:incident) { pagerduty.trigger("a-test-description") }
|
21
|
-
Then {
|
22
|
-
expect(transport).to have_received(:send_payload).with(
|
23
|
-
service_key: "a-test-service-key",
|
24
|
-
event_type: "trigger",
|
25
|
-
description: "a-test-description",
|
26
|
-
)
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
|
-
context "all options" do
|
31
|
-
When(:incident) {
|
32
|
-
pagerduty.trigger(
|
33
|
-
"a-test-description",
|
34
|
-
incident_key: "a-test-incident-key",
|
35
|
-
client: "a-test-client",
|
36
|
-
client_url: "a-test-client-url",
|
37
|
-
details: { key: "value" },
|
38
|
-
)
|
39
|
-
}
|
40
|
-
Then {
|
41
|
-
expect(transport).to have_received(:send_payload).with(
|
42
|
-
service_key: "a-test-service-key",
|
43
|
-
event_type: "trigger",
|
44
|
-
description: "a-test-description",
|
45
|
-
incident_key: "a-test-incident-key",
|
46
|
-
client: "a-test-client",
|
47
|
-
client_url: "a-test-client-url",
|
48
|
-
details: { key: "value" },
|
49
|
-
)
|
50
|
-
}
|
51
|
-
end
|
52
|
-
|
53
|
-
context "with proxy" do
|
54
|
-
Given(:options) {
|
55
|
-
{
|
56
|
-
proxy_host: "test-proxy-host",
|
57
|
-
proxy_port: "test-proxy-port",
|
58
|
-
proxy_username: "test-proxy-username",
|
59
|
-
proxy_password: "test-proxy-password",
|
60
|
-
}
|
61
|
-
}
|
62
|
-
Given {
|
63
|
-
allow(Pagerduty::HttpTransport)
|
64
|
-
.to receive(:new)
|
65
|
-
.and_return(transport)
|
66
|
-
}
|
67
|
-
When(:incident) { pagerduty.trigger("a-test-description") }
|
68
|
-
Then {
|
69
|
-
expect(Pagerduty::HttpTransport).to have_received(:new).with(
|
70
|
-
proxy_host: "test-proxy-host",
|
71
|
-
proxy_port: "test-proxy-port",
|
72
|
-
proxy_username: "test-proxy-username",
|
73
|
-
proxy_password: "test-proxy-password",
|
74
|
-
)
|
75
|
-
}
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe "handles all responses" do
|
80
|
-
context "PagerDuty successfully creates the incident" do
|
81
|
-
Given {
|
82
|
-
allow(transport).to receive(:send_payload).and_return(
|
83
|
-
"status" => "success",
|
84
|
-
"incident_key" => "My Incident Key",
|
85
|
-
"message" => "Event processed",
|
86
|
-
)
|
87
|
-
}
|
88
|
-
When(:incident) { pagerduty.trigger("description") }
|
89
|
-
Then { expect(incident).to be_a PagerdutyIncident }
|
90
|
-
Then { incident.service_key == service_key }
|
91
|
-
Then { incident.incident_key == "My Incident Key" }
|
92
|
-
Then { incident.instance_variable_get("@transport") == transport }
|
93
|
-
end
|
94
|
-
|
95
|
-
context "PagerDuty fails to create the incident" do
|
96
|
-
Given {
|
97
|
-
allow(transport).to receive(:send_payload).and_return(
|
98
|
-
"status" => "failure",
|
99
|
-
"message" => "Event not processed",
|
100
|
-
)
|
101
|
-
}
|
102
|
-
When(:incident) { pagerduty.trigger("description") }
|
103
|
-
Then { expect(incident).to have_raised PagerdutyException }
|
104
|
-
end
|
105
|
-
|
106
|
-
context "PagerDuty responds with HTTP bad request" do
|
107
|
-
Given {
|
108
|
-
allow(transport)
|
109
|
-
.to receive(:send_payload)
|
110
|
-
.and_raise(Net::HTTPServerException.new(nil, nil))
|
111
|
-
}
|
112
|
-
When(:incident) { pagerduty.trigger("description") }
|
113
|
-
Then { expect(incident).to have_raised Net::HTTPServerException }
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
describe "#get_incident" do
|
119
|
-
When(:incident) { pagerduty.get_incident(incident_key) }
|
120
|
-
|
121
|
-
context "a valid incident_key" do
|
122
|
-
Given(:incident_key) { "a-test-incident-key" }
|
123
|
-
Then { expect(incident).to be_a PagerdutyIncident }
|
124
|
-
Then { incident.service_key == service_key }
|
125
|
-
Then { incident.incident_key == incident_key }
|
126
|
-
Then { incident.instance_variable_get("@transport") == transport }
|
127
|
-
end
|
128
|
-
|
129
|
-
context "a nil incident_key" do
|
130
|
-
Given(:incident_key) { nil }
|
131
|
-
Then { expect(incident).to have_failed ArgumentError }
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
describe PagerdutyIncident do
|
136
|
-
Given(:incident) {
|
137
|
-
PagerdutyIncident.new(service_key, incident_key, options)
|
138
|
-
}
|
139
|
-
Given(:incident_key) { "a-test-incident-key" }
|
140
|
-
|
141
|
-
describe "#acknowledge" do
|
142
|
-
describe "provides the correct request" do
|
143
|
-
Given {
|
144
|
-
allow(transport)
|
145
|
-
.to receive(:send_payload)
|
146
|
-
.and_return(standard_response)
|
147
|
-
}
|
148
|
-
|
149
|
-
context "no args" do
|
150
|
-
When(:acknowledge) { incident.acknowledge }
|
151
|
-
Then {
|
152
|
-
expect(transport).to have_received(:send_payload).with(
|
153
|
-
event_type: "acknowledge",
|
154
|
-
service_key: "a-test-service-key",
|
155
|
-
incident_key: "a-test-incident-key",
|
156
|
-
)
|
157
|
-
}
|
158
|
-
end
|
159
|
-
|
160
|
-
context "a description" do
|
161
|
-
When(:acknowledge) { incident.acknowledge("test-description") }
|
162
|
-
Then {
|
163
|
-
expect(transport).to have_received(:send_payload).with(
|
164
|
-
event_type: "acknowledge",
|
165
|
-
service_key: "a-test-service-key",
|
166
|
-
incident_key: "a-test-incident-key",
|
167
|
-
description: "test-description",
|
168
|
-
)
|
169
|
-
}
|
170
|
-
end
|
171
|
-
|
172
|
-
context "a description and details" do
|
173
|
-
When(:acknowledge) {
|
174
|
-
incident.acknowledge("test-description", my: "detail")
|
175
|
-
}
|
176
|
-
Then {
|
177
|
-
expect(transport).to have_received(:send_payload).with(
|
178
|
-
event_type: "acknowledge",
|
179
|
-
service_key: "a-test-service-key",
|
180
|
-
incident_key: "a-test-incident-key",
|
181
|
-
description: "test-description",
|
182
|
-
details: { my: "detail" },
|
183
|
-
)
|
184
|
-
}
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
describe "handles all responses" do
|
189
|
-
context "PagerDuty successfully acknowledges the incident" do
|
190
|
-
Given {
|
191
|
-
allow(transport).to receive(:send_payload).and_return(
|
192
|
-
"status" => "success",
|
193
|
-
"incident_key" => "a-test-incident-key",
|
194
|
-
"message" => "Event acknowledged",
|
195
|
-
)
|
196
|
-
}
|
197
|
-
When(:acknowledge) { incident.acknowledge }
|
198
|
-
Then { expect(acknowledge).to be incident }
|
199
|
-
end
|
200
|
-
|
201
|
-
context "PagerDuty fails to acknowledge the incident" do
|
202
|
-
Given {
|
203
|
-
allow(transport).to receive(:send_payload).and_return(
|
204
|
-
"status" => "failure",
|
205
|
-
"incident_key" => "a-test-incident-key",
|
206
|
-
"message" => "Event not acknowledged",
|
207
|
-
)
|
208
|
-
}
|
209
|
-
When(:acknowledge) { incident.acknowledge }
|
210
|
-
Then { expect(acknowledge).to have_failed PagerdutyException }
|
211
|
-
end
|
212
|
-
|
213
|
-
context "PagerDuty responds with HTTP bad request" do
|
214
|
-
Given {
|
215
|
-
allow(transport)
|
216
|
-
.to receive(:send_payload)
|
217
|
-
.and_raise(Net::HTTPServerException.new(nil, nil))
|
218
|
-
}
|
219
|
-
When(:acknowledge) { incident.acknowledge }
|
220
|
-
Then { expect(acknowledge).to have_failed Net::HTTPServerException }
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
describe "#resolve" do
|
226
|
-
describe "provides the correct request" do
|
227
|
-
Given {
|
228
|
-
allow(transport)
|
229
|
-
.to receive(:send_payload)
|
230
|
-
.and_return(standard_response)
|
231
|
-
}
|
232
|
-
|
233
|
-
context "no args" do
|
234
|
-
When(:resolve) { incident.resolve }
|
235
|
-
Then {
|
236
|
-
expect(transport).to have_received(:send_payload).with(
|
237
|
-
event_type: "resolve",
|
238
|
-
service_key: "a-test-service-key",
|
239
|
-
incident_key: "a-test-incident-key",
|
240
|
-
)
|
241
|
-
}
|
242
|
-
end
|
243
|
-
|
244
|
-
context "a description" do
|
245
|
-
When(:resolve) { incident.resolve("test-description") }
|
246
|
-
Then {
|
247
|
-
expect(transport).to have_received(:send_payload).with(
|
248
|
-
event_type: "resolve",
|
249
|
-
service_key: "a-test-service-key",
|
250
|
-
incident_key: "a-test-incident-key",
|
251
|
-
description: "test-description",
|
252
|
-
)
|
253
|
-
}
|
254
|
-
end
|
255
|
-
|
256
|
-
context "a description and details" do
|
257
|
-
When(:resolve) { incident.resolve("test-description", my: "detail") }
|
258
|
-
Then {
|
259
|
-
expect(transport).to have_received(:send_payload).with(
|
260
|
-
event_type: "resolve",
|
261
|
-
service_key: "a-test-service-key",
|
262
|
-
incident_key: "a-test-incident-key",
|
263
|
-
description: "test-description",
|
264
|
-
details: { my: "detail" },
|
265
|
-
)
|
266
|
-
}
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
describe "handles all responses" do
|
271
|
-
context "PagerDuty successfully resolves the incident" do
|
272
|
-
Given {
|
273
|
-
allow(transport).to receive(:send_payload).and_return(
|
274
|
-
"status" => "success",
|
275
|
-
"incident_key" => "a-test-incident-key",
|
276
|
-
"message" => "Event resolved",
|
277
|
-
)
|
278
|
-
}
|
279
|
-
When(:resolve) { incident.resolve }
|
280
|
-
Then { expect(resolve).to be incident }
|
281
|
-
end
|
282
|
-
|
283
|
-
context "PagerDuty fails to create the incident" do
|
284
|
-
Given {
|
285
|
-
allow(transport).to receive(:send_payload).and_return(
|
286
|
-
"status" => "failure",
|
287
|
-
"message" => "Event not resolved",
|
288
|
-
)
|
289
|
-
}
|
290
|
-
When(:resolve) { incident.resolve }
|
291
|
-
Then { expect(resolve).to have_failed PagerdutyException }
|
292
|
-
end
|
293
|
-
|
294
|
-
context "PagerDuty responds with HTTP bad request" do
|
295
|
-
Given {
|
296
|
-
allow(transport)
|
297
|
-
.to receive(:send_payload)
|
298
|
-
.and_raise(Net::HTTPServerException.new(nil, nil))
|
299
|
-
}
|
300
|
-
When(:resolve) { incident.resolve }
|
301
|
-
Then { expect(resolve).to have_failed Net::HTTPServerException }
|
302
|
-
end
|
303
|
-
end
|
304
|
-
end
|
305
|
-
|
306
|
-
describe "#trigger" do
|
307
|
-
describe "provides the correct request" do
|
308
|
-
Given {
|
309
|
-
allow(transport)
|
310
|
-
.to receive(:send_payload)
|
311
|
-
.and_return(standard_response)
|
312
|
-
}
|
313
|
-
|
314
|
-
context "no options" do
|
315
|
-
Given(:incident_key) { "instance incident_key" }
|
316
|
-
When(:trigger) { incident.trigger("description") }
|
317
|
-
Then {
|
318
|
-
expect(transport).to have_received(:send_payload).with(
|
319
|
-
incident_key: "instance incident_key",
|
320
|
-
service_key: "a-test-service-key",
|
321
|
-
event_type: "trigger",
|
322
|
-
description: "description",
|
323
|
-
)
|
324
|
-
}
|
325
|
-
end
|
326
|
-
|
327
|
-
context "with incident_key option" do
|
328
|
-
When(:trigger) {
|
329
|
-
incident.trigger(
|
330
|
-
"description",
|
331
|
-
incident_key: "method param incident_key",
|
332
|
-
)
|
333
|
-
}
|
334
|
-
Then {
|
335
|
-
expect(transport).to have_received(:send_payload).with(
|
336
|
-
incident_key: "method param incident_key",
|
337
|
-
service_key: "a-test-service-key",
|
338
|
-
event_type: "trigger",
|
339
|
-
description: "description",
|
340
|
-
)
|
341
|
-
}
|
342
|
-
end
|
343
|
-
end
|
344
|
-
end
|
345
|
-
end
|
346
|
-
|
347
|
-
def standard_response
|
348
|
-
{ "status" => "success", "incident_key" => "My Incident Key" }
|
349
|
-
end
|
350
|
-
|
351
|
-
describe PagerdutyException do
|
352
|
-
Given(:pagerduty_instance) { double }
|
353
|
-
Given(:api_response) { double }
|
354
|
-
Given(:message) { "a test error message" }
|
355
|
-
|
356
|
-
When(:pagerduty_exception) {
|
357
|
-
PagerdutyException.new(pagerduty_instance, api_response, message)
|
358
|
-
}
|
359
|
-
|
360
|
-
Then { pagerduty_exception.pagerduty_instance == pagerduty_instance }
|
361
|
-
Then { pagerduty_exception.api_response == api_response }
|
362
|
-
Then { pagerduty_exception.message == message }
|
363
|
-
end
|
364
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
|
2
|
-
Dir[File.expand_path("support/**/*.rb", __dir__)].each { |f| require f }
|
3
|
-
|
4
|
-
Warnings.silenced do
|
5
|
-
require "rspec/given"
|
6
|
-
require "json"
|
7
|
-
require "net/https"
|
8
|
-
end
|
9
|
-
|
10
|
-
require "pagerduty"
|
11
|
-
|
12
|
-
RSpec.configure do |config|
|
13
|
-
config.color = true
|
14
|
-
end
|