flapjack 0.7.35 → 0.8.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.
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