flapjack 0.8.12 → 0.9.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.
@@ -1,4 +1,7 @@
1
1
  <%
2
+ require_css 'bootstrap'
3
+ require_css 'screen'
4
+ require_css 'font-awesome'
2
5
  require_css 'tablesort'
3
6
 
4
7
  require_js 'jquery-1.10.2'
@@ -13,9 +16,6 @@
13
16
  <head>
14
17
  <title><%= h include_page_title %></title>
15
18
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
16
- <link rel="stylesheet" href="/css/bootstrap.css" media="screen">
17
- <link rel="stylesheet" href="/css/screen.css" media="screen">
18
- <link rel="stylesheet" href="/css/font-awesome.css">
19
19
  <link rel="shortcut icon" href="/img/flapjack-favicon-64-32-24-16.ico"> <!-- thank you http://xiconeditor.com/ -->
20
20
  <%= include_required_css %>
21
21
  <%= include_required_js %>
@@ -2,8 +2,8 @@
2
2
  page_title 'Internal Statistics'
3
3
  require_css 'nv.d3'
4
4
  require_js 'jquery-1.10.2'
5
- require_js 'd3.v3.min'
6
- require_js 'nv.d3.min'
5
+ require_js 'd3.v3'
6
+ require_js 'nv.d3'
7
7
  require_js 'self_stats'
8
8
  %>
9
9
  <div id="data-api-url" data-api-url="<%= @api_url %>">
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  module Flapjack
4
- VERSION = "0.8.12"
4
+ VERSION = "0.9.0"
5
5
  end
6
6
 
@@ -16,42 +16,46 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
16
16
  let(:check_presenter) { double(Flapjack::Gateways::JSONAPI::CheckPresenter) }
17
17
 
18
18
  it "returns the status for all entities" do
19
- status = double('status')
20
- expect(status).to receive(:as_json).and_return({:status => 'data'})
19
+ status = {'status' => 'data'}
21
20
  expect(check_presenter).to receive(:status).and_return(status)
22
21
 
23
22
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
24
23
  with(entity_check).and_return(check_presenter)
25
24
 
26
- expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
27
- with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
25
+ expect(Flapjack::Data::EntityCheck).to receive(:for_entity).
26
+ with(entity, 'SSH', :redis => redis).and_return(entity_check)
28
27
 
29
28
  expect(entity).to receive(:check_list).and_return(['SSH'])
30
29
 
31
30
  expect(Flapjack::Data::Entity).to receive(:all).
32
31
  with(:redis => redis).and_return([entity])
33
32
 
34
- expect(entity).to receive(:name).exactly(3).times.and_return(entity_name)
35
- expect(entity).to receive(:id).and_return(entity_id)
33
+ expect(entity).to receive(:name).twice.and_return(entity_name)
34
+ expect(entity).to receive(:id).twice.and_return(entity_id)
36
35
 
37
- expect(entity_check).to receive(:check).twice.and_return('SSH')
36
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
38
37
 
39
38
  result = {
40
- :status_reports => [{
41
- 'id' => entity_id,
42
- 'name' => entity_name,
43
- 'links' => {
44
- 'checks' => ["#{entity_name}:SSH"],
39
+ :status_reports => [{
40
+ :status => 'data',
41
+ :links => {
42
+ :entity => [entity_id],
43
+ :check => ["#{entity_name}:SSH"]
44
+ }}],
45
+ :linked => {
46
+ :entities => [{
47
+ :id => entity_id,
48
+ :name => entity_name,
49
+ :links => {
50
+ :checks => ["#{entity_name}:SSH"],
45
51
  }
46
52
  }],
47
- :linked => {
48
- :checks => [{
49
- :id => "#{entity_name}:SSH",
50
- :name => 'SSH',
51
- :statuses => {'status' => 'data'}
52
- }]
53
- }
53
+ :checks => [{
54
+ :id => "#{entity_name}:SSH",
55
+ :name => 'SSH',
56
+ }]
54
57
  }
58
+ }
55
59
 
56
60
  aget "/status_report/entities"
57
61
  expect(last_response).to be_ok
@@ -59,40 +63,44 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
59
63
  end
60
64
 
61
65
  it "returns the status for all checks on an entity" do
62
- status = double('status')
63
- expect(status).to receive(:as_json).and_return({:status => 'data'})
66
+ status = {'status' => 'data'}
64
67
  expect(check_presenter).to receive(:status).and_return(status)
65
68
 
66
69
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
67
70
  with(entity_check).and_return(check_presenter)
68
71
 
69
- expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
70
- with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
72
+ expect(Flapjack::Data::EntityCheck).to receive(:for_entity).
73
+ with(entity, 'SSH', :redis => redis).and_return(entity_check)
71
74
 
72
75
  expect(entity).to receive(:check_list).and_return(['SSH'])
73
76
 
74
77
  expect(Flapjack::Data::Entity).to receive(:find_by_id).
75
78
  with(entity_id, :redis => redis).and_return(entity)
76
79
 
77
- expect(entity).to receive(:name).exactly(3).times.and_return(entity_name)
78
- expect(entity).to receive(:id).and_return(entity_id)
80
+ expect(entity).to receive(:name).twice.and_return(entity_name)
81
+ expect(entity).to receive(:id).twice.and_return(entity_id)
79
82
 
80
- expect(entity_check).to receive(:check).twice.and_return('SSH')
83
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
81
84
 
82
85
  result = {
83
- :status_reports => [{
84
- 'id' => entity_id,
85
- 'name' => entity_name,
86
- 'links' => {
87
- 'checks' => ["#{entity_name}:SSH"],
86
+ :status_reports => [{
87
+ :status => 'data',
88
+ :links => {
89
+ :entity => [entity_id],
90
+ :check => ["#{entity_name}:SSH"]
91
+ }}],
92
+ :linked => {
93
+ :entities => [{
94
+ :id => entity_id,
95
+ :name => entity_name,
96
+ :links => {
97
+ :checks => ["#{entity_name}:SSH"],
88
98
  }
89
99
  }],
90
- :linked => {
91
- :checks => [{
92
- :id => "#{entity_name}:SSH",
93
- :name => 'SSH',
94
- :statuses => {'status' => 'data'}
95
- }]
100
+ :checks => [{
101
+ :id => "#{entity_name}:SSH",
102
+ :name => 'SSH',
103
+ }]
96
104
  }
97
105
  }
98
106
 
@@ -110,8 +118,7 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
110
118
  end
111
119
 
112
120
  it "returns the status for an entity check" do
113
- status = double('status')
114
- expect(status).to receive(:as_json).and_return({:status => 'data'})
121
+ status = {'status' => 'data'}
115
122
  expect(check_presenter).to receive(:status).and_return(status)
116
123
 
117
124
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
@@ -120,26 +127,31 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
120
127
  expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
121
128
  with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
122
129
 
130
+ expect(entity).to receive(:name).twice.and_return(entity_name)
123
131
  expect(entity).to receive(:id).and_return(entity_id)
124
132
 
125
- expect(entity).to receive(:name).and_return(entity_name)
126
133
  expect(entity_check).to receive(:entity).and_return(entity)
127
- expect(entity_check).to receive(:check).twice.and_return('SSH')
134
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
128
135
 
129
136
  result = {
130
- :status_reports => [{
131
- 'id' => entity_id,
132
- 'name' => entity_name,
133
- 'links' => {
134
- 'checks' => ["#{entity_name}:SSH"],
137
+ :status_reports => [{
138
+ :status => 'data',
139
+ :links => {
140
+ :entity => [entity_id],
141
+ :check => ["#{entity_name}:SSH"]
142
+ }}],
143
+ :linked => {
144
+ :entities => [{
145
+ :id => entity_id,
146
+ :name => entity_name,
147
+ :links => {
148
+ :checks => ["#{entity_name}:SSH"],
135
149
  }
136
150
  }],
137
- :linked => {
138
- :checks => [{
139
- :id => "#{entity_name}:SSH",
140
- :name => 'SSH',
141
- :statuses => {'status' => 'data'}
142
- }]
151
+ :checks => [{
152
+ :id => "#{entity_name}:SSH",
153
+ :name => 'SSH',
154
+ }]
143
155
  }
144
156
  }
145
157
 
@@ -165,40 +177,44 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
165
177
  end
166
178
 
167
179
  it "returns a list of scheduled maintenance periods for an entity" do
168
- sched_maint = double('scheduled_maintenances')
169
- expect(sched_maint).to receive(:as_json).and_return({:scheduled_maintenances => 'data'})
180
+ sched_maint = {:scheduled_maintenances => 'data'}
170
181
  expect(check_presenter).to receive(:scheduled_maintenance).and_return(sched_maint)
171
182
 
172
183
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
173
184
  with(entity_check).and_return(check_presenter)
174
185
 
175
- expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
176
- with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
186
+ expect(Flapjack::Data::EntityCheck).to receive(:for_entity).
187
+ with(entity, 'SSH', :redis => redis).and_return(entity_check)
177
188
 
178
189
  expect(entity).to receive(:check_list).and_return(['SSH'])
179
190
 
180
191
  expect(Flapjack::Data::Entity).to receive(:find_by_id).
181
192
  with(entity_id, :redis => redis).and_return(entity)
182
193
 
183
- expect(entity).to receive(:name).exactly(3).times.and_return(entity_name)
184
- expect(entity).to receive(:id).and_return(entity_id)
194
+ expect(entity).to receive(:name).twice.and_return(entity_name)
195
+ expect(entity).to receive(:id).twice.and_return(entity_id)
185
196
 
186
- expect(entity_check).to receive(:check).twice.and_return('SSH')
197
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
187
198
 
188
199
  result = {
189
- :scheduled_maintenance_reports => [{
190
- 'id' => entity_id,
191
- 'name' => entity_name,
192
- 'links' => {
193
- 'checks' => ["#{entity_name}:SSH"],
200
+ :scheduled_maintenance_reports => [{
201
+ :scheduled_maintenances => 'data',
202
+ :links => {
203
+ :entity => [entity_id],
204
+ :check => ["#{entity_name}:SSH"]
205
+ }}],
206
+ :linked => {
207
+ :entities => [{
208
+ :id => entity_id,
209
+ :name => entity_name,
210
+ :links => {
211
+ :checks => ["#{entity_name}:SSH"],
194
212
  }
195
213
  }],
196
- :linked => {
197
- :checks => [{
198
- :id => "#{entity_name}:SSH",
199
- :name => 'SSH',
200
- :scheduled_maintenances => {'scheduled_maintenances' => 'data'}
201
- }]
214
+ :checks => [{
215
+ :id => "#{entity_name}:SSH",
216
+ :name => 'SSH',
217
+ }]
202
218
  }
203
219
  }
204
220
 
@@ -211,41 +227,45 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
211
227
  start = Time.parse('1 Jan 2012')
212
228
  finish = Time.parse('6 Jan 2012')
213
229
 
214
- sched_maint = double('scheduled_maintenances')
215
- expect(sched_maint).to receive(:as_json).and_return({:scheduled_maintenances => 'data'})
230
+ sched_maint = {:scheduled_maintenances => 'data'}
216
231
  expect(check_presenter).to receive(:scheduled_maintenance).
217
232
  with(start.to_i, finish.to_i).and_return(sched_maint)
218
233
 
219
234
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
220
235
  with(entity_check).and_return(check_presenter)
221
236
 
222
- expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
223
- with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
237
+ expect(Flapjack::Data::EntityCheck).to receive(:for_entity).
238
+ with(entity, 'SSH', :redis => redis).and_return(entity_check)
224
239
 
225
240
  expect(entity).to receive(:check_list).and_return(['SSH'])
226
241
 
227
242
  expect(Flapjack::Data::Entity).to receive(:find_by_id).
228
243
  with(entity_id, :redis => redis).and_return(entity)
229
244
 
230
- expect(entity).to receive(:name).exactly(3).times.and_return(entity_name)
231
- expect(entity).to receive(:id).and_return(entity_id)
245
+ expect(entity).to receive(:name).twice.and_return(entity_name)
246
+ expect(entity).to receive(:id).twice.and_return(entity_id)
232
247
 
233
- expect(entity_check).to receive(:check).twice.and_return('SSH')
248
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
234
249
 
235
250
  result = {
236
- :scheduled_maintenance_reports => [{
237
- 'id' => entity_id,
238
- 'name' => entity_name,
239
- 'links' => {
240
- 'checks' => ["#{entity_name}:SSH"],
251
+ :scheduled_maintenance_reports => [{
252
+ :scheduled_maintenances => 'data',
253
+ :links => {
254
+ :entity => [entity_id],
255
+ :check => ["#{entity_name}:SSH"]
256
+ }}],
257
+ :linked => {
258
+ :entities => [{
259
+ :id => entity_id,
260
+ :name => entity_name,
261
+ :links => {
262
+ :checks => ["#{entity_name}:SSH"],
241
263
  }
242
264
  }],
243
- :linked => {
244
- :checks => [{
245
- :id => "#{entity_name}:SSH",
246
- :name => 'SSH',
247
- :scheduled_maintenances => {'scheduled_maintenances' => 'data'}
248
- }]
265
+ :checks => [{
266
+ :id => "#{entity_name}:SSH",
267
+ :name => 'SSH',
268
+ }]
249
269
  }
250
270
  }
251
271
 
@@ -256,8 +276,7 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
256
276
  end
257
277
 
258
278
  it "returns a list of scheduled maintenance periods for a check on an entity" do
259
- sched_maint = double('scheduled_maintenances')
260
- expect(sched_maint).to receive(:as_json).and_return({:scheduled_maintenances => 'data'})
279
+ sched_maint = {:scheduled_maintenances => 'data'}
261
280
  expect(check_presenter).to receive(:scheduled_maintenance).and_return(sched_maint)
262
281
 
263
282
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
@@ -266,26 +285,31 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
266
285
  expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
267
286
  with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
268
287
 
288
+ expect(entity).to receive(:name).twice.and_return(entity_name)
269
289
  expect(entity).to receive(:id).and_return(entity_id)
270
290
 
271
- expect(entity).to receive(:name).and_return(entity_name)
272
291
  expect(entity_check).to receive(:entity).and_return(entity)
273
- expect(entity_check).to receive(:check).twice.and_return('SSH')
292
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
274
293
 
275
294
  result = {
276
- :scheduled_maintenance_reports => [{
277
- 'id' => entity_id,
278
- 'name' => entity_name,
279
- 'links' => {
280
- 'checks' => ["#{entity_name}:SSH"],
295
+ :scheduled_maintenance_reports => [{
296
+ :scheduled_maintenances => 'data',
297
+ :links => {
298
+ :entity => [entity_id],
299
+ :check => ["#{entity_name}:SSH"]
300
+ }}],
301
+ :linked => {
302
+ :entities => [{
303
+ :id => entity_id,
304
+ :name => entity_name,
305
+ :links => {
306
+ :checks => ["#{entity_name}:SSH"],
281
307
  }
282
308
  }],
283
- :linked => {
284
- :checks => [{
285
- :id => "#{entity_name}:SSH",
286
- :name => 'SSH',
287
- :scheduled_maintenances => {'scheduled_maintenances' => 'data'}
288
- }]
309
+ :checks => [{
310
+ :id => "#{entity_name}:SSH",
311
+ :name => 'SSH',
312
+ }]
289
313
  }
290
314
  }
291
315
 
@@ -295,40 +319,44 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
295
319
  end
296
320
 
297
321
  it "returns a list of unscheduled maintenance periods for an entity" do
298
- unsched_maint = double('unscheduled_maintenances')
299
- expect(unsched_maint).to receive(:as_json).and_return({:unscheduled_maintenances => 'data'})
322
+ unsched_maint = {:unscheduled_maintenances => 'data'}
300
323
  expect(check_presenter).to receive(:unscheduled_maintenance).and_return(unsched_maint)
301
324
 
302
325
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
303
326
  with(entity_check).and_return(check_presenter)
304
327
 
305
- expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
306
- with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
328
+ expect(Flapjack::Data::EntityCheck).to receive(:for_entity).
329
+ with(entity, 'SSH', :redis => redis).and_return(entity_check)
307
330
 
308
331
  expect(entity).to receive(:check_list).and_return(['SSH'])
309
332
 
310
333
  expect(Flapjack::Data::Entity).to receive(:find_by_id).
311
334
  with(entity_id, :redis => redis).and_return(entity)
312
335
 
313
- expect(entity).to receive(:name).exactly(3).times.and_return(entity_name)
314
- expect(entity).to receive(:id).and_return(entity_id)
336
+ expect(entity).to receive(:name).twice.and_return(entity_name)
337
+ expect(entity).to receive(:id).twice.and_return(entity_id)
315
338
 
316
- expect(entity_check).to receive(:check).twice.and_return('SSH')
339
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
317
340
 
318
341
  result = {
319
- :unscheduled_maintenance_reports => [{
320
- 'id' => entity_id,
321
- 'name' => entity_name,
322
- 'links' => {
323
- 'checks' => ["#{entity_name}:SSH"],
342
+ :unscheduled_maintenance_reports => [{
343
+ :unscheduled_maintenances => 'data',
344
+ :links => {
345
+ :entity => [entity_id],
346
+ :check => ["#{entity_name}:SSH"]
347
+ }}],
348
+ :linked => {
349
+ :entities => [{
350
+ :id => entity_id,
351
+ :name => entity_name,
352
+ :links => {
353
+ :checks => ["#{entity_name}:SSH"],
324
354
  }
325
355
  }],
326
- :linked => {
327
- :checks => [{
328
- :id => "#{entity_name}:SSH",
329
- :name => 'SSH',
330
- :unscheduled_maintenances => {'unscheduled_maintenances' => 'data'}
331
- }]
356
+ :checks => [{
357
+ :id => "#{entity_name}:SSH",
358
+ :name => 'SSH',
359
+ }]
332
360
  }
333
361
  }
334
362
 
@@ -338,8 +366,7 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
338
366
  end
339
367
 
340
368
  it "returns a list of unscheduled maintenance periods for a check on an entity" do
341
- unsched_maint = double('unscheduled_maintenances')
342
- expect(unsched_maint).to receive(:as_json).and_return({:unscheduled_maintenances => 'data'})
369
+ unsched_maint = {:unscheduled_maintenances => 'data'}
343
370
  expect(check_presenter).to receive(:unscheduled_maintenance).and_return(unsched_maint)
344
371
 
345
372
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
@@ -348,27 +375,31 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
348
375
  expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
349
376
  with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
350
377
 
351
-
378
+ expect(entity).to receive(:name).twice.and_return(entity_name)
352
379
  expect(entity).to receive(:id).and_return(entity_id)
353
380
 
354
- expect(entity).to receive(:name).and_return(entity_name)
355
381
  expect(entity_check).to receive(:entity).and_return(entity)
356
- expect(entity_check).to receive(:check).twice.and_return('SSH')
382
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
357
383
 
358
384
  result = {
359
- :unscheduled_maintenance_reports => [{
360
- 'id' => entity_id,
361
- 'name' => entity_name,
362
- 'links' => {
363
- 'checks' => ["#{entity_name}:SSH"],
385
+ :unscheduled_maintenance_reports => [{
386
+ :unscheduled_maintenances => 'data',
387
+ :links => {
388
+ :entity => [entity_id],
389
+ :check => ["#{entity_name}:SSH"]
390
+ }}],
391
+ :linked => {
392
+ :entities => [{
393
+ :id => entity_id,
394
+ :name => entity_name,
395
+ :links => {
396
+ :checks => ["#{entity_name}:SSH"],
364
397
  }
365
398
  }],
366
- :linked => {
367
- :checks => [{
368
- :id => "#{entity_name}:SSH",
369
- :name => 'SSH',
370
- :unscheduled_maintenances => {'unscheduled_maintenances' => 'data'}
371
- }]
399
+ :checks => [{
400
+ :id => "#{entity_name}:SSH",
401
+ :name => 'SSH',
402
+ }]
372
403
  }
373
404
  }
374
405
 
@@ -381,8 +412,7 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
381
412
  start = Time.parse('1 Jan 2012')
382
413
  finish = Time.parse('6 Jan 2012')
383
414
 
384
- unsched_maint = double('scheduled_maintenances')
385
- expect(unsched_maint).to receive(:as_json).and_return({:unscheduled_maintenances => 'data'})
415
+ unsched_maint = {:unscheduled_maintenances => 'data'}
386
416
  expect(check_presenter).to receive(:unscheduled_maintenance).
387
417
  with(start.to_i, finish.to_i).and_return(unsched_maint)
388
418
 
@@ -392,26 +422,31 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
392
422
  expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
393
423
  with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
394
424
 
425
+ expect(entity).to receive(:name).twice.and_return(entity_name)
395
426
  expect(entity).to receive(:id).and_return(entity_id)
396
427
 
397
- expect(entity).to receive(:name).and_return(entity_name)
398
428
  expect(entity_check).to receive(:entity).and_return(entity)
399
- expect(entity_check).to receive(:check).twice.and_return('SSH')
429
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
400
430
 
401
431
  result = {
402
- :unscheduled_maintenance_reports => [{
403
- 'id' => entity_id,
404
- 'name' => entity_name,
405
- 'links' => {
406
- 'checks' => ["#{entity_name}:SSH"],
432
+ :unscheduled_maintenance_reports => [{
433
+ :unscheduled_maintenances => 'data',
434
+ :links => {
435
+ :entity => [entity_id],
436
+ :check => ["#{entity_name}:SSH"]
437
+ }}],
438
+ :linked => {
439
+ :entities => [{
440
+ :id => entity_id,
441
+ :name => entity_name,
442
+ :links => {
443
+ :checks => ["#{entity_name}:SSH"],
407
444
  }
408
445
  }],
409
- :linked => {
410
- :checks => [{
411
- :id => "#{entity_name}:SSH",
412
- :name => 'SSH',
413
- :unscheduled_maintenances => {'unscheduled_maintenances' => 'data'}
414
- }]
446
+ :checks => [{
447
+ :id => "#{entity_name}:SSH",
448
+ :name => 'SSH',
449
+ }]
415
450
  }
416
451
  }
417
452
 
@@ -422,8 +457,7 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
422
457
  end
423
458
 
424
459
  it "returns a list of outages for a check on an entity" do
425
- outages = double('outages')
426
- expect(outages).to receive(:as_json).and_return({:outages => 'data'})
460
+ outages = {:outages => 'data'}
427
461
  expect(check_presenter).to receive(:outage).and_return(outages)
428
462
 
429
463
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
@@ -432,26 +466,31 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
432
466
  expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
433
467
  with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
434
468
 
469
+ expect(entity).to receive(:name).twice.and_return(entity_name)
435
470
  expect(entity).to receive(:id).and_return(entity_id)
436
471
 
437
- expect(entity).to receive(:name).and_return(entity_name)
438
472
  expect(entity_check).to receive(:entity).and_return(entity)
439
- expect(entity_check).to receive(:check).twice.and_return('SSH')
473
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
440
474
 
441
475
  result = {
442
- :outage_reports => [{
443
- 'id' => entity_id,
444
- 'name' => entity_name,
445
- 'links' => {
446
- 'checks' => ["#{entity_name}:SSH"],
476
+ :outage_reports => [{
477
+ :outages => 'data',
478
+ :links => {
479
+ :entity => [entity_id],
480
+ :check => ["#{entity_name}:SSH"]
481
+ }}],
482
+ :linked => {
483
+ :entities => [{
484
+ :id => entity_id,
485
+ :name => entity_name,
486
+ :links => {
487
+ :checks => ["#{entity_name}:SSH"],
447
488
  }
448
489
  }],
449
- :linked => {
450
- :checks => [{
451
- :id => "#{entity_name}:SSH",
452
- :name => 'SSH',
453
- :outages => {'outages' => 'data'}
454
- }]
490
+ :checks => [{
491
+ :id => "#{entity_name}:SSH",
492
+ :name => 'SSH',
493
+ }]
455
494
  }
456
495
  }
457
496
 
@@ -461,41 +500,44 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
461
500
  end
462
501
 
463
502
  it "returns a list of downtimes for an entity" do
464
- downtime = double('downtime')
465
- expect(downtime).to receive(:as_json).and_return({:downtime => 'data'})
503
+ downtime = {:downtime => 'data'}
466
504
  expect(check_presenter).to receive(:downtime).and_return(downtime)
467
505
 
468
506
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
469
507
  with(entity_check).and_return(check_presenter)
470
508
 
471
- expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
472
- with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
509
+ expect(Flapjack::Data::EntityCheck).to receive(:for_entity).
510
+ with(entity, 'SSH', :redis => redis).and_return(entity_check)
473
511
 
474
512
  expect(entity).to receive(:check_list).and_return(['SSH'])
475
513
 
476
514
  expect(Flapjack::Data::Entity).to receive(:find_by_id).
477
515
  with(entity_id, :redis => redis).and_return(entity)
478
516
 
479
- expect(entity).to receive(:name).exactly(3).times.and_return(entity_name)
480
-
481
- expect(entity).to receive(:id).and_return(entity_id)
517
+ expect(entity).to receive(:name).twice.and_return(entity_name)
518
+ expect(entity).to receive(:id).twice.and_return(entity_id)
482
519
 
483
- expect(entity_check).to receive(:check).twice.and_return('SSH')
520
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
484
521
 
485
522
  result = {
486
- :downtime_reports => [{
487
- 'id' => entity_id,
488
- 'name' => entity_name,
489
- 'links' => {
490
- 'checks' => ["#{entity_name}:SSH"],
523
+ :downtime_reports => [{
524
+ :downtime => 'data',
525
+ :links => {
526
+ :entity => [entity_id],
527
+ :check => ["#{entity_name}:SSH"]
528
+ }}],
529
+ :linked => {
530
+ :entities => [{
531
+ :id => entity_id,
532
+ :name => entity_name,
533
+ :links => {
534
+ :checks => ["#{entity_name}:SSH"],
491
535
  }
492
536
  }],
493
- :linked => {
494
- :checks => [{
495
- :id => "#{entity_name}:SSH",
496
- :name => 'SSH',
497
- :downtimes => {'downtime' => 'data'}
498
- }]
537
+ :checks => [{
538
+ :id => "#{entity_name}:SSH",
539
+ :name => 'SSH',
540
+ }]
499
541
  }
500
542
  }
501
543
 
@@ -505,8 +547,7 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
505
547
  end
506
548
 
507
549
  it "returns a list of downtimes for a check on an entity" do
508
- downtime = double('downtime')
509
- expect(downtime).to receive(:as_json).and_return({:downtime => 'data'})
550
+ downtime = {:downtime => 'data'}
510
551
  expect(check_presenter).to receive(:downtime).and_return(downtime)
511
552
 
512
553
  expect(Flapjack::Gateways::JSONAPI::CheckPresenter).to receive(:new).
@@ -515,26 +556,31 @@ describe 'Flapjack::Gateways::JSONAPI::ReportMethods', :sinatra => true, :logger
515
556
  expect(Flapjack::Data::EntityCheck).to receive(:for_entity_name).
516
557
  with(entity_name, 'SSH', :redis => redis).and_return(entity_check)
517
558
 
559
+ expect(entity).to receive(:name).twice.and_return(entity_name)
518
560
  expect(entity).to receive(:id).and_return(entity_id)
519
561
 
520
- expect(entity).to receive(:name).and_return(entity_name)
521
562
  expect(entity_check).to receive(:entity).and_return(entity)
522
- expect(entity_check).to receive(:check).twice.and_return('SSH')
563
+ expect(entity_check).to receive(:check).exactly(3).times.and_return('SSH')
523
564
 
524
565
  result = {
525
- :downtime_reports => [{
526
- 'id' => entity_id,
527
- 'name' => entity_name,
528
- 'links' => {
529
- 'checks' => ["#{entity_name}:SSH"],
566
+ :downtime_reports => [{
567
+ :downtime => 'data',
568
+ :links => {
569
+ :entity => [entity_id],
570
+ :check => ["#{entity_name}:SSH"]
571
+ }}],
572
+ :linked => {
573
+ :entities => [{
574
+ :id => entity_id,
575
+ :name => entity_name,
576
+ :links => {
577
+ :checks => ["#{entity_name}:SSH"],
530
578
  }
531
579
  }],
532
- :linked => {
533
- :checks => [{
534
- :id => "#{entity_name}:SSH",
535
- :name => 'SSH',
536
- :downtimes => {'downtime' => 'data'}
537
- }]
580
+ :checks => [{
581
+ :id => "#{entity_name}:SSH",
582
+ :name => 'SSH',
583
+ }]
538
584
  }
539
585
  }
540
586