flapjack 0.8.11 → 0.8.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/CONTRIBUTING.md +35 -0
  4. data/Gemfile +1 -1
  5. data/README.md +16 -14
  6. data/bin/flapjack-feed-events +124 -0
  7. data/bin/flapjack-nagios-receiver +1 -1
  8. data/bin/flapjack-nsca-receiver +1 -1
  9. data/etc/flapjack_config.yaml.example +1 -2
  10. data/features/cli_flapjack-feed-events.feature +104 -0
  11. data/features/steps/events_steps.rb +2 -2
  12. data/features/steps/packaging-lintian_steps.rb +2 -2
  13. data/features/support/env.rb +7 -1
  14. data/flapjack.gemspec +2 -3
  15. data/lib/flapjack/configuration.rb +1 -0
  16. data/lib/flapjack/data/contact.rb +1 -1
  17. data/lib/flapjack/data/event.rb +25 -21
  18. data/lib/flapjack/data/notification_rule.rb +43 -29
  19. data/lib/flapjack/gateways/api.rb +1 -1
  20. data/lib/flapjack/gateways/api/contact_methods.rb +13 -13
  21. data/lib/flapjack/gateways/jabber.rb +2 -2
  22. data/lib/flapjack/gateways/jsonapi.rb +16 -10
  23. data/lib/flapjack/gateways/jsonapi/contact_methods.rb +6 -6
  24. data/lib/flapjack/gateways/jsonapi/entity_methods.rb +2 -2
  25. data/lib/flapjack/gateways/jsonapi/medium_methods.rb +5 -4
  26. data/lib/flapjack/gateways/jsonapi/metrics_methods.rb +100 -0
  27. data/lib/flapjack/gateways/jsonapi/notification_rule_methods.rb +28 -11
  28. data/lib/flapjack/gateways/jsonapi/pagerduty_credential_methods.rb +2 -1
  29. data/lib/flapjack/gateways/pagerduty.rb +7 -0
  30. data/lib/flapjack/gateways/web.rb +7 -2
  31. data/lib/flapjack/gateways/web/public/css/nv.d3.css +769 -0
  32. data/lib/flapjack/gateways/web/public/js/backbone.jsonapi.js +150 -44
  33. data/lib/flapjack/gateways/web/public/js/d3.v3.min.js +5 -0
  34. data/lib/flapjack/gateways/web/public/js/flapjack.js +78 -0
  35. data/lib/flapjack/gateways/web/public/js/modules/contact.js +521 -0
  36. data/lib/flapjack/gateways/web/public/js/modules/entity.js +28 -0
  37. data/lib/flapjack/gateways/web/public/js/modules/medium.js +39 -0
  38. data/lib/flapjack/gateways/web/public/js/moment.js +2489 -0
  39. data/lib/flapjack/gateways/web/public/js/nv.d3.min.js +6 -0
  40. data/lib/flapjack/gateways/web/public/js/select2.js +12 -12
  41. data/lib/flapjack/gateways/web/public/js/self_stats.js +78 -0
  42. data/lib/flapjack/gateways/web/views/edit_contacts.html.erb +108 -73
  43. data/lib/flapjack/gateways/web/views/layout.erb +11 -12
  44. data/lib/flapjack/gateways/web/views/self_stats.html.erb +32 -4
  45. data/lib/flapjack/patches.rb +1 -1
  46. data/lib/flapjack/pikelet.rb +1 -1
  47. data/lib/flapjack/version.rb +1 -1
  48. data/spec/lib/flapjack/data/contact_spec.rb +0 -1
  49. data/spec/lib/flapjack/data/notification_rule_spec.rb +6 -4
  50. data/spec/lib/flapjack/gateways/jsonapi/contact_methods_spec.rb +15 -0
  51. data/spec/lib/flapjack/gateways/jsonapi/entity_methods_spec.rb +19 -4
  52. data/spec/lib/flapjack/gateways/jsonapi/medium_methods_spec.rb +2 -3
  53. data/spec/lib/flapjack/gateways/jsonapi/notification_rule_methods_spec.rb +41 -3
  54. data/spec/lib/flapjack/gateways/jsonapi/pagerduty_credential_methods_spec.rb +2 -2
  55. data/spec/lib/flapjack/gateways/pagerduty_spec.rb +16 -0
  56. data/spec/spec_helper.rb +14 -2
  57. metadata +20 -17
  58. data/lib/flapjack/gateways/web/public/css/bootstrap-responsive.min.css +0 -9
  59. data/lib/flapjack/gateways/web/public/css/bootstrap-theme.css +0 -397
  60. data/lib/flapjack/gateways/web/public/css/bootstrap-theme.min.css +0 -7
  61. data/lib/flapjack/gateways/web/public/css/bootstrap.min.css +0 -7
  62. data/lib/flapjack/gateways/web/public/css/font-awesome.min.css +0 -4
  63. data/lib/flapjack/gateways/web/public/js/backbone-min.js +0 -2
  64. data/lib/flapjack/gateways/web/public/js/bootstrap.min.js +0 -6
  65. data/lib/flapjack/gateways/web/public/js/contacts.js +0 -490
  66. data/lib/flapjack/gateways/web/public/js/jquery-1.10.2.min.js +0 -6
  67. data/lib/flapjack/gateways/web/public/js/moment.min.js +0 -6
  68. data/lib/flapjack/gateways/web/public/js/select2.min.js +0 -22
  69. data/lib/flapjack/gateways/web/public/js/underscore-min.js +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20501028ceb91b915d143e9d9343fae832db8e1c
4
- data.tar.gz: b2d975287acd597e04f148f589c76ed067832665
3
+ metadata.gz: c12d1908e4d17b6184593f91b1208c20cff78bcd
4
+ data.tar.gz: c3975b071f0b015ad7a2f0728430cdb4b5411751
5
5
  SHA512:
6
- metadata.gz: 051d4c2f9f58b9b57a45105a10c7cd64353c2a3c485b53a57a8bcc54f7546ed36058a50dfcb52a663413ffc2f8d5c955651a5cb554a48ea276b073eb93345409
7
- data.tar.gz: ea18f80815f9172ca9a0f3f2021934b9f38d5da6cec030c0f27ad493dec8178ef40120f3004a898adfe50f6a1df22b0ac89c45a8a6492110694f02d2c5986e8f
6
+ metadata.gz: 71d0bcbb7e4317817dbadd673ebb719f8c07afd3b73d0daac58610f5774b1c653cbac43443020bc319abd98d40a1031d3273c6904557bc9cc8ad3f896042eccb
7
+ data.tar.gz: 756fb36155e507f440464f4e1841db59e43e5eff0c468579d208d19d4f2a45cf84494077f20ad685a82aa23807a364ddc26cfb655673cf2454e9e63721c1ffab
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  ## Flapjack Changelog
2
2
 
3
+ # 0.8.12 - 2014-05-21
4
+ - Feature: highlight the section that I'm in #483 (@auxesis)
5
+ - Feature: Visualise the event queue length on self stats page #482 (@auxesis)
6
+ - Feature: Restructure backbone /edit_contacts UI (and backend file structure), fix remaining usage issues #515 (@ali-graham)
7
+ - Bug: pagerduty gateway exception when subdomain not set #486 (@jessereynolds)
8
+ - Bug: tests use default redis port #495 (@spazm)
9
+ - Bug: GET /notification_rules doesn't work #510 (@ali-graham)
10
+ - Bug: JSONAPI -- do not emit entities without ids #521 (@ali-graham)
11
+ - Bug: PATCHing blackhole properties for notification rule changes other blackholes #504 (@ali-graham)
12
+ - Chore: updated github urls to use new flapjack project name #491 (@spazm)
13
+ - Chore: Add a CONTRIBUTING.md doc for potential helpers #492 (@spazm)
14
+
15
+
3
16
  # 0.8.11 - 2014-05-01
4
17
  - Feature: simulate-failed-check - give -t a default of 45 seconds (@jessereynolds)
5
18
  - Feature: allow email messages to have custom from address #468 (@mattdelves)
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,35 @@
1
+ #Contributing to ![Flapjack](https://raw.github.com/flapjack/flapjack/gh-pages/images/flapjack-2013-notext-transparent-50-50.png "Flapjack") Flapjack
2
+
3
+ [![Build Status](https://travis-ci.org/flapjack/flapjack.png)](https://travis-ci.org/flapjack/flapjack)
4
+
5
+ Please see the [Contributing to Flapjack](https://github.com/flapjack/flapjack/wiki/DEVELOPING) section of the Flapjack wiki.
6
+
7
+ > Flapjack is, and will continue to be, well tested. Monitoring is like continuous integration for production apps, so why shouldn't your monitoring system have tests?
8
+
9
+ ## Quick Start
10
+
11
+ 1. clone the repo
12
+
13
+ git clone https://github.com/flapjack/flapjack.git
14
+
15
+ 2. install development dependencies with bundler:
16
+
17
+ cd flapjack
18
+ gem install bundler
19
+ bundle install
20
+
21
+ 3. install redis
22
+ 4. run unit tests
23
+
24
+ rake spec
25
+
26
+ 5. run integration tests
27
+
28
+ rake features
29
+
30
+ 6. code coverage for tests
31
+
32
+ COVERAGE=x rake spec
33
+ COVERAGE=x rake features
34
+
35
+ 7. make changes with tests, send a [pull request](https://help.github.com/articles/creating-a-pull-request), share love!
data/Gemfile CHANGED
@@ -20,6 +20,6 @@ group :test do
20
20
  gem 'guard-cucumber'
21
21
  gem 'fuubar'
22
22
  gem 'simplecov', :require => false
23
- gem 'debugger-ruby_core_source', '>= 1.3.2' # required for perftools
23
+ gem 'debugger-ruby_core_source', '>= 1.3.4' # required for perftools
24
24
  gem 'perftools.rb'
25
25
  end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # ![Flapjack](https://raw.github.com/flpjck/flapjack/gh-pages/images/flapjack-2013-notext-transparent-50-50.png "Flapjack") Flapjack
1
+ # ![Flapjack](https://raw.github.com/flapjack/flapjack/gh-pages/images/flapjack-2013-notext-transparent-50-50.png "Flapjack") Flapjack
2
2
 
3
- [![Build Status](https://travis-ci.org/flpjck/flapjack.png)](https://travis-ci.org/flpjck/flapjack)
3
+ [![Build Status](https://travis-ci.org/flapjack/flapjack.png)](https://travis-ci.org/flapjack/flapjack)
4
4
 
5
5
  [Flapjack](http://flapjack.io/) is a flexible monitoring notification routing system that handles:
6
6
 
@@ -71,11 +71,13 @@ gem install flapjack
71
71
 
72
72
  Using a tool like [rbenv](https://github.com/sstephenson/rbenv) or [rvm](https://rvm.io/) is recommended to keep your Ruby applications from intefering with one another.
73
73
 
74
- Alternatively, you can add support for your OS of choice to [omnibus-flapjack](https://github.com/flpjck/omnibus-flapjack) and build a native package. Pull requests welcome, and we'll help you make this happen!
74
+ Alternatively, you can add support for your OS of choice to [omnibus-flapjack](https://github.com/flapjack/omnibus-flapjack) and build a native package. Pull requests welcome, and we'll help you make this happen!
75
+
76
+ You'll also need Redis >= 2.6.12.
75
77
 
76
78
  ## Configuring
77
79
 
78
- Have a look at the default config file and modify things as required. See the [Configuring Components](https://github.com/flpjck/flapjack/wiki/USING#wiki-configuring_components) section on the wiki for more details.
80
+ Have a look at the default config file and modify things as required. See the [Configuring Components](https://github.com/flapjack/flapjack/wiki/USING#wiki-configuring_components) section on the wiki for more details.
79
81
 
80
82
  ``` bash
81
83
  # hack the config
@@ -122,11 +124,11 @@ sudo /etc/init.d/flapjack start
122
124
 
123
125
  ## Using - Details
124
126
 
125
- For more information, including full specification of the configuration file and the data import formats, please refer to the [USING](https://github.com/flpjck/flapjack/wiki/USING) section of the Flapjack wiki
127
+ For more information, including full specification of the configuration file and the data import formats, please refer to the [USING](https://github.com/flapjack/flapjack/wiki/USING) section of the Flapjack wiki
126
128
 
127
129
  ## Developing Flapjack
128
130
 
129
- Information on developing more Flapjack components or contributing to core Flapjack development can be found in the [DEVELOPING](https://github.com/flpjck/flapjack/wiki/DEVELOPING) section of the Flapjack wiki
131
+ Information on developing more Flapjack components or contributing to core Flapjack development can be found in the [DEVELOPING](https://github.com/flapjack/flapjack/wiki/DEVELOPING) section of the Flapjack wiki
130
132
 
131
133
  ## Documentation Submodule
132
134
 
@@ -145,14 +147,14 @@ If you make changes to the documentation locally, here's how to publish them:
145
147
 
146
148
  ## More on the wiki
147
149
 
148
- [The Flapjack wiki](https://github.com/flpjck/flapjack/wiki) has even more goodies:
150
+ [The Flapjack wiki](https://github.com/flapjack/flapjack/wiki) has even more goodies:
149
151
 
150
- - [Using Flapjack](https://github.com/flpjck/flapjack/wiki/USING)
151
- - [Developing Flapjack](https://github.com/flpjck/flapjack/wiki/DEVELOPING)
152
- - [Redis Data Structure](https://github.com/flpjck/flapjack/wiki/DATA_STRUCTURES)
153
- - [API](https://github.com/flpjck/flapjack/wiki/API)
154
- - [Importing](https://github.com/flpjck/flapjack/wiki/IMPORTING)
155
- - [Debugging Flapjack](https://github.com/flpjck/flapjack/wiki/DEBUGGING)
156
- - [Flapjack Glossary](https://github.com/flpjck/flapjack/wiki/GLOSSARY)
152
+ - [Using Flapjack](https://github.com/flapjack/flapjack/wiki/USING)
153
+ - [Developing Flapjack](https://github.com/flapjack/flapjack/wiki/DEVELOPING)
154
+ - [Redis Data Structure](https://github.com/flapjack/flapjack/wiki/DATA_STRUCTURES)
155
+ - [API](https://github.com/flapjack/flapjack/wiki/API)
156
+ - [Importing](https://github.com/flapjack/flapjack/wiki/IMPORTING)
157
+ - [Debugging Flapjack](https://github.com/flapjack/flapjack/wiki/DEBUGGING)
158
+ - [Flapjack Glossary](https://github.com/flapjack/flapjack/wiki/GLOSSARY)
157
159
 
158
160
 
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env ruby
2
+ unless $:.include?(File.dirname(__FILE__) + '/../lib/')
3
+ $: << File.dirname(__FILE__) + '/../lib'
4
+ end
5
+
6
+ require 'optparse'
7
+ require 'ostruct'
8
+ require 'redis'
9
+ require 'oj'
10
+
11
+ require 'flapjack/configuration'
12
+ require 'flapjack/data/event'
13
+
14
+ exe = File.basename(__FILE__)
15
+
16
+ options = OpenStruct.new
17
+ options.config = Flapjack::Configuration::DEFAULT_CONFIG_PATH
18
+
19
+ optparse = OptionParser.new do |opts|
20
+ opts.banner = "Usage: #{exe} [OPTIONS]"
21
+
22
+ opts.separator ""
23
+ opts.separator "Feed JSON blobs from file or STDIN into the Flapjack event queue."
24
+ opts.separator ""
25
+ opts.separator "Options"
26
+
27
+ opts.on("-c", "--config [PATH]", String, "PATH to the config file to use.") do |c|
28
+ options.config = c
29
+ end
30
+
31
+ opts.on("-f", "--from [FILE]", String, "path to the FILE to process; if not provided, defaults to STDIN.") do |f|
32
+ options.from = f
33
+ end
34
+ end
35
+ optparse.parse!(ARGV)
36
+
37
+ bail_with_usage = proc do |message|
38
+ puts message
39
+ puts "\n#{optparse}"
40
+ exit(false)
41
+ end
42
+
43
+ if options.help
44
+ puts optparse
45
+ exit
46
+ elsif options.version
47
+ puts Flapjack::VERSION
48
+ exit
49
+ end
50
+
51
+ FLAPJACK_ENV = ENV['FLAPJACK_ENV'] || 'production'
52
+ config = Flapjack::Configuration.new
53
+ config.load(options.config)
54
+ config_env = config.all
55
+ if config_env.nil? || config_env.empty?
56
+ puts "No config data for environment '#{FLAPJACK_ENV}' found in '#{options.config}'"
57
+ exit(false)
58
+ end
59
+ redis = Redis.new(config.for_redis)
60
+
61
+ input = if options.from
62
+ File.open(options.from) # Explodes if file does not exist.
63
+ else
64
+ bail_with_usage.call("No file provided, and STDIN is from terminal! Exiting...") if $stdin.tty?
65
+ $stdin
66
+ end
67
+
68
+ # Sit and churn through the input stream until a valid JSON blob has been assembled.
69
+ # This handles both the case of a process sending a single JSON and then exiting
70
+ # (eg. cat foo.json | bin/flapjack-feed-event) *and* a longer-running process spitting
71
+ # out events (eg. /usr/bin/slow-event-feed | bin/flapjack-feed-event)
72
+
73
+ class EventFeedHandler < Oj::ScHandler
74
+
75
+ def initialize(&block)
76
+ @hash_depth = 0
77
+ @callback = block if block_given?
78
+ end
79
+
80
+ def hash_start
81
+ @hash_depth += 1
82
+ Hash.new
83
+ end
84
+
85
+ def hash_end
86
+ @hash_depth -= 1
87
+ end
88
+
89
+ def array_start
90
+ Array.new
91
+ end
92
+
93
+ def array_end
94
+ end
95
+
96
+ def add_value(value)
97
+ @callback.call(value) if @callback
98
+ nil
99
+ end
100
+
101
+ def hash_set(hash, key, value)
102
+ hash[key] = value
103
+ end
104
+
105
+ def array_append(array, value)
106
+ array << value
107
+ end
108
+
109
+ end
110
+
111
+ parser = EventFeedHandler.new do |parsed|
112
+ # Handle "parsed" (a hash)
113
+ errors = Flapjack::Data::Event.validation_errors_for_hash(parsed)
114
+ if errors.empty?
115
+ Flapjack::Data::Event.add(parsed, :redis => redis)
116
+ puts "Enqueued event data, #{parsed.inspect}"
117
+ else
118
+ puts "Invalid event data received, #{errors.join(', ')} #{parsed.inspect}"
119
+ end
120
+ end
121
+
122
+ Oj.sc_parse(parser, input)
123
+
124
+ puts "Done."
@@ -140,7 +140,7 @@ nagios.cfg changes:
140
140
  host_perfdata_file_mode=p
141
141
  service_perfdata_file_mode=p
142
142
 
143
- Details on the wiki: https://github.com/flpjck/flapjack/wiki/USING#configuring-nagios
143
+ Details on the wiki: https://github.com/flapjack/flapjack/wiki/USING#configuring-nagios
144
144
  '
145
145
 
146
146
  exit
@@ -138,7 +138,7 @@ in the configfile:
138
138
  The Nsca daemon is optionally writing to a tempfile if the named pipe does
139
139
  not exist.
140
140
 
141
- Details on the wiki: https://github.com/flpjck/flapjack/wiki/USING#XXX
141
+ Details on the wiki: https://github.com/flapjack/flapjack/wiki/USING#XXX
142
142
  '
143
143
 
144
144
  exit
@@ -291,5 +291,4 @@ development:
291
291
 
292
292
  test:
293
293
  redis:
294
- database: 14
295
-
294
+ db: 14
@@ -0,0 +1,104 @@
1
+ @process
2
+ Feature: flapjack-feed-events command line
3
+ As a systems administrator
4
+ I should be able to use flapjack-feed-events
5
+ From the command line
6
+
7
+ Background:
8
+ Given a file named "flapjack-feed-events.yaml" with:
9
+ """
10
+ test:
11
+ redis:
12
+ db: 14
13
+ """
14
+
15
+ Scenario: Running with --help shows usage information
16
+ When I run `bin/flapjack-feed-events --help`
17
+ Then the exit status should be 0
18
+ And the output should contain "Usage: flapjack-feed-events"
19
+ And the output should contain "-c, --config"
20
+ And the output should contain "-f, --from"
21
+
22
+ Scenario: Running flapjack-feed-events with no arguments and no STDIN fails with a warning
23
+ When I run `bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
24
+ And the output should contain "No file provided, and STDIN is from terminal! Exiting..."
25
+ And the output should contain "Usage: flapjack-feed-events"
26
+ Then the exit status should be 1
27
+
28
+
29
+ Scenario: Feed a single event into the events queue
30
+ Given a file named "single-event.json" with:
31
+ """
32
+ {
33
+ "entity": "client1-localhost-test-1",
34
+ "check": "foo",
35
+ "type": "service",
36
+ "state": "ok",
37
+ "summary": "testing"
38
+ }
39
+ """
40
+ When I run `cat tmp/cucumber_cli/single-event.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
41
+ Then the exit status should be 0
42
+ And the output should not contain "Invalid event data received"
43
+ And the output should contain "Enqueued event data, "
44
+ And the output should contain "client1-localhost-test-1"
45
+ And the output should contain "Done."
46
+
47
+ When I run `bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml -f tmp/cucumber_cli/single-event.json`
48
+ Then the exit status should be 0
49
+ And the output should not contain "Invalid event data received"
50
+ And the output should contain "Enqueued event data, "
51
+ And the output should contain "client1-localhost-test-1"
52
+ And the output should contain "Done."
53
+
54
+
55
+ Scenario: Feed multiple events into the events queue
56
+ Given a file named "multiple-events.json" with:
57
+ """
58
+ {"entity": "client1-localhost-test-1", "check": "foo",
59
+ "type": "service", "state": "ok", "summary": "testing"}
60
+ {"entity": "client1-localhost-test-2",
61
+ "check": "bar", "type": "service", "state": "ok", "summary":
62
+ "testing"
63
+ }
64
+ """
65
+ When I run `cat tmp/cucumber_cli/multiple-events.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
66
+ Then the exit status should be 0
67
+ And the output should not contain "Invalid event data received"
68
+ And the output should contain "Enqueued event data, "
69
+ And the output should contain "client1-localhost-test-1"
70
+ And the output should contain "client1-localhost-test-2"
71
+ And the output should contain "Done."
72
+
73
+ When I run `bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml -f tmp/cucumber_cli/multiple-events.json`
74
+ Then the exit status should be 0
75
+ And the output should not contain "Invalid event data received"
76
+ And the output should contain "Enqueued event data, "
77
+ And the output should contain "client1-localhost-test-1"
78
+ And the output should contain "client1-localhost-test-2"
79
+ And the output should contain "Done."
80
+
81
+ Scenario: Feed invalid events into the events queue
82
+ Given a file named "invalid-events.json" with:
83
+ """
84
+ {"entity": "client1-localhost-test-1"}
85
+ {"entity": "client1-localhost-test-2", "check": "bar"}
86
+ """
87
+ When I run `cat tmp/cucumber_cli/invalid-events.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
88
+ Then the exit status should be 0
89
+ And the output should not contain "Enqueued event data, "
90
+ And the output should contain "Invalid event data received"
91
+ And the output should contain "client1-localhost-test-1"
92
+ And the output should contain "client1-localhost-test-2"
93
+ And the output should contain "Done."
94
+
95
+ Scenario: Feed invalid JSON into the events queue
96
+ Given a file named "invalid-json.json" with:
97
+ """
98
+ {"entity": "client1-localhost-test-1"
99
+ {"entity": "client1-localhost-test-2", "check": "bar"}
100
+ """
101
+ When I run `cat tmp/cucumber_cli/invalid-json.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
102
+ Then the exit status should be 1
103
+ And the output should not contain "Enqueued event data, "
104
+ And the output should contain "(Oj::ParseError)"
@@ -145,8 +145,8 @@ end
145
145
 
146
146
  def icecube_schedule_to_time_restriction(sched, time_zone)
147
147
  tr = sched.to_hash
148
- tr[:start_time] = time_zone.utc_to_local(tr[:start_date][:time]).strftime "%Y-%m-%d %H:%M:%S"
149
- tr[:end_time] = time_zone.utc_to_local(tr[:end_time][:time]).strftime "%Y-%m-%d %H:%M:%S"
148
+ tr[:start_time] = {:time => time_zone.utc_to_local(tr[:start_time][:time]).strftime("%Y-%m-%d %H:%M:%S"), :zone => time_zone}
149
+ tr[:end_time] = {:time => time_zone.utc_to_local(tr[:end_time][:time]).strftime("%Y-%m-%d %H:%M:%S"), :zone => time_zone}
150
150
 
151
151
  # rewrite IceCube::WeeklyRule to Weekly, etc
152
152
  tr[:rrules].each {|rrule|
@@ -24,6 +24,6 @@ Then /^the exit status should( not)? be (\d+)$/ do |negativity, number|
24
24
  expect(@exit_status).send(negativity ? :not_to : :to, eq(number.to_i))
25
25
  end
26
26
 
27
- Then /^the output should contain "([^"]*)"$/ do |matcher|
28
- expect(@output).to include(matcher)
27
+ Then /^the output should( not)? contain "([^"]*)"$/ do |negativity, matcher|
28
+ expect(@output).send(negativity ? :not_to : :to, include(matcher))
29
29
  end
@@ -5,6 +5,7 @@ require 'delorean'
5
5
  require 'chronic'
6
6
  require 'active_support/time'
7
7
  require 'ice_cube'
8
+ require 'flapjack/configuration'
8
9
  require 'flapjack/data/entity_check'
9
10
  require 'flapjack/data/event'
10
11
 
@@ -23,6 +24,8 @@ end
23
24
 
24
25
  ENV["FLAPJACK_ENV"] = 'test'
25
26
  FLAPJACK_ENV = 'test'
27
+ FLAPJACK_ROOT = File.join(File.dirname(__FILE__), '..', '..')
28
+ FLAPJACK_CONFIG = File.join(FLAPJACK_ROOT, 'etc', 'flapjack_config.yaml')
26
29
 
27
30
  $: << File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
28
31
 
@@ -119,7 +122,10 @@ EXPIRE_AS_IF_AT
119
122
 
120
123
  end
121
124
 
122
- redis_opts = { :db => 14, :driver => :ruby }
125
+ config = Flapjack::Configuration.new
126
+ redis_opts = config.load(FLAPJACK_CONFIG) ?
127
+ config.for_redis :
128
+ {:db => 14, :driver => :ruby}
123
129
  redis = ::Redis.new(redis_opts)
124
130
  redis.flushdb
125
131
  RedisDelorean.before_all(:redis => redis)