flapjack 0.7.35 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -1
  3. data/Gemfile +3 -4
  4. data/Guardfile +1 -1
  5. data/README.md +38 -19
  6. data/Rakefile +1 -3
  7. data/etc/flapjack_config.yaml.example +11 -1
  8. data/features/steps/cli_steps.rb +3 -3
  9. data/features/steps/events_steps.rb +7 -6
  10. data/features/steps/flapjack-netsaint-parser_steps.rb +8 -8
  11. data/features/steps/notifications_steps.rb +10 -10
  12. data/features/steps/packaging-lintian_steps.rb +5 -9
  13. data/features/steps/time_travel_steps.rb +1 -1
  14. data/flapjack.gemspec +4 -3
  15. data/lib/flapjack/data/contact.rb +78 -6
  16. data/lib/flapjack/data/entity.rb +11 -2
  17. data/lib/flapjack/data/notification_rule.rb +67 -59
  18. data/lib/flapjack/data/semaphore.rb +44 -0
  19. data/lib/flapjack/gateways/api.rb +24 -28
  20. data/lib/flapjack/gateways/api/contact_methods.rb +1 -2
  21. data/lib/flapjack/gateways/api/entity_methods.rb +3 -3
  22. data/lib/flapjack/gateways/jsonapi.rb +249 -0
  23. data/lib/flapjack/gateways/jsonapi/contact_methods.rb +544 -0
  24. data/lib/flapjack/gateways/jsonapi/entity_check_presenter.rb +217 -0
  25. data/lib/flapjack/gateways/jsonapi/entity_methods.rb +350 -0
  26. data/lib/flapjack/gateways/jsonapi/entity_presenter.rb +75 -0
  27. data/lib/flapjack/gateways/jsonapi/rack/json_params_parser.rb +32 -0
  28. data/lib/flapjack/gateways/web.rb +78 -12
  29. data/lib/flapjack/gateways/web/public/css/bootstrap-theme.css +397 -0
  30. data/lib/flapjack/gateways/web/public/css/bootstrap-theme.min.css +7 -0
  31. data/lib/flapjack/gateways/web/public/css/bootstrap.css +7118 -0
  32. data/lib/flapjack/gateways/web/public/css/bootstrap.min.css +6 -8
  33. data/lib/flapjack/gateways/web/public/css/font-awesome.css +1338 -0
  34. data/lib/flapjack/gateways/web/public/css/font-awesome.min.css +4 -0
  35. data/lib/flapjack/gateways/web/public/css/screen.css +80 -0
  36. data/lib/flapjack/gateways/web/public/css/select2-bootstrap.css +87 -0
  37. data/lib/flapjack/gateways/web/public/css/select2.css +615 -0
  38. data/lib/flapjack/gateways/web/public/fonts/FontAwesome.otf +0 -0
  39. data/lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.eot +0 -0
  40. data/lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.svg +414 -0
  41. data/lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.ttf +0 -0
  42. data/lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.woff +0 -0
  43. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.eot +0 -0
  44. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.svg +229 -0
  45. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  46. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.woff +0 -0
  47. data/lib/flapjack/gateways/web/public/img/flapjack-2013-notext-transparent-300-300.png +0 -0
  48. data/lib/flapjack/gateways/web/public/img/select2.png +0 -0
  49. data/lib/flapjack/gateways/web/public/img/select2x2.png +0 -0
  50. data/lib/flapjack/gateways/web/public/js/backbone-min.js +2 -0
  51. data/lib/flapjack/gateways/web/public/js/backbone.js +1581 -0
  52. data/lib/flapjack/gateways/web/public/js/backbone.jsonapi.js +75 -0
  53. data/lib/flapjack/gateways/web/public/js/bootstrap.js +2276 -0
  54. data/lib/flapjack/gateways/web/public/js/contacts.js +225 -0
  55. data/lib/flapjack/gateways/web/public/js/jquery-1.10.2.js +9789 -0
  56. data/lib/flapjack/gateways/web/public/js/jquery-1.10.2.min.js +6 -0
  57. data/lib/flapjack/gateways/web/public/js/select2.js +3255 -0
  58. data/lib/flapjack/gateways/web/public/js/select2.min.js +22 -0
  59. data/lib/flapjack/gateways/web/public/js/underscore-min.js +6 -0
  60. data/lib/flapjack/gateways/web/public/js/underscore.js +1276 -0
  61. data/lib/flapjack/gateways/web/views/check.html.erb +423 -193
  62. data/lib/flapjack/gateways/web/views/checks.html.erb +51 -71
  63. data/lib/flapjack/gateways/web/views/contact.html.erb +142 -164
  64. data/lib/flapjack/gateways/web/views/contacts.html.erb +20 -40
  65. data/lib/flapjack/gateways/web/views/edit_contacts.html.erb +83 -0
  66. data/lib/flapjack/gateways/web/views/entities.html.erb +18 -37
  67. data/lib/flapjack/gateways/web/views/entity.html.erb +46 -65
  68. data/lib/flapjack/gateways/web/views/index.html.erb +6 -27
  69. data/lib/flapjack/gateways/web/views/layout.erb +95 -0
  70. data/lib/flapjack/gateways/web/views/self_stats.html.erb +100 -114
  71. data/lib/flapjack/pikelet.rb +4 -2
  72. data/lib/flapjack/version.rb +1 -1
  73. data/spec/lib/flapjack/coordinator_spec.rb +120 -120
  74. data/spec/lib/flapjack/data/contact_spec.rb +66 -58
  75. data/spec/lib/flapjack/data/entity_check_spec.rb +179 -179
  76. data/spec/lib/flapjack/data/entity_spec.rb +71 -71
  77. data/spec/lib/flapjack/data/event_spec.rb +34 -30
  78. data/spec/lib/flapjack/data/message_spec.rb +6 -6
  79. data/spec/lib/flapjack/data/notification_rule_spec.rb +24 -24
  80. data/spec/lib/flapjack/data/notification_spec.rb +19 -19
  81. data/spec/lib/flapjack/data/semaphore_spec.rb +24 -0
  82. data/spec/lib/flapjack/data/tag_spec.rb +11 -10
  83. data/spec/lib/flapjack/gateways/api/contact_methods_spec.rb +201 -201
  84. data/spec/lib/flapjack/gateways/api/entity_check_presenter_spec.rb +55 -55
  85. data/spec/lib/flapjack/gateways/api/entity_methods_spec.rb +257 -257
  86. data/spec/lib/flapjack/gateways/api/entity_presenter_spec.rb +26 -26
  87. data/spec/lib/flapjack/gateways/api_spec.rb +1 -1
  88. data/spec/lib/flapjack/gateways/email_spec.rb +4 -4
  89. data/spec/lib/flapjack/gateways/jabber_spec.rb +77 -77
  90. data/spec/lib/flapjack/gateways/jsonapi/contact_methods_spec.rb +830 -0
  91. data/spec/lib/flapjack/gateways/jsonapi/entity_check_presenter_spec.rb +211 -0
  92. data/spec/lib/flapjack/gateways/jsonapi/entity_methods_spec.rb +863 -0
  93. data/spec/lib/flapjack/gateways/jsonapi/entity_presenter_spec.rb +108 -0
  94. data/spec/lib/flapjack/gateways/jsonapi_spec.rb +8 -0
  95. data/spec/lib/flapjack/gateways/oobetet_spec.rb +35 -35
  96. data/spec/lib/flapjack/gateways/pagerduty_spec.rb +40 -40
  97. data/spec/lib/flapjack/gateways/sms_messagenet_spec.rb +3 -3
  98. data/spec/lib/flapjack/gateways/web/views/check.html.erb_spec.rb +1 -1
  99. data/spec/lib/flapjack/gateways/web/views/contact.html.erb_spec.rb +5 -5
  100. data/spec/lib/flapjack/gateways/web/views/index.html.erb_spec.rb +1 -1
  101. data/spec/lib/flapjack/gateways/web_spec.rb +73 -74
  102. data/spec/lib/flapjack/logger_spec.rb +13 -13
  103. data/spec/lib/flapjack/pikelet_spec.rb +33 -33
  104. data/spec/lib/flapjack/processor_spec.rb +22 -22
  105. data/spec/lib/flapjack/redis_pool_spec.rb +1 -1
  106. data/spec/lib/flapjack/utility_spec.rb +12 -12
  107. data/spec/spec_helper.rb +9 -9
  108. data/spec/support/erb_view_helper.rb +4 -0
  109. metadata +107 -96
  110. data/lib/flapjack/gateways/web/public/css/flapjack.css +0 -49
  111. data/lib/flapjack/gateways/web/views/_css.html.erb +0 -42
  112. data/lib/flapjack/gateways/web/views/_foot.html.erb +0 -3
  113. data/lib/flapjack/gateways/web/views/_head.html.erb +0 -5
  114. data/lib/flapjack/gateways/web/views/_nav.html.erb +0 -10
@@ -13,44 +13,44 @@ describe Flapjack::Processor, :logger => true do
13
13
  it "starts up, runs and shuts down" do
14
14
  t = Time.now.to_i
15
15
 
16
- Flapjack::Filters::Ok.should_receive(:new)
17
- Flapjack::Filters::ScheduledMaintenance.should_receive(:new)
18
- Flapjack::Filters::UnscheduledMaintenance.should_receive(:new)
19
- Flapjack::Filters::Delays.should_receive(:new)
20
- Flapjack::Filters::Acknowledgement.should_receive(:new)
16
+ expect(Flapjack::Filters::Ok).to receive(:new)
17
+ expect(Flapjack::Filters::ScheduledMaintenance).to receive(:new)
18
+ expect(Flapjack::Filters::UnscheduledMaintenance).to receive(:new)
19
+ expect(Flapjack::Filters::Delays).to receive(:new)
20
+ expect(Flapjack::Filters::Acknowledgement).to receive(:new)
21
21
 
22
22
  redis = double('redis')
23
23
 
24
- redis.should_receive(:hset).with(/^executive_instance:/, "boot_time", anything)
25
- redis.should_receive(:hget).with('event_counters', 'all').and_return(nil)
26
- redis.should_receive(:hset).with('event_counters', 'all', 0)
27
- redis.should_receive(:hset).with('event_counters', 'ok', 0)
28
- redis.should_receive(:hset).with('event_counters', 'failure', 0)
29
- redis.should_receive(:hset).with('event_counters', 'action', 0)
24
+ expect(redis).to receive(:hset).with(/^executive_instance:/, "boot_time", anything)
25
+ expect(redis).to receive(:hget).with('event_counters', 'all').and_return(nil)
26
+ expect(redis).to receive(:hset).with('event_counters', 'all', 0)
27
+ expect(redis).to receive(:hset).with('event_counters', 'ok', 0)
28
+ expect(redis).to receive(:hset).with('event_counters', 'failure', 0)
29
+ expect(redis).to receive(:hset).with('event_counters', 'action', 0)
30
30
 
31
- redis.should_receive(:hset).with(/^event_counters:/, 'all', 0)
32
- redis.should_receive(:hset).with(/^event_counters:/, 'ok', 0)
33
- redis.should_receive(:hset).with(/^event_counters:/, 'failure', 0)
34
- redis.should_receive(:hset).with(/^event_counters:/, 'action', 0)
31
+ expect(redis).to receive(:hset).with(/^event_counters:/, 'all', 0)
32
+ expect(redis).to receive(:hset).with(/^event_counters:/, 'ok', 0)
33
+ expect(redis).to receive(:hset).with(/^event_counters:/, 'failure', 0)
34
+ expect(redis).to receive(:hset).with(/^event_counters:/, 'action', 0)
35
35
 
36
- redis.should_receive(:expire).with(/^executive_instance:/, anything)
37
- redis.should_receive(:expire).with(/^event_counters:/, anything).exactly(4).times
36
+ expect(redis).to receive(:expire).with(/^executive_instance:/, anything)
37
+ expect(redis).to receive(:expire).with(/^event_counters:/, anything).exactly(4).times
38
38
 
39
39
  # redis.should_receive(:hincrby).with('event_counters', 'all', 1)
40
40
  # redis.should_receive(:hincrby).with(/^event_counters:/, 'all', 1)
41
41
 
42
- Flapjack::Data::Event.should_receive(:pending_count).with('events', :redis => redis).and_return(0)
42
+ expect(Flapjack::Data::Event).to receive(:pending_count).with('events', :redis => redis).and_return(0)
43
43
 
44
- Flapjack::RedisPool.should_receive(:new).and_return(redis)
44
+ expect(Flapjack::RedisPool).to receive(:new).and_return(redis)
45
45
 
46
46
  fc = double('coordinator')
47
47
 
48
48
  executive = Flapjack::Processor.new(:config => {}, :logger => @logger, :coordinator => fc)
49
49
 
50
50
  noop_evt = double(Flapjack::Data::Event)
51
- noop_evt.should_receive(:inspect)
52
- noop_evt.should_receive(:type).and_return('noop')
53
- Flapjack::Data::Event.should_receive(:next) {
51
+ expect(noop_evt).to receive(:inspect)
52
+ expect(noop_evt).to receive(:type).and_return('noop')
53
+ expect(Flapjack::Data::Event).to receive(:next) {
54
54
  executive.instance_variable_set('@should_quit', true)
55
55
  noop_evt
56
56
  }
@@ -11,7 +11,7 @@ describe Flapjack::RedisPool do
11
11
  redis = double('redis')
12
12
  redis
13
13
  }
14
- ::Redis.should_receive(:new).exactly(redis_count).times.and_return(*redis_conns)
14
+ expect(::Redis).to receive(:new).exactly(redis_count).times.and_return(*redis_conns)
15
15
 
16
16
  frp = Flapjack::RedisPool.new(:size => redis_count)
17
17
 
@@ -12,41 +12,41 @@ describe Flapjack::Utility do
12
12
  let(:time) { Time.new }
13
13
 
14
14
  before(:each) do
15
- Time.should_receive(:now).and_return(time)
15
+ expect(Time).to receive(:now).and_return(time)
16
16
  end
17
17
 
18
18
  it 'displays now as a minute ago' do
19
- 'about a minute'.should == relative_time_ago(time - 60)
19
+ expect('about a minute').to eq(relative_time_ago(time - 60))
20
20
  end
21
21
  it "displays a few minutes ago" do
22
- '4 minutes'.should == relative_time_ago(time - (4 * 60))
22
+ expect('4 minutes').to eq(relative_time_ago(time - (4 * 60)))
23
23
  end
24
24
  it "displays an hour ago" do
25
- 'about 1 hour'.should == relative_time_ago(time - (65 * 60))
25
+ expect('about 1 hour').to eq(relative_time_ago(time - (65 * 60)))
26
26
  end
27
27
  it "displays a few hours ago" do
28
- 'about 3 hours'.should == relative_time_ago(time - (185 * 60))
28
+ expect('about 3 hours').to eq(relative_time_ago(time - (185 * 60)))
29
29
  end
30
30
  it "displays a day ago" do
31
- '1 day'.should == relative_time_ago(time - (24 * 60 * 60))
31
+ expect('1 day').to eq(relative_time_ago(time - (24 * 60 * 60)))
32
32
  end
33
33
  it "displays about 2 days ago" do
34
- 'about 2 days'.should == relative_time_ago(time - (2 * 24 * 60 * 60) + (5 * 60))
34
+ expect('about 2 days').to eq(relative_time_ago(time - (2 * 24 * 60 * 60) + (5 * 60)))
35
35
  end
36
36
  it "displays a few days ago" do
37
- '5 days'.should == relative_time_ago(time - (5 * 24 * 60 * 60) - (5 * 60))
37
+ expect('5 days').to eq(relative_time_ago(time - (5 * 24 * 60 * 60) - (5 * 60)))
38
38
  end
39
39
  it "displays a month ago" do
40
- 'about 1 month'.should == relative_time_ago(time - (32 * 24 * 60 * 60) - (5 * 60))
40
+ expect('about 1 month').to eq(relative_time_ago(time - (32 * 24 * 60 * 60) - (5 * 60)))
41
41
  end
42
42
  it "displays a few months ago" do
43
- '6 months'.should == relative_time_ago(time - (180 * 24 * 60 * 60) - (5 * 60))
43
+ expect('6 months').to eq(relative_time_ago(time - (180 * 24 * 60 * 60) - (5 * 60)))
44
44
  end
45
45
  it "displays a year ago" do
46
- 'about 1 year'.should == relative_time_ago(time - (365 * 24 * 60 * 60) - (5 * 60))
46
+ expect('about 1 year').to eq(relative_time_ago(time - (365 * 24 * 60 * 60) - (5 * 60)))
47
47
  end
48
48
  it "displays a few years ago" do
49
- 'over 7 years'.should == relative_time_ago(time - (2800 * 24 * 60 * 60) + (5 * 60))
49
+ expect('over 7 years').to eq(relative_time_ago(time - (2800 * 24 * 60 * 60) + (5 * 60)))
50
50
  end
51
51
 
52
52
  end
data/spec/spec_helper.rb CHANGED
@@ -19,6 +19,11 @@ WebMock.disable_net_connect!
19
19
 
20
20
  $:.unshift(File.dirname(__FILE__) + '/../lib')
21
21
 
22
+ require 'oj'
23
+ Oj.mimic_JSON
24
+ Oj.default_options = { :indent => 0, :mode => :strict }
25
+ require 'active_support/json'
26
+
22
27
  # Requires supporting files with custom matchers and macros, etc,
23
28
  # in ./support/ and its subdirectories.
24
29
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
@@ -58,11 +63,6 @@ class MockLogger
58
63
 
59
64
  end
60
65
 
61
- JsonSpec.configure do
62
- # so we include id
63
- exclude_keys "created_at", "updated_at"
64
- end
65
-
66
66
  # This file was generated by the `rspec --init` command. Conventionally, all
67
67
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
68
68
  # Require this file using `require "spec_helper"` to ensure that it is only
@@ -70,7 +70,7 @@ end
70
70
  #
71
71
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
72
72
  RSpec.configure do |config|
73
- config.treat_symbols_as_metadata_keys_with_true_values = true
73
+ # config.treat_symbols_as_metadata_keys_with_true_values = true
74
74
  config.run_all_when_everything_filtered = true
75
75
  config.filter_run :focus
76
76
 
@@ -80,8 +80,9 @@ RSpec.configure do |config|
80
80
  # --seed 1234
81
81
  config.order = 'random'
82
82
 
83
- if !(ENV.keys & ['SHOW_LOGGER_ALL', 'SHOW_LOGGER_ERRORS']).empty?
84
- config.formatter = :documentation
83
+ unless (ENV.keys & ['SHOW_LOGGER_ALL', 'SHOW_LOGGER_ERRORS']).empty?
84
+ config.instance_variable_set('@formatters', [])
85
+ config.add_formatter(:documentation)
85
86
  end
86
87
 
87
88
  config.around(:each, :redis => true) do |example|
@@ -113,5 +114,4 @@ RSpec.configure do |config|
113
114
  config.include ErbViewHelper, :erb_view => true
114
115
  config.include Rack::Test::Methods, :sinatra => true
115
116
  config.include AsyncRackTest::Methods, :sinatra => true
116
- config.include JsonSpec::Helpers, :json => true
117
117
  end
@@ -12,6 +12,10 @@ module ErbViewHelper
12
12
  erb.result(bind)
13
13
  end
14
14
 
15
+ def page_title(string)
16
+ @page_title = string
17
+ end
18
+
15
19
  def h(text)
16
20
  ERB::Util.h(text)
17
21
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flapjack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.35
5
- prerelease:
4
+ version: 0.8.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Lindsay Holmwood
@@ -11,44 +10,39 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2013-12-10 00:00:00.000000000 Z
13
+ date: 2014-01-07 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: dante
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
- - - ! '>='
19
+ - - '>='
22
20
  - !ruby/object:Gem::Version
23
21
  version: '0'
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
- - - ! '>='
26
+ - - '>='
30
27
  - !ruby/object:Gem::Version
31
28
  version: '0'
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: oj
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
- - - ! '>='
33
+ - - '>='
38
34
  - !ruby/object:Gem::Version
39
35
  version: '0'
40
36
  type: :runtime
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
- - - ! '>='
40
+ - - '>='
46
41
  - !ruby/object:Gem::Version
47
42
  version: '0'
48
43
  - !ruby/object:Gem::Dependency
49
44
  name: eventmachine
50
45
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
46
  requirements:
53
47
  - - ~>
54
48
  - !ruby/object:Gem::Version
@@ -56,7 +50,6 @@ dependencies:
56
50
  type: :runtime
57
51
  prerelease: false
58
52
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
53
  requirements:
61
54
  - - ~>
62
55
  - !ruby/object:Gem::Version
@@ -64,23 +57,20 @@ dependencies:
64
57
  - !ruby/object:Gem::Dependency
65
58
  name: hiredis
66
59
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
- - - ! '>='
61
+ - - '>='
70
62
  - !ruby/object:Gem::Version
71
63
  version: '0'
72
64
  type: :runtime
73
65
  prerelease: false
74
66
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
67
  requirements:
77
- - - ! '>='
68
+ - - '>='
78
69
  - !ruby/object:Gem::Version
79
70
  version: '0'
80
71
  - !ruby/object:Gem::Dependency
81
72
  name: em-synchrony
82
73
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
74
  requirements:
85
75
  - - ~>
86
76
  - !ruby/object:Gem::Version
@@ -88,7 +78,6 @@ dependencies:
88
78
  type: :runtime
89
79
  prerelease: false
90
80
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
81
  requirements:
93
82
  - - ~>
94
83
  - !ruby/object:Gem::Version
@@ -96,55 +85,48 @@ dependencies:
96
85
  - !ruby/object:Gem::Dependency
97
86
  name: em-http-request
98
87
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
88
  requirements:
101
- - - ! '>='
89
+ - - '>='
102
90
  - !ruby/object:Gem::Version
103
91
  version: '0'
104
92
  type: :runtime
105
93
  prerelease: false
106
94
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
95
  requirements:
109
- - - ! '>='
96
+ - - '>='
110
97
  - !ruby/object:Gem::Version
111
98
  version: '0'
112
99
  - !ruby/object:Gem::Dependency
113
100
  name: redis
114
101
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
102
  requirements:
117
- - - ! '>='
103
+ - - ~>
118
104
  - !ruby/object:Gem::Version
119
- version: '0'
105
+ version: 3.0.6
120
106
  type: :runtime
121
107
  prerelease: false
122
108
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
109
  requirements:
125
- - - ! '>='
110
+ - - ~>
126
111
  - !ruby/object:Gem::Version
127
- version: '0'
112
+ version: 3.0.6
128
113
  - !ruby/object:Gem::Dependency
129
114
  name: em-resque
130
115
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
116
  requirements:
133
- - - ! '>='
117
+ - - '>='
134
118
  - !ruby/object:Gem::Version
135
119
  version: '0'
136
120
  type: :runtime
137
121
  prerelease: false
138
122
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
123
  requirements:
141
- - - ! '>='
124
+ - - '>='
142
125
  - !ruby/object:Gem::Version
143
126
  version: '0'
144
127
  - !ruby/object:Gem::Dependency
145
128
  name: resque
146
129
  requirement: !ruby/object:Gem::Requirement
147
- none: false
148
130
  requirements:
149
131
  - - ~>
150
132
  - !ruby/object:Gem::Version
@@ -152,7 +134,6 @@ dependencies:
152
134
  type: :runtime
153
135
  prerelease: false
154
136
  version_requirements: !ruby/object:Gem::Requirement
155
- none: false
156
137
  requirements:
157
138
  - - ~>
158
139
  - !ruby/object:Gem::Version
@@ -160,71 +141,62 @@ dependencies:
160
141
  - !ruby/object:Gem::Dependency
161
142
  name: sinatra
162
143
  requirement: !ruby/object:Gem::Requirement
163
- none: false
164
144
  requirements:
165
- - - ! '>='
145
+ - - '>='
166
146
  - !ruby/object:Gem::Version
167
147
  version: '0'
168
148
  type: :runtime
169
149
  prerelease: false
170
150
  version_requirements: !ruby/object:Gem::Requirement
171
- none: false
172
151
  requirements:
173
- - - ! '>='
152
+ - - '>='
174
153
  - !ruby/object:Gem::Version
175
154
  version: '0'
176
155
  - !ruby/object:Gem::Dependency
177
156
  name: rack-fiber_pool
178
157
  requirement: !ruby/object:Gem::Requirement
179
- none: false
180
158
  requirements:
181
- - - ! '>='
159
+ - - '>='
182
160
  - !ruby/object:Gem::Version
183
161
  version: '0'
184
162
  type: :runtime
185
163
  prerelease: false
186
164
  version_requirements: !ruby/object:Gem::Requirement
187
- none: false
188
165
  requirements:
189
- - - ! '>='
166
+ - - '>='
190
167
  - !ruby/object:Gem::Version
191
168
  version: '0'
192
169
  - !ruby/object:Gem::Dependency
193
170
  name: thin
194
171
  requirement: !ruby/object:Gem::Requirement
195
- none: false
196
172
  requirements:
197
- - - ! '>='
173
+ - - '>='
198
174
  - !ruby/object:Gem::Version
199
175
  version: '0'
200
176
  type: :runtime
201
177
  prerelease: false
202
178
  version_requirements: !ruby/object:Gem::Requirement
203
- none: false
204
179
  requirements:
205
- - - ! '>='
180
+ - - '>='
206
181
  - !ruby/object:Gem::Version
207
182
  version: '0'
208
183
  - !ruby/object:Gem::Dependency
209
184
  name: mail
210
185
  requirement: !ruby/object:Gem::Requirement
211
- none: false
212
186
  requirements:
213
- - - ! '>='
187
+ - - '>='
214
188
  - !ruby/object:Gem::Version
215
189
  version: '0'
216
190
  type: :runtime
217
191
  prerelease: false
218
192
  version_requirements: !ruby/object:Gem::Requirement
219
- none: false
220
193
  requirements:
221
- - - ! '>='
194
+ - - '>='
222
195
  - !ruby/object:Gem::Version
223
196
  version: '0'
224
197
  - !ruby/object:Gem::Dependency
225
198
  name: blather
226
199
  requirement: !ruby/object:Gem::Requirement
227
- none: false
228
200
  requirements:
229
201
  - - ~>
230
202
  - !ruby/object:Gem::Version
@@ -232,7 +204,6 @@ dependencies:
232
204
  type: :runtime
233
205
  prerelease: false
234
206
  version_requirements: !ruby/object:Gem::Requirement
235
- none: false
236
207
  requirements:
237
208
  - - ~>
238
209
  - !ruby/object:Gem::Version
@@ -240,39 +211,34 @@ dependencies:
240
211
  - !ruby/object:Gem::Dependency
241
212
  name: chronic
242
213
  requirement: !ruby/object:Gem::Requirement
243
- none: false
244
214
  requirements:
245
- - - ! '>='
215
+ - - '>='
246
216
  - !ruby/object:Gem::Version
247
217
  version: '0'
248
218
  type: :runtime
249
219
  prerelease: false
250
220
  version_requirements: !ruby/object:Gem::Requirement
251
- none: false
252
221
  requirements:
253
- - - ! '>='
222
+ - - '>='
254
223
  - !ruby/object:Gem::Version
255
224
  version: '0'
256
225
  - !ruby/object:Gem::Dependency
257
226
  name: chronic_duration
258
227
  requirement: !ruby/object:Gem::Requirement
259
- none: false
260
228
  requirements:
261
- - - ! '>='
229
+ - - '>='
262
230
  - !ruby/object:Gem::Version
263
231
  version: '0'
264
232
  type: :runtime
265
233
  prerelease: false
266
234
  version_requirements: !ruby/object:Gem::Requirement
267
- none: false
268
235
  requirements:
269
- - - ! '>='
236
+ - - '>='
270
237
  - !ruby/object:Gem::Version
271
238
  version: '0'
272
239
  - !ruby/object:Gem::Dependency
273
240
  name: activesupport
274
241
  requirement: !ruby/object:Gem::Requirement
275
- none: false
276
242
  requirements:
277
243
  - - ~>
278
244
  - !ruby/object:Gem::Version
@@ -280,7 +246,6 @@ dependencies:
280
246
  type: :runtime
281
247
  prerelease: false
282
248
  version_requirements: !ruby/object:Gem::Requirement
283
- none: false
284
249
  requirements:
285
250
  - - ~>
286
251
  - !ruby/object:Gem::Version
@@ -288,23 +253,20 @@ dependencies:
288
253
  - !ruby/object:Gem::Dependency
289
254
  name: ice_cube
290
255
  requirement: !ruby/object:Gem::Requirement
291
- none: false
292
256
  requirements:
293
- - - ! '>='
257
+ - - '>='
294
258
  - !ruby/object:Gem::Version
295
259
  version: '0'
296
260
  type: :runtime
297
261
  prerelease: false
298
262
  version_requirements: !ruby/object:Gem::Requirement
299
- none: false
300
263
  requirements:
301
- - - ! '>='
264
+ - - '>='
302
265
  - !ruby/object:Gem::Version
303
266
  version: '0'
304
267
  - !ruby/object:Gem::Dependency
305
268
  name: tzinfo
306
269
  requirement: !ruby/object:Gem::Requirement
307
- none: false
308
270
  requirements:
309
271
  - - ~>
310
272
  - !ruby/object:Gem::Version
@@ -312,7 +274,6 @@ dependencies:
312
274
  type: :runtime
313
275
  prerelease: false
314
276
  version_requirements: !ruby/object:Gem::Requirement
315
- none: false
316
277
  requirements:
317
278
  - - ~>
318
279
  - !ruby/object:Gem::Version
@@ -320,36 +281,46 @@ dependencies:
320
281
  - !ruby/object:Gem::Dependency
321
282
  name: tzinfo-data
322
283
  requirement: !ruby/object:Gem::Requirement
323
- none: false
324
284
  requirements:
325
- - - ! '>='
285
+ - - '>='
286
+ - !ruby/object:Gem::Version
287
+ version: '0'
288
+ type: :runtime
289
+ prerelease: false
290
+ version_requirements: !ruby/object:Gem::Requirement
291
+ requirements:
292
+ - - '>='
293
+ - !ruby/object:Gem::Version
294
+ version: '0'
295
+ - !ruby/object:Gem::Dependency
296
+ name: tzinfo-data
297
+ requirement: !ruby/object:Gem::Requirement
298
+ requirements:
299
+ - - '>='
326
300
  - !ruby/object:Gem::Version
327
301
  version: '0'
328
302
  type: :runtime
329
303
  prerelease: false
330
304
  version_requirements: !ruby/object:Gem::Requirement
331
- none: false
332
305
  requirements:
333
- - - ! '>='
306
+ - - '>='
334
307
  - !ruby/object:Gem::Version
335
308
  version: '0'
336
309
  - !ruby/object:Gem::Dependency
337
310
  name: rake
338
311
  requirement: !ruby/object:Gem::Requirement
339
- none: false
340
312
  requirements:
341
- - - ! '>='
313
+ - - '>='
342
314
  - !ruby/object:Gem::Version
343
315
  version: '0'
344
316
  type: :development
345
317
  prerelease: false
346
318
  version_requirements: !ruby/object:Gem::Requirement
347
- none: false
348
319
  requirements:
349
- - - ! '>='
320
+ - - '>='
350
321
  - !ruby/object:Gem::Version
351
322
  version: '0'
352
- description: Flapjack is distributed monitoring notification system that provides
323
+ description: Flapjack is a distributed monitoring notification system that provides
353
324
  a scalable method for processing streams of events from Nagios and deciding who
354
325
  should be notified
355
326
  email: lindsay@holmwood.id.au
@@ -417,6 +388,7 @@ files:
417
388
  - lib/flapjack/data/message.rb
418
389
  - lib/flapjack/data/notification.rb
419
390
  - lib/flapjack/data/notification_rule.rb
391
+ - lib/flapjack/data/semaphore.rb
420
392
  - lib/flapjack/data/tag.rb
421
393
  - lib/flapjack/data/tag_set.rb
422
394
  - lib/flapjack/filters/acknowledgement.rb
@@ -441,6 +413,12 @@ files:
441
413
  - lib/flapjack/gateways/jabber.rb
442
414
  - lib/flapjack/gateways/jabber/alert.text.erb
443
415
  - lib/flapjack/gateways/jabber/rollup.text.erb
416
+ - lib/flapjack/gateways/jsonapi.rb
417
+ - lib/flapjack/gateways/jsonapi/contact_methods.rb
418
+ - lib/flapjack/gateways/jsonapi/entity_check_presenter.rb
419
+ - lib/flapjack/gateways/jsonapi/entity_methods.rb
420
+ - lib/flapjack/gateways/jsonapi/entity_presenter.rb
421
+ - lib/flapjack/gateways/jsonapi/rack/json_params_parser.rb
444
422
  - lib/flapjack/gateways/oobetet.rb
445
423
  - lib/flapjack/gateways/pagerduty.rb
446
424
  - lib/flapjack/gateways/pagerduty/alert.text.erb
@@ -449,10 +427,27 @@ files:
449
427
  - lib/flapjack/gateways/sms_messagenet/rollup.text.erb
450
428
  - lib/flapjack/gateways/web.rb
451
429
  - lib/flapjack/gateways/web/public/css/bootstrap-responsive.min.css
430
+ - lib/flapjack/gateways/web/public/css/bootstrap-theme.css
431
+ - lib/flapjack/gateways/web/public/css/bootstrap-theme.min.css
432
+ - lib/flapjack/gateways/web/public/css/bootstrap.css
452
433
  - lib/flapjack/gateways/web/public/css/bootstrap.min.css
453
- - lib/flapjack/gateways/web/public/css/flapjack.css
434
+ - lib/flapjack/gateways/web/public/css/font-awesome.css
435
+ - lib/flapjack/gateways/web/public/css/font-awesome.min.css
436
+ - lib/flapjack/gateways/web/public/css/screen.css
437
+ - lib/flapjack/gateways/web/public/css/select2-bootstrap.css
438
+ - lib/flapjack/gateways/web/public/css/select2.css
439
+ - lib/flapjack/gateways/web/public/fonts/FontAwesome.otf
440
+ - lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.eot
441
+ - lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.svg
442
+ - lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.ttf
443
+ - lib/flapjack/gateways/web/public/fonts/fontawesome-webfont.woff
444
+ - lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.eot
445
+ - lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.svg
446
+ - lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.ttf
447
+ - lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.woff
454
448
  - lib/flapjack/gateways/web/public/img/flapjack-2013-notext-transparent-25-25.png
455
449
  - lib/flapjack/gateways/web/public/img/flapjack-2013-notext-transparent-25-40.png
450
+ - lib/flapjack/gateways/web/public/img/flapjack-2013-notext-transparent-300-300.png
456
451
  - lib/flapjack/gateways/web/public/img/flapjack-2013-vertical-transparent-300-386.png
457
452
  - lib/flapjack/gateways/web/public/img/flapjack-favicon-64-32-24-16.ico
458
453
  - lib/flapjack/gateways/web/public/img/flapjack-transparent-300.png
@@ -460,18 +455,29 @@ files:
460
455
  - lib/flapjack/gateways/web/public/img/flapjack_white_bg_400_353.jpeg
461
456
  - lib/flapjack/gateways/web/public/img/glyphicons-halflings-white.png
462
457
  - lib/flapjack/gateways/web/public/img/glyphicons-halflings.png
458
+ - lib/flapjack/gateways/web/public/img/select2.png
459
+ - lib/flapjack/gateways/web/public/img/select2x2.png
460
+ - lib/flapjack/gateways/web/public/js/backbone-min.js
461
+ - lib/flapjack/gateways/web/public/js/backbone.js
462
+ - lib/flapjack/gateways/web/public/js/backbone.jsonapi.js
463
+ - lib/flapjack/gateways/web/public/js/bootstrap.js
463
464
  - lib/flapjack/gateways/web/public/js/bootstrap.min.js
464
- - lib/flapjack/gateways/web/views/_css.html.erb
465
- - lib/flapjack/gateways/web/views/_foot.html.erb
466
- - lib/flapjack/gateways/web/views/_head.html.erb
467
- - lib/flapjack/gateways/web/views/_nav.html.erb
465
+ - lib/flapjack/gateways/web/public/js/contacts.js
466
+ - lib/flapjack/gateways/web/public/js/jquery-1.10.2.js
467
+ - lib/flapjack/gateways/web/public/js/jquery-1.10.2.min.js
468
+ - lib/flapjack/gateways/web/public/js/select2.js
469
+ - lib/flapjack/gateways/web/public/js/select2.min.js
470
+ - lib/flapjack/gateways/web/public/js/underscore-min.js
471
+ - lib/flapjack/gateways/web/public/js/underscore.js
468
472
  - lib/flapjack/gateways/web/views/check.html.erb
469
473
  - lib/flapjack/gateways/web/views/checks.html.erb
470
474
  - lib/flapjack/gateways/web/views/contact.html.erb
471
475
  - lib/flapjack/gateways/web/views/contacts.html.erb
476
+ - lib/flapjack/gateways/web/views/edit_contacts.html.erb
472
477
  - lib/flapjack/gateways/web/views/entities.html.erb
473
478
  - lib/flapjack/gateways/web/views/entity.html.erb
474
479
  - lib/flapjack/gateways/web/views/index.html.erb
480
+ - lib/flapjack/gateways/web/views/layout.erb
475
481
  - lib/flapjack/gateways/web/views/self_stats.html.erb
476
482
  - lib/flapjack/logger.rb
477
483
  - lib/flapjack/notifier.rb
@@ -492,6 +498,7 @@ files:
492
498
  - spec/lib/flapjack/data/message_spec.rb
493
499
  - spec/lib/flapjack/data/notification_rule_spec.rb
494
500
  - spec/lib/flapjack/data/notification_spec.rb
501
+ - spec/lib/flapjack/data/semaphore_spec.rb
495
502
  - spec/lib/flapjack/data/tag_spec.rb
496
503
  - spec/lib/flapjack/filters/acknowledgement_spec.rb
497
504
  - spec/lib/flapjack/filters/delays_spec.rb
@@ -505,6 +512,11 @@ files:
505
512
  - spec/lib/flapjack/gateways/api_spec.rb
506
513
  - spec/lib/flapjack/gateways/email_spec.rb
507
514
  - spec/lib/flapjack/gateways/jabber_spec.rb
515
+ - spec/lib/flapjack/gateways/jsonapi/contact_methods_spec.rb
516
+ - spec/lib/flapjack/gateways/jsonapi/entity_check_presenter_spec.rb
517
+ - spec/lib/flapjack/gateways/jsonapi/entity_methods_spec.rb
518
+ - spec/lib/flapjack/gateways/jsonapi/entity_presenter_spec.rb
519
+ - spec/lib/flapjack/gateways/jsonapi_spec.rb
508
520
  - spec/lib/flapjack/gateways/oobetet_spec.rb
509
521
  - spec/lib/flapjack/gateways/pagerduty_spec.rb
510
522
  - spec/lib/flapjack/gateways/sms_messagenet_spec.rb
@@ -543,36 +555,29 @@ files:
543
555
  - tmp/test_entities.json
544
556
  - tmp/test_json_post.rb
545
557
  - tmp/test_notification_rules_api.rb
546
- homepage: http://flapjack-project.com/
558
+ homepage: http://flapjack.io/
547
559
  licenses:
548
560
  - MIT
561
+ metadata: {}
549
562
  post_install_message:
550
563
  rdoc_options: []
551
564
  require_paths:
552
565
  - lib
553
566
  required_ruby_version: !ruby/object:Gem::Requirement
554
- none: false
555
567
  requirements:
556
- - - ! '>='
568
+ - - '>='
557
569
  - !ruby/object:Gem::Version
558
570
  version: '0'
559
- segments:
560
- - 0
561
- hash: -1407852540467172414
562
571
  required_rubygems_version: !ruby/object:Gem::Requirement
563
- none: false
564
572
  requirements:
565
- - - ! '>='
573
+ - - '>='
566
574
  - !ruby/object:Gem::Version
567
575
  version: '0'
568
- segments:
569
- - 0
570
- hash: -1407852540467172414
571
576
  requirements: []
572
577
  rubyforge_project:
573
- rubygems_version: 1.8.23
578
+ rubygems_version: 2.0.14
574
579
  signing_key:
575
- specification_version: 3
580
+ specification_version: 4
576
581
  summary: Intelligent, scalable, distributed monitoring notification system.
577
582
  test_files:
578
583
  - features/cli.feature
@@ -605,6 +610,7 @@ test_files:
605
610
  - spec/lib/flapjack/data/message_spec.rb
606
611
  - spec/lib/flapjack/data/notification_rule_spec.rb
607
612
  - spec/lib/flapjack/data/notification_spec.rb
613
+ - spec/lib/flapjack/data/semaphore_spec.rb
608
614
  - spec/lib/flapjack/data/tag_spec.rb
609
615
  - spec/lib/flapjack/filters/acknowledgement_spec.rb
610
616
  - spec/lib/flapjack/filters/delays_spec.rb
@@ -618,6 +624,11 @@ test_files:
618
624
  - spec/lib/flapjack/gateways/api_spec.rb
619
625
  - spec/lib/flapjack/gateways/email_spec.rb
620
626
  - spec/lib/flapjack/gateways/jabber_spec.rb
627
+ - spec/lib/flapjack/gateways/jsonapi/contact_methods_spec.rb
628
+ - spec/lib/flapjack/gateways/jsonapi/entity_check_presenter_spec.rb
629
+ - spec/lib/flapjack/gateways/jsonapi/entity_methods_spec.rb
630
+ - spec/lib/flapjack/gateways/jsonapi/entity_presenter_spec.rb
631
+ - spec/lib/flapjack/gateways/jsonapi_spec.rb
621
632
  - spec/lib/flapjack/gateways/oobetet_spec.rb
622
633
  - spec/lib/flapjack/gateways/pagerduty_spec.rb
623
634
  - spec/lib/flapjack/gateways/sms_messagenet_spec.rb