flapjack 0.9.6 → 1.0.0rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +6 -0
  4. data/.travis.yml +20 -16
  5. data/CHANGELOG.md +11 -25
  6. data/Dockerfile +8 -0
  7. data/Gemfile +2 -5
  8. data/bin/flapjack +24 -213
  9. data/etc/flapjack_config.yaml.example +6 -30
  10. data/features/cli.feature +16 -14
  11. data/features/cli_flapjack-feed-events.feature +12 -13
  12. data/features/cli_flapjack-nagios-receiver.feature +14 -15
  13. data/features/cli_flapjack-populator.feature +16 -15
  14. data/features/cli_flapper.feature +12 -12
  15. data/features/cli_receive-events.feature +6 -5
  16. data/features/cli_simulate-failed-check.feature +7 -6
  17. data/features/steps/cli_steps.rb +2 -2
  18. data/features/support/env.rb +1 -0
  19. data/flapjack.gemspec +1 -0
  20. data/lib/flapjack/cli/flapper.rb +200 -0
  21. data/lib/flapjack/cli/import.rb +102 -0
  22. data/lib/flapjack/cli/receiver.rb +656 -0
  23. data/lib/flapjack/cli/server.rb +256 -0
  24. data/lib/flapjack/cli/simulate.rb +180 -0
  25. data/lib/flapjack/configuration.rb +2 -0
  26. data/lib/flapjack/data/entity_check.rb +5 -22
  27. data/lib/flapjack/data/event.rb +7 -12
  28. data/lib/flapjack/gateways/email.rb +4 -1
  29. data/lib/flapjack/gateways/jabber.rb +12 -36
  30. data/lib/flapjack/gateways/jsonapi/check_presenter.rb +6 -6
  31. data/lib/flapjack/gateways/jsonapi/report_methods.rb +5 -3
  32. data/lib/flapjack/gateways/pagerduty.rb +1 -1
  33. data/lib/flapjack/gateways/web/public/js/backbone.jsonapi.js +1 -1
  34. data/lib/flapjack/gateways/web/public/js/modules/contact.js +2 -2
  35. data/lib/flapjack/gateways/web/public/js/modules/entity.js +2 -2
  36. data/lib/flapjack/gateways/web/public/js/modules/medium.js +4 -4
  37. data/lib/flapjack/gateways/web/public/js/self_stats.js +1 -1
  38. data/lib/flapjack/gateways/web/views/check.html.erb +7 -7
  39. data/lib/flapjack/gateways/web/views/checks.html.erb +2 -3
  40. data/lib/flapjack/gateways/web/views/contact.html.erb +4 -4
  41. data/lib/flapjack/gateways/web/views/contacts.html.erb +2 -2
  42. data/lib/flapjack/gateways/web/views/edit_contacts.html.erb +1 -1
  43. data/lib/flapjack/gateways/web/views/entities.html.erb +1 -1
  44. data/lib/flapjack/gateways/web/views/entity.html.erb +1 -1
  45. data/lib/flapjack/gateways/web/views/index.html.erb +2 -2
  46. data/lib/flapjack/gateways/web/views/layout.erb +10 -10
  47. data/lib/flapjack/gateways/web/views/self_stats.html.erb +1 -1
  48. data/lib/flapjack/gateways/web.rb +36 -7
  49. data/lib/flapjack/pikelet.rb +0 -2
  50. data/lib/flapjack/processor.rb +3 -1
  51. data/lib/flapjack/redis_pool.rb +2 -6
  52. data/lib/flapjack/version.rb +1 -1
  53. data/spec/lib/flapjack/coordinator_spec.rb +3 -3
  54. data/spec/lib/flapjack/data/entity_check_spec.rb +2 -6
  55. data/spec/lib/flapjack/data/event_spec.rb +0 -31
  56. data/spec/lib/flapjack/gateways/email_spec.rb +109 -0
  57. data/spec/lib/flapjack/gateways/jabber_spec.rb +18 -16
  58. data/spec/lib/flapjack/gateways/jsonapi/check_presenter_spec.rb +12 -24
  59. data/spec/lib/flapjack/gateways/pagerduty_spec.rb +1 -1
  60. data/spec/lib/flapjack/gateways/web/views/check.html.erb_spec.rb +2 -0
  61. data/spec/lib/flapjack/gateways/web/views/contact.html.erb_spec.rb +2 -0
  62. data/spec/lib/flapjack/gateways/web/views/index.html.erb_spec.rb +2 -0
  63. data/spec/lib/flapjack/gateways/web_spec.rb +194 -145
  64. data/spec/lib/flapjack/redis_pool_spec.rb +0 -1
  65. data/spec/support/profile_all_formatter.rb +44 -0
  66. data/spec/support/uncolored_doc_formatter.rb +9 -0
  67. data/tasks/benchmarks.rake +0 -4
  68. metadata +28 -38
  69. data/.ruby-version +0 -1
  70. data/Gemfile-ruby1.9 +0 -28
  71. data/Gemfile-ruby1.9.lock +0 -227
  72. data/bin/flapjack-feed-events +0 -124
  73. data/bin/flapjack-nagios-receiver +0 -246
  74. data/bin/flapjack-nsca-receiver +0 -246
  75. data/bin/flapjack-populator +0 -132
  76. data/bin/flapper +0 -152
  77. data/bin/receive-events +0 -179
  78. data/bin/simulate-failed-check +0 -151
  79. data/lib/flapjack/data/migration.rb +0 -36
  80. data/lib/flapjack/gateways/api/contact_methods.rb +0 -369
  81. data/lib/flapjack/gateways/api/entity_check_presenter.rb +0 -218
  82. data/lib/flapjack/gateways/api/entity_methods.rb +0 -361
  83. data/lib/flapjack/gateways/api/entity_presenter.rb +0 -75
  84. data/lib/flapjack/gateways/api/rack/json_params_parser.rb +0 -26
  85. data/lib/flapjack/gateways/api.rb +0 -124
  86. data/spec/lib/flapjack/gateways/api/contact_methods_spec.rb +0 -772
  87. data/spec/lib/flapjack/gateways/api/entity_check_presenter_spec.rb +0 -211
  88. data/spec/lib/flapjack/gateways/api/entity_methods_spec.rb +0 -863
  89. data/spec/lib/flapjack/gateways/api/entity_presenter_spec.rb +0 -108
  90. data/spec/lib/flapjack/gateways/api_spec.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a77bb89c8999f6a11d0931654c29d4a6208a7d1
4
- data.tar.gz: c9521efb2b1aa33e615efdecc288c51f90b887b6
3
+ metadata.gz: e16bef3e8503fd14954e5bdf4b843e9d92e598a6
4
+ data.tar.gz: b85df2a0ca05163744d236b6c6237c63ad1b2520
5
5
  SHA512:
6
- metadata.gz: eb0351065fe36a2e797fac51f027fcc9e2582d773da07c0c961f21e0903a263ce2e903dcb7aee73e6ed7dd9a92328d7ac038f51c5a2ab8b39116a3adb71c3f21
7
- data.tar.gz: 350d40dd04d845138c71bc08fec42b2633f871b145db7acd10f9a083f9aaae32ee73e8d5073bb577a8ca690fcbb1a516941e370a903a04af3a5e2f2589fded05
6
+ metadata.gz: c0daf6b0e65f5810b695de85af843dfab1cafcda10d0e750c5e93adf6f4f0b9bf8506f19341cd0e29c5b06db47382a1016248d1f356fc335f47207187f8da9ce
7
+ data.tar.gz: 71fe02a6300726b86393640e1d919c43537b6f07a90d95e3a22ba366f05836dea16966227d11643530b1acf1e9dc0407464bbd73c23b54689ed70f413734183a
data/.gitignore CHANGED
@@ -25,5 +25,7 @@ tmp/spec*
25
25
  tmp/profiles
26
26
  flapjack-*.gem
27
27
  _site/*
28
+ .rbenv-version
29
+ .ruby-version
28
30
  .rvmrc
29
31
  artifacts/*
data/.rspec CHANGED
@@ -2,3 +2,9 @@
2
2
  --format Fuubar
3
3
  --format html
4
4
  --out tmp/spec.html
5
+ --require ./spec/support/uncolored_doc_formatter.rb
6
+ --format UncoloredDocFormatter
7
+ --out tmp/spec_doc.txt
8
+ --require ./spec/support/profile_all_formatter.rb
9
+ --format ProfileAllFormatter
10
+ --out tmp/spec_profile.txt
data/.travis.yml CHANGED
@@ -1,20 +1,24 @@
1
1
  language: ruby
2
- matrix:
3
- include:
4
- - rvm: 1.9.3
5
- gemfile: Gemfile-ruby1.9
6
- script: "bundle exec rspec spec && bundle exec cucumber features"
7
- env: BUNDLE_GEMFILE=Gemfile-ruby1.9
8
- - rvm: '2.0'
9
- gemfile: Gemfile
10
- script: "bundle exec rspec spec && bundle exec cucumber features"
11
- - rvm: '2.1'
12
- gemfile: Gemfile
13
- script: "bundle exec rspec spec && bundle exec cucumber features"
2
+ rvm:
3
+ - 1.9.3
4
+ - '2.0'
5
+ - '2.1'
6
+ gemfile:
7
+ - Gemfile
14
8
  services:
15
- - redis-server
9
+ - redis-server
16
10
  before_script:
17
- - mkdir -p ./log
11
+ - mkdir -p ./log
18
12
  before_install:
19
- - git submodule update --init --recursive
20
- - gem install bundler
13
+ - git submodule update --init --recursive
14
+ - gem install bundler
15
+ script: bundle exec rspec spec && bundle exec cucumber features
16
+ notifications:
17
+ irc: 'irc.freenode.net#flapjack'
18
+ hipchat:
19
+ template:
20
+ - '%{repository}#%{build_number} (%{branch} - %{commit} : %{author}): %{message}
21
+ (<a href="%{build_url}">Details</a>/<a href="%{compare_url}">Change view</a>)'
22
+ format: html
23
+ rooms:
24
+ secure: ajMolTKDuprYJ9Fadcjb3evh80MyJSgjW4hl4OWnEHyrjQLnsO0hbAvSrKRFUzorMoi58L8XZXd01gMgRqRxMvwqfoHLv4njw8px4X9+F/hySPZj3aMAFM1HuoTmHqeP+Rl+1Ssg+Kss6N4JkgNS81s+tkRnnoHG1n/EhfH6PkE=
data/CHANGELOG.md CHANGED
@@ -1,34 +1,20 @@
1
1
  ## Flapjack Changelog
2
2
 
3
- # 0.9.6 - 2014-10-21
4
- - Feature: make 0.9 compatible with new event mirroring logic in 1.2 (fixes #687) #688 (@ali-graham, @jessereynolds)
5
-
6
- # 0.9.5 - 2014-10-08
7
- - Bug: fix api_url handling in the web ui (@jessereynolds)
8
-
9
- # 0.9.4 - 2014-09-21
10
- - Bug: crash in pagerduty gateway when failing entities have no id #593 (@jessereynolds)
11
- - Bug: bugfix for updating rule data without contact_ids (no-issue) (@ali-graham)
12
- - Bug: set key expiry properly for scheduled maintenance spanning current time #634 (@ali-graham)
13
-
14
- # 0.9.3 - 2014-07-28
15
- - Bug: fix outage reports in jsonapi c8e09f7 (@ali-graham)
16
- - Bug: fix maintenance reports in jsonapi 234ce48 (@ali-graham)
17
- - Bug: simplify checks reports in jsonapi 3eda22e (@ali-graham)
18
-
19
- # 0.9.2 - 2014-07-17
20
- - Feature: Add ability to disable check via JSON API #529 (@ali-graham)
21
- - Feature: Jabber - Resource in JID should be supported in the config #557 (@jessereynolds)
22
- - Feature: Jabber - add an 'identifiers' list to the config #558 (@jessereynolds)
23
- - Feature: Jabber - handle HipChat style status updates as per XEP-0085 #559 (@jessereynolds)
24
-
25
- # 0.9.1 - 2014-06-27
3
+ # 1.0.0rc1 - 2014-06-25
4
+ - Feature: Allow ncsm to be skipped using a configured whitelist #485 (@StephenWeber)
5
+ - Feature: GLI the CLI (one command to rule them all) #478 (@auxesis, @ali-graham)
6
+ - Feature: Remove the original HTTP API #526 (@ali-graham)
7
+ - Feature: connecting to an password protected redis server is a good idea #533 (@mattdelves)
8
+ - Feature: Add option to pass tags to simulate-failed-check command. #537 (@jwoods)
9
+ - Feature: Dockerfile that runs flapjack #541 (@michaelneale)
10
+ - Feature: allow customistion of email from reply to #543 (@ferrisoxide)
11
+ - Feature: Allow custom Flapjack branding. #544 (@ferrisoxide)
12
+ - Feature: Add base_url functionality to the web gateway. #539 (@pieterlange)
26
13
  - Bug: PATCHing blackhole properties for notification rule changes other blackholes - further fixes #504 (@ali-graham)
27
14
  - Bug: JSONAPI get all entities/contacts with empty db e3725fc (@ali-graham)
28
- - Bug: Decommission Check button returning a 404 #538 (@ali-graham)
29
- - Bug: Weekday number 7 is accepted by the jsonapi but causes Flapjack to crash #549 (@ali-graham)
30
15
 
31
16
  # 0.9.0 - 2014-05-23
17
+ - Feature: create 0.9.x series - the last to contain the original API
32
18
  - Chore: split reports data from entities and checks in jsonapi #525 (@ali-graham)
33
19
 
34
20
  # 0.8.12 - 2014-05-21
data/Dockerfile ADDED
@@ -0,0 +1,8 @@
1
+ FROM ubuntu:12.04
2
+
3
+ RUN echo deb http://packages.flapjack.io/deb precise main >> /etc/apt/sources.list
4
+ RUN apt-get update
5
+ RUN apt-get install -y --force-yes flapjack
6
+
7
+ CMD /etc/init.d/redis-flapjack start && /opt/flapjack/bin/flapjack start --no-daemonize
8
+
data/Gemfile CHANGED
@@ -20,9 +20,6 @@ group :test do
20
20
  gem 'guard-cucumber'
21
21
  gem 'fuubar'
22
22
  gem 'simplecov', :require => false
23
-
24
- if RUBY_VERSION.split('.')[0] == '1' && RUBY_VERSION.split('.')[1] == '9'
25
- gem 'debugger-ruby_core_source', '>= 1.3.4' # required for perftools.rb
26
- gem 'perftools.rb'
27
- end
23
+ gem 'debugger-ruby_core_source', '>= 1.3.4' # required for perftools
24
+ gem 'perftools.rb'
28
25
  end
data/bin/flapjack CHANGED
@@ -1,229 +1,40 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # add lib to the default include path
4
- unless $:.include?(File.dirname(__FILE__) + '/../lib/')
5
- $: << File.dirname(__FILE__) + '/../lib'
6
- end
7
-
8
- require 'dante'
9
-
10
- module Dante
11
- class Runner
12
-
13
- def start
14
- # skip signal traps
15
- @startup_command.call(self.options) if @startup_command
16
- end
17
- end
18
- end
19
-
20
- require 'optparse'
21
- require 'ostruct'
22
-
23
- require 'oj'
24
- Oj.mimic_JSON
25
- Oj.default_options = { :indent => 0, :mode => :strict }
26
- require 'active_support/json'
27
-
28
- require 'flapjack/configuration'
29
- require 'flapjack/version'
30
-
31
- options = OpenStruct.new
32
- options.config = Flapjack::Configuration::DEFAULT_CONFIG_PATH
33
- options.daemonize = nil
34
-
35
- @exe = File.basename(__FILE__)
36
-
37
- optparse = OptionParser.new do |opts|
38
- opts.banner = "Usage: flapjack COMMAND [OPTIONS]"
39
-
40
- opts.separator ""
41
- opts.separator "Commands"
42
- opts.separator " start #{" " * 25} start flapjack"
43
- opts.separator " stop #{" " * 26} stop flapjack"
44
- opts.separator " restart #{" " * 23} (re)start flapjack"
45
- opts.separator " reload #{" " * 24} reload flapjack configuration"
46
- opts.separator " status #{" " * 24} see if flapjack is running"
47
- opts.separator " version #{" " * 23} display flapjack version and exit"
48
- opts.separator " help #{" " * 26} display this usage info"
49
- opts.separator ""
50
- opts.separator "Options"
51
-
52
- opts.on("-c", "--config [PATH]", String, "PATH to the config file to use") do |c|
53
- options.config = c
54
- end
55
-
56
- opts.on("-n", "--environment [ENV]", String, "Environment to boot") do |e|
57
- options.environment = e
58
- end
59
-
60
- opts.on("-d", "--[no-]daemonize", "Daemonize?") do |d|
61
- options.daemonize = d
62
- end
63
-
64
- opts.on('-r', '--rbtrace', 'Enable rbtrace profiling') do
65
- require 'rbtrace'
66
- end
3
+ require 'gli'
67
4
 
68
- opts.on("-p", "--pidfile [PATH]", String, "PATH to the pidfile to write to") do |pid|
69
- options.pidfile = pid
70
- end
5
+ include GLI::App
6
+ subcommand_option_handling :normal
7
+ sort_help :manually
8
+ commands_from 'flapjack/cli'
71
9
 
72
- opts.on("-l", "--logfile [PATH]", String, "PATH to the logfile to write to") do |l|
73
- options.log_path = l
74
- end
10
+ program_desc 'Flexible monitoring notification routing system'
75
11
 
76
- opts.on("-v", "--version", "display flapjack version") do |v|
77
- options.version = v
78
- end
12
+ version Flapjack::VERSION
79
13
 
80
- end
81
- optparse.parse!(ARGV)
82
-
83
- if options.help
84
- puts optparse
85
- exit
86
- elsif options.version
87
- puts Flapjack::VERSION
88
- exit
89
- elsif !["start", "stop", "restart", "reload", "status"].include?(ARGV[0])
90
- if ARGV.nil? || ARGV.empty?
91
- puts "No command provided"
92
- else
93
- puts "Unknown command provided: '#{ARGV[0]}'"
94
- end
95
- puts "\n#{optparse}"
96
- exit 1
97
- end
98
-
99
- FLAPJACK_ENV = options.environment || ENV['FLAPJACK_ENV'] || 'production'
100
-
101
- config = Flapjack::Configuration.new
102
- config.load(options.config)
103
- config_env = config.all
104
-
105
- if config_env.nil? || config_env.empty?
106
- puts "No config data for environment '#{FLAPJACK_ENV}' found in '#{options.config}'"
107
- exit(false)
108
- end
109
-
110
- pidfile = options.pidfile.nil? ?
111
- (config_env['pid_file'] || 'tmp/pids/flapjack.pid') :
112
- options.pidfile
14
+ desc 'Configuration file to use'
15
+ default_value '/etc/flapjack/flapjack.yaml'
16
+ arg_name '/path/to/flapjack.yaml'
17
+ flag [:c,:config]
113
18
 
114
- logfile = options.logfile.nil? ?
115
- (config_env['log_file'] || 'log/flapjack.log') :
116
- options.logfile
19
+ desc 'Environment to boot'
20
+ default_value 'production'
21
+ arg_name '<environment>'
22
+ flag [:n, :env, :environment]
117
23
 
118
- daemonize = options.daemonize.nil? ?
119
- !!config_env['daemonize'] :
120
- options.daemonize
121
-
122
- flapjack_coord = Proc.new {
123
- require 'flapjack/coordinator'
124
- coordinator = Flapjack::Coordinator.new(config)
125
- coordinator.start(:signals => true)
126
- }
127
-
128
- @runner_opts = { :pid_path => pidfile, :log_path => logfile }
129
- def get_runner
130
- Dante::Runner.new(@exe, @runner_opts)
24
+ accept Array do |value|
25
+ value.split(/,/).map(&:strip)
131
26
  end
132
27
 
133
- def process_exists(pid)
134
- return unless pid
135
- begin
136
- Process.kill(0, pid)
137
- return true
138
- rescue Errno::ESRCH
139
- return false
140
- end
28
+ pre do |global,command,options,args|
29
+ FLAPJACK_ENV = ENV["FLAPJACK_ENV"] || global[:environment]
30
+ true
141
31
  end
142
32
 
143
- # wait until the specified pid no longer exists, or until a timeout is reached
144
- def wait_pid_gone(pid, timeout = 30)
145
- print "waiting for a max of #{timeout} seconds for process #{pid} to exit" if process_exists(pid)
146
- started_at = Time.now.to_i
147
- while process_exists(pid)
148
- break unless (Time.now.to_i - started_at < timeout)
149
- print '.'
150
- sleep 1
151
- end
152
- puts ''
153
- return !process_exists(pid)
33
+ post do |global,command,options,args|
154
34
  end
155
35
 
156
- begin
157
- pid = IO.read(pidfile).chomp.to_i
158
- rescue StandardError
159
- pid = nil
36
+ on_error do |exception|
37
+ true
160
38
  end
161
39
 
162
- case ARGV[0]
163
- when "start"
164
- runner = get_runner
165
- if runner.daemon_running?
166
- puts "Flapjack is already running."
167
- else
168
- print "Flapjack starting..."
169
- print "\n" unless daemonize
170
- return_value = nil
171
- runner.execute(:daemonize => daemonize) {
172
- return_value = flapjack_coord.call
173
- }
174
- puts " done."
175
- exit(return_value) unless return_value.nil?
176
- end
177
-
178
- when "stop"
179
- runner = get_runner
180
- if runner.daemon_running?
181
- print "Flapjack stopping..."
182
- runner.execute(:kill => true)
183
- puts " done."
184
- else
185
- puts "Flapjack is not running."
186
- end
187
- exit 1 unless wait_pid_gone(pid)
188
-
189
- when "restart"
190
- runner = get_runner
191
- if runner.daemon_running?
192
- print "Flapjack stopping..."
193
- runner.execute(:kill => true)
194
- puts " done."
195
- end
196
- exit 1 unless wait_pid_gone(pid)
197
-
198
- runner = get_runner
199
- print "Flapjack starting..."
200
- runner.execute(:daemonize => daemonize) {
201
- flapjack_coord.call
202
- }
203
- puts " done."
204
-
205
- when "reload"
206
- runner = get_runner
207
- if runner.daemon_running?
208
- print "Reloading Flapjack configuration..."
209
- begin
210
- Process.kill('HUP', pid)
211
- puts " sent HUP to pid #{pid}."
212
- rescue => e
213
- puts " couldn't send HUP to pid '#{pid}'."
214
- end
215
- else
216
- puts "Flapjack is not running daemonized."
217
- exit 1
218
- end
219
-
220
- when "status"
221
- runner = get_runner
222
- uptime = (runner.daemon_running?) ? Time.now - File.stat(pidfile).ctime : 0
223
- if runner.daemon_running?
224
- puts "Flapjack is running: pid #{pid}, uptime #{uptime}"
225
- else
226
- puts "Flapjack is not running"
227
- exit 3
228
- end
229
- end
40
+ exit run(ARGV)
@@ -18,6 +18,8 @@ production:
18
18
  archive_events: true
19
19
  events_archive_maxage: 10800
20
20
  new_check_scheduled_maintenance_duration: 100 years
21
+ new_check_scheduled_maintenance_ignore_tags:
22
+ - bypass_ncsm
21
23
  logger:
22
24
  level: INFO
23
25
  syslog_errors: yes
@@ -49,7 +51,8 @@ production:
49
51
  level: INFO
50
52
  syslog_errors: yes
51
53
  smtp_config:
52
- #from: "flapjack@noreply.example"
54
+ # from: "Flapjack Example <flapjack@noreply.example>"
55
+ # reply_to: "flapjack@support.example"
53
56
  host: 127.0.0.1
54
57
  # 1025 is the default port for http://mailcatcher.me
55
58
  port: 1025
@@ -87,8 +90,6 @@ production:
87
90
  jabberid: "flapjack@jabber.example.com"
88
91
  password: "good-password"
89
92
  alias: "flapjack"
90
- identifiers:
91
- - "@flapjack"
92
93
  rooms:
93
94
  - "gimp@conference.jabber.example.com"
94
95
  - "log@conference.jabber.example.com"
@@ -114,6 +115,7 @@ production:
114
115
  timeout: 300
115
116
  access_log: "/var/log/flapjack/web_access.log"
116
117
  api_url: "http://localhost:3081/"
118
+ #logo_image_path: "/etc/flapjack/web/custom_logo/flapjack-2013-notext-transparent-300-300.png"
117
119
  logger:
118
120
  level: INFO
119
121
  syslog_errors: yes
@@ -126,14 +128,6 @@ production:
126
128
  logger:
127
129
  level: INFO
128
130
  syslog_errors: yes
129
- api:
130
- enabled: yes
131
- port: 3071
132
- timeout: 300
133
- access_log: "/var/log/flapjack/api_access.log"
134
- logger:
135
- level: INFO
136
- syslog_errors: yes
137
131
  oobetet:
138
132
  enabled: no
139
133
  server: "jabber.example.com"
@@ -171,6 +165,7 @@ development:
171
165
  archive_events: true
172
166
  events_archive_maxage: 10800
173
167
  new_check_scheduled_maintenance_duration: 100 years
168
+ new_check_scheduled_maintenance_ignore: onetime
174
169
  logger:
175
170
  level: DEBUG
176
171
  syslog_errors: yes
@@ -261,25 +256,6 @@ development:
261
256
  port: 4080
262
257
  timeout: 300
263
258
  access_log: "log/web_access.log"
264
- api_url: "http://localhost:4082/"
265
- base_url: "/"
266
- logger:
267
- level: INFO
268
- syslog_errors: yes
269
- api:
270
- enabled: yes
271
- port: 4081
272
- timeout: 300
273
- access_log: "log/api_access.log"
274
- logger:
275
- level: INFO
276
- syslog_errors: yes
277
- jsonapi:
278
- enabled: yes
279
- port: 4082
280
- timeout: 300
281
- access_log: "log/jsonapi_access.log"
282
- base_url: "http://localhost:4082/"
283
259
  logger:
284
260
  level: INFO
285
261
  syslog_errors: yes
data/features/cli.feature CHANGED
@@ -8,6 +8,8 @@ Feature: command line utility
8
8
  Given a file named "flapjack_cfg.yaml" with:
9
9
  """
10
10
  test:
11
+ pid_file: tmp/cucumber_cli/flapjack_d.pid
12
+ log_file: tmp/cucumber_cli/flapjack_d.log
11
13
  redis:
12
14
  db: 14
13
15
  processor:
@@ -29,46 +31,46 @@ test:
29
31
  """
30
32
 
31
33
  Scenario: Running with --help shows usage information
32
- When I run `bin/flapjack --help`
34
+ When I run `bundle exec bin/flapjack server --help`
33
35
  Then the exit status should be 0
34
- And the output should contain "Usage: flapjack"
36
+ And the output should contain "Server for running components"
35
37
  And the output should contain " reload "
36
- And the output should contain "-c, --config"
38
+ And the output should contain "[-d|--daemonize]"
37
39
 
38
40
  Scenario: Getting status when stopped
39
- When I run `bin/flapjack status --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
41
+ When I run `bundle exec bin/flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server status`
40
42
  Then the exit status should not be 0
41
43
  And the output should contain "Flapjack is not running"
42
44
 
43
45
  Scenario: Starting flapjack
44
- When I start flapjack with `flapjack start --config tmp/cucumber_cli/flapjack_cfg.yaml`
46
+ When I start flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg.yaml server start`
45
47
  Then flapjack should start within 15 seconds
46
48
 
47
49
  Scenario: Stopping flapjack via SIGINT
48
- When I start flapjack with `flapjack start --config tmp/cucumber_cli/flapjack_cfg.yaml`
50
+ When I start flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg.yaml server start`
49
51
  Then flapjack should start within 15 seconds
50
52
  When I send a SIGINT to the flapjack process
51
53
  Then flapjack should stop within 15 seconds
52
54
 
53
55
  Scenario: Starting, status and stopping flapjack, daemonized
54
- When I start flapjack (daemonised) with `flapjack start -d --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
56
+ When I start flapjack (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server start -d`
55
57
  Then flapjack should start within 15 seconds
56
- When I run `bin/flapjack status --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
58
+ When I run `bundle exec bin/flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server status`
57
59
  Then the exit status should be 0
58
60
  And the output should contain "Flapjack is running"
59
- When I stop flapjack with `flapjack stop --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
61
+ When I stop flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server stop`
60
62
  Then flapjack should stop within 15 seconds
61
63
 
62
64
  Scenario: Starting, restarting and stopping flapjack, daemonized
63
- When I start flapjack (daemonised) with `flapjack start -d --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
65
+ When I start flapjack (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server start -d`
64
66
  Then flapjack should start within 15 seconds
65
- When I restart flapjack with `flapjack restart -d --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
67
+ When I restart flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server restart`
66
68
  Then flapjack should restart within 15 seconds
67
- When I stop flapjack with `flapjack stop --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
69
+ When I stop flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server stop`
68
70
  Then flapjack should stop within 15 seconds
69
71
 
70
72
  Scenario: Reloading flapjack configuration
71
- When I start flapjack with `flapjack start --config tmp/cucumber_cli/flapjack_cfg.yaml`
73
+ When I start flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg.yaml server start`
72
74
  Then flapjack should start within 15 seconds
73
75
  When I run `mv tmp/cucumber_cli/flapjack_cfg.yaml tmp/cucumber_cli/flapjack_cfg.yaml.bak`
74
76
  Given a file named "flapjack_cfg.yaml" with:
@@ -81,7 +83,7 @@ test:
81
83
  """
82
84
  When I send a SIGHUP to the flapjack process
83
85
  # TODO how to test for config file change?
84
- When I stop flapjack with `flapjack stop --config tmp/cucumber_cli/flapjack_cfg_d.yaml`
86
+ When I stop flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server stop`
85
87
  Then flapjack should stop within 15 seconds
86
88
 
87
89
 
@@ -10,19 +10,18 @@ Feature: flapjack-feed-events command line
10
10
  test:
11
11
  redis:
12
12
  db: 14
13
+ driver: ruby
13
14
  """
14
15
 
15
16
  Scenario: Running with --help shows usage information
16
- When I run `bin/flapjack-feed-events --help`
17
+ When I run `bundle exec bin/flapjack -n test receiver json --help`
17
18
  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"
19
+ And the output should contain "JSON receiver"
20
+ And the output should contain "-f, --from=arg"
21
21
 
22
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`
23
+ When I run `bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json`
24
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
25
  Then the exit status should be 1
27
26
 
28
27
 
@@ -37,14 +36,14 @@ test:
37
36
  "summary": "testing"
38
37
  }
39
38
  """
40
- When I run `cat tmp/cucumber_cli/single-event.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
39
+ When I run `cat tmp/cucumber_cli/single-event.json | bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json`
41
40
  Then the exit status should be 0
42
41
  And the output should not contain "Invalid event data received"
43
42
  And the output should contain "Enqueued event data, "
44
43
  And the output should contain "client1-localhost-test-1"
45
44
  And the output should contain "Done."
46
45
 
47
- When I run `bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml -f tmp/cucumber_cli/single-event.json`
46
+ When I run `bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json -f tmp/cucumber_cli/single-event.json`
48
47
  Then the exit status should be 0
49
48
  And the output should not contain "Invalid event data received"
50
49
  And the output should contain "Enqueued event data, "
@@ -62,7 +61,7 @@ test:
62
61
  "testing"
63
62
  }
64
63
  """
65
- When I run `cat tmp/cucumber_cli/multiple-events.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
64
+ When I run `cat tmp/cucumber_cli/multiple-events.json | bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json`
66
65
  Then the exit status should be 0
67
66
  And the output should not contain "Invalid event data received"
68
67
  And the output should contain "Enqueued event data, "
@@ -70,7 +69,7 @@ test:
70
69
  And the output should contain "client1-localhost-test-2"
71
70
  And the output should contain "Done."
72
71
 
73
- When I run `bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml -f tmp/cucumber_cli/multiple-events.json`
72
+ When I run `bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json -f tmp/cucumber_cli/multiple-events.json`
74
73
  Then the exit status should be 0
75
74
  And the output should not contain "Invalid event data received"
76
75
  And the output should contain "Enqueued event data, "
@@ -84,7 +83,7 @@ test:
84
83
  {"entity": "client1-localhost-test-1"}
85
84
  {"entity": "client1-localhost-test-2", "check": "bar"}
86
85
  """
87
- When I run `cat tmp/cucumber_cli/invalid-events.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
86
+ When I run `cat tmp/cucumber_cli/invalid-events.json | bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json`
88
87
  Then the exit status should be 0
89
88
  And the output should not contain "Enqueued event data, "
90
89
  And the output should contain "Invalid event data received"
@@ -98,7 +97,7 @@ test:
98
97
  {"entity": "client1-localhost-test-1"
99
98
  {"entity": "client1-localhost-test-2", "check": "bar"}
100
99
  """
101
- When I run `cat tmp/cucumber_cli/invalid-json.json | bin/flapjack-feed-events -c tmp/cucumber_cli/flapjack-feed-events.yaml`
100
+ When I run `cat tmp/cucumber_cli/invalid-json.json | bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json`
102
101
  Then the exit status should be 1
103
102
  And the output should not contain "Enqueued event data, "
104
- And the output should contain "(Oj::ParseError)"
103
+ And the output should contain "expected comma at line 2"