flapjack 0.7.16 → 0.7.17
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.
- data/.gitignore +3 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +9 -0
- data/lib/flapjack/data/entity_check.rb +13 -8
- data/lib/flapjack/data/notification_rule.rb +11 -7
- data/lib/flapjack/gateways/api.rb +28 -655
- data/lib/flapjack/gateways/api/contact_methods.rb +342 -0
- data/lib/flapjack/gateways/api/entity_methods.rb +364 -0
- data/lib/flapjack/gateways/api/entity_presenter.rb +6 -6
- data/lib/flapjack/gateways/api/rack/json_params_parser.rb +26 -0
- data/lib/flapjack/version.rb +1 -1
- data/spec/lib/flapjack/data/entity_check_spec.rb +21 -0
- data/spec/lib/flapjack/data/notification_rule_spec.rb +11 -6
- data/spec/lib/flapjack/gateways/api/contact_methods_spec.rb +709 -0
- data/spec/lib/flapjack/gateways/api/entity_check_presenter_spec.rb +1 -3
- data/spec/lib/flapjack/gateways/api/entity_methods_spec.rb +868 -0
- data/spec/lib/flapjack/gateways/api/entity_presenter_spec.rb +13 -12
- data/spec/lib/flapjack/gateways/api_spec.rb +1 -1520
- data/tmp/redis_find_spurious_unknown_states.rb +52 -0
- metadata +12 -6
- data/.rbenv-version +0 -1
- data/tmp/redis_delete_all_keys.rb +0 -11
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$: << File.dirname(__FILE__) + '/../lib' unless $:.include?(File.dirname(__FILE__) + '/../lib/')
|
4
|
+
|
5
|
+
require 'redis'
|
6
|
+
|
7
|
+
@dry_run = false
|
8
|
+
|
9
|
+
@redis = Redis.new(:db => 0)
|
10
|
+
|
11
|
+
state_lists = @redis.keys("*:*:states")
|
12
|
+
|
13
|
+
puts "#{state_lists.length} state lists found"
|
14
|
+
|
15
|
+
ts_deletions = 0
|
16
|
+
state_deletions = 0
|
17
|
+
|
18
|
+
state_lists.each {|state_list|
|
19
|
+
times = @redis.lrange(state_list, 0, -1)
|
20
|
+
key = state_list.sub(/:states$/, '')
|
21
|
+
#puts "--> #{key} - #{times.length} state changes"
|
22
|
+
|
23
|
+
last_timestamp = ''
|
24
|
+
last_state = ''
|
25
|
+
times.each {|ts|
|
26
|
+
t = Time.at(ts.to_i)
|
27
|
+
raise "Timestamps went backwards!" if ts.to_i < last_timestamp.to_i
|
28
|
+
state = @redis.get("#{key}:#{ts}:state")
|
29
|
+
delete_ts = (ts == last_timestamp) ? true : false
|
30
|
+
delete_ts_message = "DELETE_TS" if delete_ts
|
31
|
+
delete_state = (state == last_state) ? true : false
|
32
|
+
delete_state_message = "DELETE_STATE" if delete_state
|
33
|
+
puts "----> #{key} #{t} #{state} #{delete_ts_message} #{delete_state_message}" if delete_ts || delete_state
|
34
|
+
unless @dry_run
|
35
|
+
@redis.lrem("#{key}:states", 1, ts) if delete_ts
|
36
|
+
if delete_state
|
37
|
+
@redis.lrem("#{key}:states", 0, ts)
|
38
|
+
@redis.zrem("#{key}:sorted_state_timestamps", ts)
|
39
|
+
@redis.del("#{key}:#{ts}:state")
|
40
|
+
@redis.del("#{key}:#{ts}:summary")
|
41
|
+
@redis.del("#{key}:#{ts}:count")
|
42
|
+
@redis.del("#{key}:#{ts}:check_latency")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
ts_deletions += 1 if delete_ts
|
46
|
+
state_deletions += 1 if delete_state
|
47
|
+
last_timestamp = ts
|
48
|
+
last_state = state
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
puts "Summary: #{ts_deletions} duplicate timestamp deletions deleted, #{state_deletions} duplicated states deleted"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flapjack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.17
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-
|
14
|
+
date: 2013-07-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: dante
|
@@ -382,7 +382,6 @@ extra_rdoc_files: []
|
|
382
382
|
files:
|
383
383
|
- .gitignore
|
384
384
|
- .gitmodules
|
385
|
-
- .rbenv-version
|
386
385
|
- .rspec
|
387
386
|
- .travis.yml
|
388
387
|
- CHANGELOG.md
|
@@ -447,8 +446,11 @@ files:
|
|
447
446
|
- lib/flapjack/filters/scheduled_maintenance.rb
|
448
447
|
- lib/flapjack/filters/unscheduled_maintenance.rb
|
449
448
|
- lib/flapjack/gateways/api.rb
|
449
|
+
- lib/flapjack/gateways/api/contact_methods.rb
|
450
450
|
- lib/flapjack/gateways/api/entity_check_presenter.rb
|
451
|
+
- lib/flapjack/gateways/api/entity_methods.rb
|
451
452
|
- lib/flapjack/gateways/api/entity_presenter.rb
|
453
|
+
- lib/flapjack/gateways/api/rack/json_params_parser.rb
|
452
454
|
- lib/flapjack/gateways/email.rb
|
453
455
|
- lib/flapjack/gateways/email/alert.html.haml
|
454
456
|
- lib/flapjack/gateways/email/alert.text.erb
|
@@ -500,7 +502,9 @@ files:
|
|
500
502
|
- spec/lib/flapjack/filters/ok_spec.rb
|
501
503
|
- spec/lib/flapjack/filters/scheduled_maintenance_spec.rb
|
502
504
|
- spec/lib/flapjack/filters/unscheduled_maintenance_spec.rb
|
505
|
+
- spec/lib/flapjack/gateways/api/contact_methods_spec.rb
|
503
506
|
- spec/lib/flapjack/gateways/api/entity_check_presenter_spec.rb
|
507
|
+
- spec/lib/flapjack/gateways/api/entity_methods_spec.rb
|
504
508
|
- spec/lib/flapjack/gateways/api/entity_presenter_spec.rb
|
505
509
|
- spec/lib/flapjack/gateways/api_spec.rb
|
506
510
|
- spec/lib/flapjack/gateways/email_spec.rb
|
@@ -535,7 +539,7 @@ files:
|
|
535
539
|
- tmp/generate_nagios_test_hosts.rb
|
536
540
|
- tmp/notification_rules.rb
|
537
541
|
- tmp/parse_config_yaml.rb
|
538
|
-
- tmp/
|
542
|
+
- tmp/redis_find_spurious_unknown_states.rb
|
539
543
|
- tmp/test_entities.json
|
540
544
|
- tmp/test_json_post.rb
|
541
545
|
- tmp/test_notification_rules_api.rb
|
@@ -553,7 +557,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
553
557
|
version: '0'
|
554
558
|
segments:
|
555
559
|
- 0
|
556
|
-
hash:
|
560
|
+
hash: 4104603407459161527
|
557
561
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
558
562
|
none: false
|
559
563
|
requirements:
|
@@ -562,7 +566,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
562
566
|
version: '0'
|
563
567
|
segments:
|
564
568
|
- 0
|
565
|
-
hash:
|
569
|
+
hash: 4104603407459161527
|
566
570
|
requirements: []
|
567
571
|
rubyforge_project:
|
568
572
|
rubygems_version: 1.8.23
|
@@ -599,7 +603,9 @@ test_files:
|
|
599
603
|
- spec/lib/flapjack/filters/ok_spec.rb
|
600
604
|
- spec/lib/flapjack/filters/scheduled_maintenance_spec.rb
|
601
605
|
- spec/lib/flapjack/filters/unscheduled_maintenance_spec.rb
|
606
|
+
- spec/lib/flapjack/gateways/api/contact_methods_spec.rb
|
602
607
|
- spec/lib/flapjack/gateways/api/entity_check_presenter_spec.rb
|
608
|
+
- spec/lib/flapjack/gateways/api/entity_methods_spec.rb
|
603
609
|
- spec/lib/flapjack/gateways/api/entity_presenter_spec.rb
|
604
610
|
- spec/lib/flapjack/gateways/api_spec.rb
|
605
611
|
- spec/lib/flapjack/gateways/email_spec.rb
|
data/.rbenv-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.9.3-p125
|
@@ -1,11 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$: << File.dirname(__FILE__) + '/../lib' unless $:.include?(File.dirname(__FILE__) + '/../lib/')
|
4
|
-
|
5
|
-
require 'redis'
|
6
|
-
|
7
|
-
@persistence = Redis.new(:db => 13)
|
8
|
-
keys = @persistence.keys '*'
|
9
|
-
keys.each {|key|
|
10
|
-
@persistence.del(key)
|
11
|
-
}
|