flapjack 1.6.0 → 2.0.0b1

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 (301) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -6
  3. data/.gitmodules +1 -1
  4. data/.rspec +1 -1
  5. data/.ruby-version +1 -1
  6. data/.travis.yml +12 -13
  7. data/CHANGELOG.md +2 -9
  8. data/CONTRIBUTING.md +7 -2
  9. data/Gemfile +4 -13
  10. data/LICENCE +1 -0
  11. data/README.md +8 -2
  12. data/Rakefile +2 -2
  13. data/bin/flapjack +3 -12
  14. data/build.sh +4 -2
  15. data/etc/flapjack_config.toml.example +273 -0
  16. data/features/ack_after_sched_maint.feature +18 -21
  17. data/features/cli.feature +11 -71
  18. data/features/cli_flapjack-feed-events.feature +14 -15
  19. data/features/cli_flapjack-nagios-receiver.feature +12 -41
  20. data/features/cli_flapper.feature +12 -41
  21. data/features/cli_purge.feature +5 -6
  22. data/features/cli_receive-events.feature +6 -7
  23. data/features/cli_simulate-failed-check.feature +5 -6
  24. data/features/events.feature +206 -181
  25. data/features/events_check_names.feature +4 -7
  26. data/features/notification_rules.feature +144 -223
  27. data/features/notifications.feature +65 -57
  28. data/features/rollup.feature +45 -47
  29. data/features/steps/cli_steps.rb +4 -5
  30. data/features/steps/events_steps.rb +163 -373
  31. data/features/steps/notifications_steps.rb +408 -264
  32. data/features/steps/packaging-lintian_steps.rb +0 -4
  33. data/features/steps/time_travel_steps.rb +0 -26
  34. data/features/support/daemons.rb +6 -31
  35. data/features/support/env.rb +65 -74
  36. data/flapjack.gemspec +22 -24
  37. data/lib/flapjack.rb +14 -7
  38. data/lib/flapjack/cli/flapper.rb +74 -173
  39. data/lib/flapjack/cli/maintenance.rb +278 -109
  40. data/lib/flapjack/cli/migrate.rb +950 -0
  41. data/lib/flapjack/cli/purge.rb +19 -22
  42. data/lib/flapjack/cli/receiver.rb +150 -326
  43. data/lib/flapjack/cli/server.rb +8 -235
  44. data/lib/flapjack/cli/simulate.rb +42 -57
  45. data/lib/flapjack/configuration.rb +51 -37
  46. data/lib/flapjack/coordinator.rb +138 -129
  47. data/lib/flapjack/data/acknowledgement.rb +177 -0
  48. data/lib/flapjack/data/alert.rb +97 -158
  49. data/lib/flapjack/data/check.rb +611 -0
  50. data/lib/flapjack/data/condition.rb +70 -0
  51. data/lib/flapjack/data/contact.rb +226 -456
  52. data/lib/flapjack/data/event.rb +96 -184
  53. data/lib/flapjack/data/extensions/associations.rb +59 -0
  54. data/lib/flapjack/data/extensions/short_name.rb +25 -0
  55. data/lib/flapjack/data/medium.rb +428 -0
  56. data/lib/flapjack/data/metrics.rb +194 -0
  57. data/lib/flapjack/data/notification.rb +22 -281
  58. data/lib/flapjack/data/rule.rb +473 -0
  59. data/lib/flapjack/data/scheduled_maintenance.rb +244 -0
  60. data/lib/flapjack/data/state.rb +221 -0
  61. data/lib/flapjack/data/statistic.rb +112 -0
  62. data/lib/flapjack/data/tag.rb +277 -0
  63. data/lib/flapjack/data/test_notification.rb +182 -0
  64. data/lib/flapjack/data/unscheduled_maintenance.rb +159 -0
  65. data/lib/flapjack/data/validators/id_validator.rb +20 -0
  66. data/lib/flapjack/exceptions.rb +6 -0
  67. data/lib/flapjack/filters/acknowledgement.rb +23 -16
  68. data/lib/flapjack/filters/base.rb +0 -5
  69. data/lib/flapjack/filters/delays.rb +53 -43
  70. data/lib/flapjack/filters/ok.rb +23 -14
  71. data/lib/flapjack/filters/scheduled_maintenance.rb +3 -3
  72. data/lib/flapjack/filters/unscheduled_maintenance.rb +12 -3
  73. data/lib/flapjack/gateways/aws_sns.rb +65 -49
  74. data/lib/flapjack/gateways/aws_sns/alert.text.erb +2 -2
  75. data/lib/flapjack/gateways/aws_sns/alert_subject.text.erb +2 -2
  76. data/lib/flapjack/gateways/aws_sns/rollup_subject.text.erb +1 -1
  77. data/lib/flapjack/gateways/email.rb +107 -90
  78. data/lib/flapjack/gateways/email/alert.html.erb +19 -18
  79. data/lib/flapjack/gateways/email/alert.text.erb +20 -14
  80. data/lib/flapjack/gateways/email/alert_subject.text.erb +2 -1
  81. data/lib/flapjack/gateways/email/rollup.html.erb +14 -13
  82. data/lib/flapjack/gateways/email/rollup.text.erb +13 -10
  83. data/lib/flapjack/gateways/jabber.rb +679 -671
  84. data/lib/flapjack/gateways/jabber/alert.text.erb +9 -6
  85. data/lib/flapjack/gateways/jsonapi.rb +164 -350
  86. data/lib/flapjack/gateways/jsonapi/data/join_descriptor.rb +44 -0
  87. data/lib/flapjack/gateways/jsonapi/data/method_descriptor.rb +21 -0
  88. data/lib/flapjack/gateways/jsonapi/helpers/headers.rb +63 -0
  89. data/lib/flapjack/gateways/jsonapi/helpers/miscellaneous.rb +136 -0
  90. data/lib/flapjack/gateways/jsonapi/helpers/resources.rb +227 -0
  91. data/lib/flapjack/gateways/jsonapi/helpers/serialiser.rb +313 -0
  92. data/lib/flapjack/gateways/jsonapi/helpers/swagger_docs.rb +322 -0
  93. data/lib/flapjack/gateways/jsonapi/methods/association_delete.rb +115 -0
  94. data/lib/flapjack/gateways/jsonapi/methods/association_get.rb +288 -0
  95. data/lib/flapjack/gateways/jsonapi/methods/association_patch.rb +178 -0
  96. data/lib/flapjack/gateways/jsonapi/methods/association_post.rb +116 -0
  97. data/lib/flapjack/gateways/jsonapi/methods/metrics.rb +71 -0
  98. data/lib/flapjack/gateways/jsonapi/methods/resource_delete.rb +119 -0
  99. data/lib/flapjack/gateways/jsonapi/methods/resource_get.rb +186 -0
  100. data/lib/flapjack/gateways/jsonapi/methods/resource_patch.rb +239 -0
  101. data/lib/flapjack/gateways/jsonapi/methods/resource_post.rb +197 -0
  102. data/lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb +27 -0
  103. data/lib/flapjack/gateways/jsonapi/{rack → middleware}/json_params_parser.rb +7 -6
  104. data/lib/flapjack/gateways/jsonapi/middleware/request_timestamp.rb +18 -0
  105. data/lib/flapjack/gateways/oobetet.rb +222 -170
  106. data/lib/flapjack/gateways/pager_duty.rb +388 -0
  107. data/lib/flapjack/gateways/pager_duty/alert.text.erb +13 -0
  108. data/lib/flapjack/gateways/slack.rb +56 -48
  109. data/lib/flapjack/gateways/slack/alert.text.erb +1 -1
  110. data/lib/flapjack/gateways/slack/rollup.text.erb +1 -1
  111. data/lib/flapjack/gateways/sms_aspsms.rb +155 -0
  112. data/lib/flapjack/gateways/sms_aspsms/alert.text.erb +7 -0
  113. data/lib/flapjack/gateways/sms_aspsms/rollup.text.erb +2 -0
  114. data/lib/flapjack/gateways/sms_messagenet.rb +77 -57
  115. data/lib/flapjack/gateways/sms_messagenet/alert.text.erb +3 -2
  116. data/lib/flapjack/gateways/sms_nexmo.rb +53 -51
  117. data/lib/flapjack/gateways/sms_nexmo/alert.text.erb +2 -2
  118. data/lib/flapjack/gateways/sms_nexmo/rollup.text.erb +1 -1
  119. data/lib/flapjack/gateways/sms_twilio.rb +79 -62
  120. data/lib/flapjack/gateways/sms_twilio/alert.text.erb +3 -2
  121. data/lib/flapjack/gateways/web.rb +437 -345
  122. data/lib/flapjack/gateways/web/middleware/request_timestamp.rb +18 -0
  123. data/lib/flapjack/gateways/web/public/css/bootstrap.css +3793 -4340
  124. data/lib/flapjack/gateways/web/public/css/bootstrap.css.map +1 -0
  125. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.eot +0 -0
  126. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.svg +273 -214
  127. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  128. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.woff +0 -0
  129. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.woff2 +0 -0
  130. data/lib/flapjack/gateways/web/public/js/bootstrap.js +1637 -1607
  131. data/lib/flapjack/gateways/web/public/js/self_stats.js +1 -2
  132. data/lib/flapjack/gateways/web/views/_pagination.html.erb +19 -0
  133. data/lib/flapjack/gateways/web/views/check.html.erb +159 -121
  134. data/lib/flapjack/gateways/web/views/checks.html.erb +82 -41
  135. data/lib/flapjack/gateways/web/views/contact.html.erb +59 -71
  136. data/lib/flapjack/gateways/web/views/contacts.html.erb +32 -8
  137. data/lib/flapjack/gateways/web/views/index.html.erb +2 -2
  138. data/lib/flapjack/gateways/web/views/{layout.erb → layout.html.erb} +7 -23
  139. data/lib/flapjack/gateways/web/views/self_stats.html.erb +32 -33
  140. data/lib/flapjack/gateways/web/views/tag.html.erb +32 -0
  141. data/lib/flapjack/gateways/web/views/tags.html.erb +51 -0
  142. data/lib/flapjack/logger.rb +34 -3
  143. data/lib/flapjack/notifier.rb +180 -112
  144. data/lib/flapjack/patches.rb +8 -63
  145. data/lib/flapjack/pikelet.rb +185 -143
  146. data/lib/flapjack/processor.rb +323 -191
  147. data/lib/flapjack/record_queue.rb +33 -0
  148. data/lib/flapjack/redis_proxy.rb +66 -0
  149. data/lib/flapjack/utility.rb +21 -15
  150. data/lib/flapjack/version.rb +2 -1
  151. data/libexec/httpbroker.go +218 -14
  152. data/libexec/oneoff.go +13 -10
  153. data/spec/lib/flapjack/configuration_spec.rb +286 -0
  154. data/spec/lib/flapjack/coordinator_spec.rb +103 -157
  155. data/spec/lib/flapjack/data/check_spec.rb +175 -0
  156. data/spec/lib/flapjack/data/contact_spec.rb +26 -349
  157. data/spec/lib/flapjack/data/event_spec.rb +76 -291
  158. data/spec/lib/flapjack/data/medium_spec.rb +19 -0
  159. data/spec/lib/flapjack/data/rule_spec.rb +43 -0
  160. data/spec/lib/flapjack/data/scheduled_maintenance_spec.rb +976 -0
  161. data/spec/lib/flapjack/data/unscheduled_maintenance_spec.rb +34 -0
  162. data/spec/lib/flapjack/gateways/aws_sns_spec.rb +111 -60
  163. data/spec/lib/flapjack/gateways/email_spec.rb +194 -161
  164. data/spec/lib/flapjack/gateways/jabber_spec.rb +961 -162
  165. data/spec/lib/flapjack/gateways/jsonapi/methods/check_links_spec.rb +155 -0
  166. data/spec/lib/flapjack/gateways/jsonapi/methods/checks_spec.rb +426 -0
  167. data/spec/lib/flapjack/gateways/jsonapi/methods/contact_links_spec.rb +217 -0
  168. data/spec/lib/flapjack/gateways/jsonapi/methods/contacts_spec.rb +425 -0
  169. data/spec/lib/flapjack/gateways/jsonapi/methods/events_spec.rb +271 -0
  170. data/spec/lib/flapjack/gateways/jsonapi/methods/media_spec.rb +257 -0
  171. data/spec/lib/flapjack/gateways/jsonapi/methods/medium_links_spec.rb +163 -0
  172. data/spec/lib/flapjack/gateways/jsonapi/methods/metrics_spec.rb +8 -0
  173. data/spec/lib/flapjack/gateways/jsonapi/methods/rule_links_spec.rb +212 -0
  174. data/spec/lib/flapjack/gateways/jsonapi/methods/rules_spec.rb +289 -0
  175. data/spec/lib/flapjack/gateways/jsonapi/methods/scheduled_maintenance_links_spec.rb +49 -0
  176. data/spec/lib/flapjack/gateways/jsonapi/methods/scheduled_maintenances_spec.rb +242 -0
  177. data/spec/lib/flapjack/gateways/jsonapi/methods/tag_links_spec.rb +274 -0
  178. data/spec/lib/flapjack/gateways/jsonapi/methods/tags_spec.rb +302 -0
  179. data/spec/lib/flapjack/gateways/jsonapi/methods/unscheduled_maintenance_links_spec.rb +49 -0
  180. data/spec/lib/flapjack/gateways/jsonapi/methods/unscheduled_maintenances_spec.rb +339 -0
  181. data/spec/lib/flapjack/gateways/jsonapi_spec.rb +1 -1
  182. data/spec/lib/flapjack/gateways/oobetet_spec.rb +151 -79
  183. data/spec/lib/flapjack/gateways/pager_duty_spec.rb +353 -0
  184. data/spec/lib/flapjack/gateways/slack_spec.rb +53 -53
  185. data/spec/lib/flapjack/gateways/sms_aspsms_spec.rb +106 -0
  186. data/spec/lib/flapjack/gateways/sms_messagenet_spec.rb +111 -54
  187. data/spec/lib/flapjack/gateways/sms_nexmo_spec.rb +50 -51
  188. data/spec/lib/flapjack/gateways/sms_twilio_spec.rb +108 -48
  189. data/spec/lib/flapjack/gateways/web_spec.rb +144 -216
  190. data/spec/lib/flapjack/notifier_spec.rb +132 -1
  191. data/spec/lib/flapjack/pikelet_spec.rb +111 -50
  192. data/spec/lib/flapjack/processor_spec.rb +210 -40
  193. data/spec/lib/flapjack/redis_proxy_spec.rb +45 -0
  194. data/spec/lib/flapjack/utility_spec.rb +11 -15
  195. data/spec/service_consumers/fixture_data.rb +547 -0
  196. data/spec/service_consumers/pact_helper.rb +21 -32
  197. data/spec/service_consumers/pacts/flapjack-diner_v2.0.json +4652 -0
  198. data/spec/service_consumers/provider_states_for_flapjack-diner.rb +279 -322
  199. data/spec/service_consumers/provider_support.rb +8 -0
  200. data/spec/spec_helper.rb +34 -44
  201. data/spec/support/erb_view_helper.rb +1 -1
  202. data/spec/support/factories.rb +58 -0
  203. data/spec/support/jsonapi_helper.rb +15 -26
  204. data/spec/support/mock_logger.rb +43 -0
  205. data/spec/support/xmpp_comparable.rb +24 -0
  206. data/src/flapjack/transport_test.go +30 -1
  207. data/tasks/dump_keys.rake +82 -0
  208. data/tasks/events.rake +7 -7
  209. data/tasks/support/flapjack_config_benchmark.toml +28 -0
  210. data/tasks/support/flapjack_config_benchmark.yaml +0 -2
  211. metadata +175 -222
  212. data/Guardfile +0 -14
  213. data/etc/flapjack_config.yaml.example +0 -477
  214. data/features/cli_flapjack-populator.feature +0 -90
  215. data/features/support/silent_system.rb +0 -4
  216. data/lib/flapjack/cli/import.rb +0 -108
  217. data/lib/flapjack/data/entity.rb +0 -652
  218. data/lib/flapjack/data/entity_check.rb +0 -1044
  219. data/lib/flapjack/data/message.rb +0 -56
  220. data/lib/flapjack/data/migration.rb +0 -234
  221. data/lib/flapjack/data/notification_rule.rb +0 -425
  222. data/lib/flapjack/data/semaphore.rb +0 -44
  223. data/lib/flapjack/data/tagged.rb +0 -48
  224. data/lib/flapjack/gateways/jsonapi/check_methods.rb +0 -206
  225. data/lib/flapjack/gateways/jsonapi/check_presenter.rb +0 -221
  226. data/lib/flapjack/gateways/jsonapi/contact_methods.rb +0 -186
  227. data/lib/flapjack/gateways/jsonapi/entity_methods.rb +0 -223
  228. data/lib/flapjack/gateways/jsonapi/medium_methods.rb +0 -185
  229. data/lib/flapjack/gateways/jsonapi/metrics_methods.rb +0 -132
  230. data/lib/flapjack/gateways/jsonapi/notification_rule_methods.rb +0 -141
  231. data/lib/flapjack/gateways/jsonapi/pagerduty_credential_methods.rb +0 -139
  232. data/lib/flapjack/gateways/jsonapi/report_methods.rb +0 -146
  233. data/lib/flapjack/gateways/pagerduty.rb +0 -318
  234. data/lib/flapjack/gateways/pagerduty/alert.text.erb +0 -10
  235. data/lib/flapjack/gateways/web/public/css/select2-bootstrap.css +0 -87
  236. data/lib/flapjack/gateways/web/public/css/select2.css +0 -615
  237. data/lib/flapjack/gateways/web/public/css/tablesort.css +0 -67
  238. data/lib/flapjack/gateways/web/public/img/select2-spinner.gif +0 -0
  239. data/lib/flapjack/gateways/web/public/img/select2.png +0 -0
  240. data/lib/flapjack/gateways/web/public/img/select2x2.png +0 -0
  241. data/lib/flapjack/gateways/web/public/js/backbone.js +0 -1581
  242. data/lib/flapjack/gateways/web/public/js/backbone.jsonapi.js +0 -322
  243. data/lib/flapjack/gateways/web/public/js/flapjack.js +0 -82
  244. data/lib/flapjack/gateways/web/public/js/jquery.tablesorter.js +0 -1640
  245. data/lib/flapjack/gateways/web/public/js/jquery.tablesorter.widgets.js +0 -1390
  246. data/lib/flapjack/gateways/web/public/js/modules/contact.js +0 -520
  247. data/lib/flapjack/gateways/web/public/js/modules/entity.js +0 -28
  248. data/lib/flapjack/gateways/web/public/js/modules/medium.js +0 -40
  249. data/lib/flapjack/gateways/web/public/js/select2.js +0 -3397
  250. data/lib/flapjack/gateways/web/public/js/tablesort.js +0 -44
  251. data/lib/flapjack/gateways/web/public/js/underscore.js +0 -1276
  252. data/lib/flapjack/gateways/web/views/edit_contacts.html.erb +0 -173
  253. data/lib/flapjack/gateways/web/views/entities.html.erb +0 -30
  254. data/lib/flapjack/gateways/web/views/entity.html.erb +0 -51
  255. data/lib/flapjack/rack_logger.rb +0 -47
  256. data/lib/flapjack/redis_pool.rb +0 -42
  257. data/spec/lib/flapjack/data/entity_check_spec.rb +0 -1418
  258. data/spec/lib/flapjack/data/entity_spec.rb +0 -872
  259. data/spec/lib/flapjack/data/message_spec.rb +0 -30
  260. data/spec/lib/flapjack/data/migration_spec.rb +0 -104
  261. data/spec/lib/flapjack/data/notification_rule_spec.rb +0 -232
  262. data/spec/lib/flapjack/data/notification_spec.rb +0 -53
  263. data/spec/lib/flapjack/data/semaphore_spec.rb +0 -24
  264. data/spec/lib/flapjack/filters/acknowledgement_spec.rb +0 -6
  265. data/spec/lib/flapjack/filters/delays_spec.rb +0 -6
  266. data/spec/lib/flapjack/filters/ok_spec.rb +0 -6
  267. data/spec/lib/flapjack/filters/scheduled_maintenance_spec.rb +0 -6
  268. data/spec/lib/flapjack/filters/unscheduled_maintenance_spec.rb +0 -6
  269. data/spec/lib/flapjack/gateways/jsonapi/check_methods_spec.rb +0 -315
  270. data/spec/lib/flapjack/gateways/jsonapi/check_presenter_spec.rb +0 -223
  271. data/spec/lib/flapjack/gateways/jsonapi/contact_methods_spec.rb +0 -131
  272. data/spec/lib/flapjack/gateways/jsonapi/entity_methods_spec.rb +0 -389
  273. data/spec/lib/flapjack/gateways/jsonapi/medium_methods_spec.rb +0 -231
  274. data/spec/lib/flapjack/gateways/jsonapi/notification_rule_methods_spec.rb +0 -169
  275. data/spec/lib/flapjack/gateways/jsonapi/pagerduty_credential_methods_spec.rb +0 -114
  276. data/spec/lib/flapjack/gateways/jsonapi/report_methods_spec.rb +0 -590
  277. data/spec/lib/flapjack/gateways/pagerduty_spec.rb +0 -249
  278. data/spec/lib/flapjack/gateways/web/views/check.html.erb_spec.rb +0 -21
  279. data/spec/lib/flapjack/gateways/web/views/contact.html.erb_spec.rb +0 -24
  280. data/spec/lib/flapjack/gateways/web/views/index.html.erb_spec.rb +0 -16
  281. data/spec/lib/flapjack/redis_pool_spec.rb +0 -29
  282. data/spec/service_consumers/pacts/flapjack-diner_v1.0.json +0 -4702
  283. data/tasks/entities.rake +0 -151
  284. data/tasks/profile.rake +0 -282
  285. data/tmp/acknowledge.rb +0 -13
  286. data/tmp/create_config_yaml.rb +0 -16
  287. data/tmp/create_event_ok.rb +0 -30
  288. data/tmp/create_event_unknown.rb +0 -30
  289. data/tmp/create_events_failure.rb +0 -34
  290. data/tmp/create_events_ok.rb +0 -32
  291. data/tmp/create_events_ok_fail_ack_ok.rb +0 -53
  292. data/tmp/create_events_ok_failure.rb +0 -41
  293. data/tmp/create_events_ok_failure_ack.rb +0 -53
  294. data/tmp/dummy_contacts.json +0 -43
  295. data/tmp/dummy_entities.json +0 -37
  296. data/tmp/generate_nagios_test_hosts.rb +0 -16
  297. data/tmp/notification_rules.rb +0 -73
  298. data/tmp/parse_config_yaml.rb +0 -7
  299. data/tmp/redis_find_spurious_unknown_states.rb +0 -52
  300. data/tmp/test_json_post.rb +0 -19
  301. data/tmp/test_notification_rules_api.rb +0 -171
@@ -3,8 +3,6 @@
3
3
  require 'hiredis'
4
4
  require 'flapjack/configuration'
5
5
 
6
- require 'flapjack/data/migration'
7
-
8
6
  module Flapjack
9
7
  module CLI
10
8
  class Purge
@@ -23,10 +21,11 @@ module Flapjack
23
21
  @config_env = config.all
24
22
 
25
23
  if @config_env.nil? || @config_env.empty?
26
- exit_now! "No config data for environment '#{FLAPJACK_ENV}' found in '#{global_options[:config]}'"
24
+ exit_now! "No config data found in '#{global_options[:config]}'"
27
25
  end
28
26
 
29
- @redis_options = config.for_redis
27
+ Flapjack::RedisProxy.config = config.for_redis
28
+ Zermelo.redis = Flapjack.redis
30
29
  end
31
30
 
32
31
  def check_history
@@ -35,36 +34,34 @@ module Flapjack
35
34
  options = {}
36
35
  if @options[:days]
37
36
  options[:older_than] = @options[:days].to_i * 24 * 60 * 60
38
- raise "days must be resolveable to an integer" unless @options[:days].to_i.to_s == @options[:days]
37
+ raise "days must be resolvable to an integer" unless @options[:days].to_i.to_s == @options[:days]
39
38
  end
40
39
  checks = if @options[:check]
41
- [Flapjack::Data::EntityCheck.for_event_id(@options[:check], :redis => redis, :create_entity => true)]
40
+ [Flapjack::Data::Check.find_by_id(options[:check])].compact
42
41
  else
43
- Flapjack::Data::EntityCheck.all(:redis => redis, :create_entity => true)
42
+ Flapjack::Data::Check.all
44
43
  end
45
- purged = checks.inject([]) do |memo, check|
46
- pu = check.purge_history(options)
47
- memo << pu unless pu == 0
44
+
45
+ purge_before = Time.now - options[:older_than]
46
+ purge_range = Zermelo::Filters::IndexRange.new(nil, purge_before, :by_score => true)
47
+
48
+ purged = checks.inject(0) do |memo, check|
49
+ purgees = check.states.intersect(:created_at => purge_range)
50
+ num = purgees.count
51
+ if num > 0
52
+ purgees.destroy_all
53
+ memo += num
54
+ end
48
55
  memo
49
56
  end
50
57
 
51
- if purged.empty?
58
+ if purged == 0
52
59
  puts "Nothing to do"
53
60
  else
54
61
  puts "Purged #{purged.reduce(:+) || 0} historical check states over #{purged.length} checks."
55
62
  end
56
63
  end
57
64
 
58
- private
59
-
60
- def redis
61
- return @redis unless @redis.nil?
62
- @redis = Redis.new(@redis_options.merge(:driver => :hiredis))
63
- Flapjack::Data::Migration.migrate_entity_check_data_if_required(:redis => @redis)
64
- Flapjack::Data::Migration.clear_orphaned_entity_ids(:redis => @redis)
65
- @redis
66
- end
67
-
68
65
  end
69
66
  end
70
67
  end
@@ -78,7 +75,7 @@ command :purge do |purge|
78
75
  check_history.flag [:d, 'days'], :desc => "purge check history older than DAYS days ago",
79
76
  :default_value => 90
80
77
 
81
- check_history.flag [:c, 'check'], :desc => "affect history of only the CHECK"
78
+ check_history.flag [:c, 'check'], :desc => "affect history of only the CHECK with the provided id"
82
79
 
83
80
  check_history.action do |global_options,options,args|
84
81
  purge = Flapjack::CLI::Purge.new(global_options, options)
@@ -1,12 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'dante'
4
3
  require 'redis'
5
- require 'hiredis'
6
4
 
7
5
  require 'flapjack/configuration'
8
6
  require 'flapjack/data/event'
9
- require 'flapjack/data/migration'
10
7
  require 'flapjack/patches'
11
8
 
12
9
  # TODO options should be overridden by similar config file options
@@ -30,101 +27,29 @@ module Flapjack
30
27
 
31
28
  if @config_env.nil? || @config_env.empty?
32
29
  unless 'mirror'.eql?(@options[:type])
33
- exit_now! "No config data for environment '#{FLAPJACK_ENV}' found in '#{global_options[:config]}'"
30
+ exit_now! "No config data found in '#{global_options[:config]}'"
34
31
  end
35
-
36
- @config_env = {}
37
- @config_runner = {}
38
- else
39
- @config_runner = @config_env["#{@options[:type]}-receiver"] || {}
40
32
  end
41
33
 
42
- @redis_options = @config.for_redis
43
- end
44
-
45
- def pidfile
46
- @pidfile ||= case
47
- when !@options[:pidfile].nil?
48
- @options[:pidfile]
49
- when !@config_env['pid_dir'].nil?
50
- File.join(@config_env['pid_dir'], "#{@options[:type]}-receiver.pid")
51
- else
52
- "/var/run/flapjack/#{@options[:type]}-receiver.pid"
34
+ unless 'mirror'.eql?(@options[:type])
35
+ Flapjack::RedisProxy.config = @config.for_redis
36
+ Zermelo.redis = Flapjack.redis
53
37
  end
54
- end
55
38
 
56
- def logfile
57
- @logfile ||= case
58
- when !@options[:logfile].nil?
59
- @options[:logfile]
60
- when !@config_env['log_dir'].nil?
61
- File.join(@config_env['log_dir'], "#{@options[:type]}-receiver.log")
62
- else
63
- "/var/run/flapjack/#{@options[:type]}-receiver.log"
64
- end
39
+ @redis_options = @config.for_redis
65
40
  end
66
41
 
67
42
  def start
68
- if runner(@options[:type]).daemon_running?
69
- puts "#{@options[:type]}-receiver is already running."
70
- else
71
- print "#{@options[:type]}-receiver starting..."
72
- main_umask = nil
73
- if @options[:daemonize]
74
- main_umask = File.umask
75
- else
76
- print "\n"
77
- end
78
- runner(@options[:type]).execute(:daemonize => @options[:daemonize]) do
79
- begin
80
- File.umask(main_umask) if @options[:daemonize]
81
- main(:fifo => @options[:fifo], :type => @options[:type])
82
- rescue Exception => e
83
- p e.message
84
- puts e.backtrace.join("\n")
85
- end
86
- end
87
- puts " done."
88
- end
89
- end
90
-
91
- def stop
92
- pid = get_pid
93
- if runner(@options[:type]).daemon_running?
94
- print "#{@options[:type]}-receiver stopping..."
95
- runner(@options[:type]).execute(:kill => true)
96
- puts " done."
97
- else
98
- puts "#{@options[:type]}-receiver is not running."
99
- end
100
- exit_now! unless wait_pid_gone(pid)
101
- end
102
-
103
- def restart
104
- print "#{@options[:type]}-receiver restarting..."
105
- main_umask = File.umask
106
- runner(@options[:type]).execute(:daemonize => true, :restart => true) do
107
- begin
108
- File.umask(main_umask)
109
- main(:fifo => @options[:fifo], :type => @options[:type])
110
- rescue Exception => e
111
- p e.message
112
- puts e.backtrace.join("\n")
113
- end
43
+ puts "#{@options[:type]}-receiver starting..."
44
+ begin
45
+ main(:fifo => @options[:fifo], :type => @options[:type])
46
+ rescue Exception => e
47
+ p e.message
48
+ puts e.backtrace.join("\n")
114
49
  end
115
50
  puts " done."
116
51
  end
117
52
 
118
- def status
119
- if runner(@options[:type]).daemon_running?
120
- pid = get_pid
121
- uptime = Time.now - File.stat(pidfile).ctime
122
- puts "#{@options[:type]}-receiver is running: pid #{pid}, uptime #{uptime}"
123
- else
124
- exit_now! "#{@options[:type]}-receiver is not running"
125
- end
126
- end
127
-
128
53
  def json
129
54
  json_feeder(:from => @options[:from])
130
55
  end
@@ -146,19 +71,7 @@ module Flapjack
146
71
  private
147
72
 
148
73
  def redis
149
- return @redis unless @redis.nil?
150
- @redis = Redis.new(@redis_options.merge(:driver => :hiredis))
151
- Flapjack::Data::Migration.migrate_entity_check_data_if_required(:redis => @redis)
152
- Flapjack::Data::Migration.clear_orphaned_entity_ids(:redis => @redis)
153
- @redis
154
- end
155
-
156
- def runner(type)
157
- return @runner if @runner
158
-
159
- @runner = Dante::Runner.new("#{@options[:type]}-receiver", :pid_path => pidfile,
160
- :log_path => logfile)
161
- @runner
74
+ @redis ||= Redis.new(@redis_options)
162
75
  end
163
76
 
164
77
  def process_input(opts)
@@ -247,7 +160,7 @@ module Flapjack
247
160
  'perfdata' => check_perfdata,
248
161
  'time' => timestamp,
249
162
  }
250
- Flapjack::Data::Event.add(event, :redis => redis)
163
+ Flapjack::Data::Event.push('events', event)
251
164
  end
252
165
  rescue Redis::CannotConnectError
253
166
  puts "Error, unable to to connect to the redis server (#{$!})"
@@ -263,99 +176,101 @@ module Flapjack
263
176
  end
264
177
  end
265
178
 
266
- def process_exists(pid)
267
- return unless pid
268
- begin
269
- Process.kill(0, pid)
270
- return true
271
- rescue Errno::ESRCH
272
- return false
273
- end
274
- end
275
-
276
- # wait until the specified pid no longer exists, or until a timeout is reached
277
- def wait_pid_gone(pid, timeout = 30)
278
- print "waiting for a max of #{timeout} seconds for process #{pid} to exit" if process_exists(pid)
279
- started_at = Time.now.to_i
280
- while process_exists(pid)
281
- break unless (Time.now.to_i - started_at < timeout)
282
- print '.'
283
- sleep 1
284
- end
285
- puts ''
286
- !process_exists(pid)
287
- end
288
-
289
- def get_pid
290
- IO.read(pidfile).chomp.to_i
291
- rescue StandardError
292
- pid = nil
293
- end
294
-
295
- class EventFeedHandler < Oj::ScHandler
296
-
297
- def initialize(&block)
298
- @hash_depth = 0
299
- @callback = block if block_given?
300
- end
301
-
302
- def hash_start
303
- @hash_depth += 1
304
- Hash.new
305
- end
306
-
307
- def hash_end
308
- @hash_depth -= 1
309
- end
310
-
311
- def array_start
312
- Array.new
313
- end
314
-
315
- def array_end
316
- end
317
-
318
- def add_value(value)
319
- @callback.call(value) if @callback
320
- nil
321
- end
322
-
323
- def hash_set(hash, key, value)
324
- hash[key] = value
325
- end
326
-
327
- def array_append(array, value)
328
- array << value
329
- end
330
-
331
- end
332
-
333
179
  def json_feeder(opts = {})
180
+ require 'json/stream'
181
+
334
182
  input = if opts[:from]
335
183
  File.open(opts[:from]) # Explodes if file does not exist.
336
- elsif $stdin.tty?
184
+ elsif !'java'.eql?(RUBY_PLATFORM) && STDIN.tty?
185
+ # tty check isn't working under JRuby, assume STDIN is OK to use
186
+ # https://github.com/jruby/jruby/issues/1332
337
187
  exit_now! "No file provided, and STDIN is from terminal! Exiting..."
338
188
  else
339
- $stdin
189
+ STDIN
340
190
  end
341
191
 
342
192
  # Sit and churn through the input stream until a valid JSON blob has been assembled.
343
193
  # This handles both the case of a process sending a single JSON and then exiting
344
194
  # (eg. cat foo.json | bin/flapjack receiver json) *and* a longer-running process spitting
345
195
  # out events (eg. /usr/bin/slow-event-feed | bin/flapjack receiver json)
196
+ #
197
+ # @data is a stack, but @stack is used by the Parser class
198
+ parser = JSON::Stream::Parser.new do
199
+ start_document do
200
+ @data = []
201
+ @keys = []
202
+ @result = nil
203
+ end
346
204
 
347
- parser = EventFeedHandler.new do |parsed|
348
- # Handle "parsed" (a hash)
349
- errors = Flapjack::Data::Event.validation_errors_for_hash(parsed)
350
- if errors.empty?
351
- Flapjack::Data::Event.add(parsed, :redis => redis)
352
- puts "Enqueued event data, #{parsed.inspect}"
353
- else
354
- puts "Invalid event data received, #{errors.join(', ')} #{parsed.inspect}"
205
+ end_document {
206
+ # interfering with json-stream's "one object per stream" model,
207
+ # but it errors without this
208
+ @state = :start_document
209
+ }
210
+
211
+ start_object do
212
+ @data.push({})
213
+ end
214
+
215
+ end_object do
216
+ node = @data.pop
217
+
218
+ if @data.size > 0
219
+ top = @data.last
220
+ case top
221
+ when Hash
222
+ top[@keys.pop] = node
223
+ when Array
224
+ top << node
225
+ end
226
+ else
227
+ errors = Flapjack::Data::Event.validation_errors_for_hash(node)
228
+ if errors.empty?
229
+ Flapjack::Data::Event.push('events', node)
230
+ puts "Enqueued event data, #{node.inspect}"
231
+ else
232
+ puts "Invalid event data received, #{errors.join(', ')} #{node.inspect}"
233
+ end
234
+ end
235
+ end
236
+
237
+ start_array do
238
+ @data.push([])
239
+ end
240
+
241
+ end_array do
242
+ node = @data.pop
243
+ if @data.size > 0
244
+ top = @data.last
245
+ case top
246
+ when Hash
247
+ top[@keys.pop] = node
248
+ when Array
249
+ top << node
250
+ end
251
+ end
252
+ end
253
+
254
+ key do |k|
255
+ @keys << k
256
+ end
257
+
258
+ value do |v|
259
+ top = @data.last
260
+ case top
261
+ when Hash
262
+ top[@keys.pop] = v
263
+ when Array
264
+ top << v
265
+ else
266
+ @data << v
267
+ end
355
268
  end
356
269
  end
357
270
 
358
- Oj.sc_parse(parser, input)
271
+ while data = input.read(4096)
272
+ parser << data
273
+ end
359
274
 
360
275
  puts "Done."
361
276
  end
@@ -387,7 +302,8 @@ module Flapjack
387
302
  exit_now! "could not understand destination Redis config"
388
303
  end
389
304
 
390
- Flapjack::Data::Migration.migrate_entity_check_data_if_required(:redis => dest_redis)
305
+ Flapjack::RedisProxy.config = dest_redis
306
+ Zermelo.redis = Flapjack.redis
391
307
 
392
308
  archives = mirror_get_archive_keys_stats(:source => source_redis)
393
309
  raise "found no archives!" if archives.empty?
@@ -420,11 +336,17 @@ module Flapjack
420
336
  loop do
421
337
  event_json = source_redis.lindex(archive_key, cursor)
422
338
  if event_json
423
- event = Flapjack::Data::Event.parse_and_validate(event_json)
424
- if !event.nil? && (include_re.nil? ||
339
+ event, errors = Flapjack::Data::Event.parse_and_validate(event_json)
340
+
341
+ if !errors.nil? && !errors.empty?
342
+ Flapjack.logger.error {
343
+ error_str = errors.nil? ? '' : errors.join(', ')
344
+ "Invalid event data received, #{error_str} #{event.inspect}"
345
+ }
346
+ elsif (include_re.nil? ||
425
347
  (include_re === "#{event['entity']}:#{event['check']}"))
426
348
 
427
- Flapjack::Data::Event.add(event, :redis => dest_redis)
349
+ Flapjack::Data::Event.add(event)
428
350
  events_sent += 1
429
351
  print "#{events_sent} " if events_sent % 1000 == 0
430
352
  end
@@ -498,173 +420,63 @@ command :receiver do |receiver|
498
420
 
499
421
  # Details on the wiki: http://flapjack.io/docs/1.0/usage/USING#configuring-nagios
500
422
  # '
423
+ nagios.flag [:f, 'fifo'], :desc => 'PATH of the nagios perfdata named pipe'
501
424
 
502
- nagios.command :start do |start|
503
-
504
- start.switch [:d, 'daemonize'], :desc => 'Daemonize',
505
- :default_value => true
506
-
507
- start.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
508
-
509
- start.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
510
-
511
- start.flag [:f, 'fifo'], :desc => 'PATH of the nagios perfdata named pipe'
512
-
513
- start.action do |global_options,options,args|
514
- options.merge!(:type => 'nagios')
515
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
516
- receiver.start
517
- end
518
- end
519
-
520
- nagios.command :stop do |stop|
521
-
522
- stop.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
523
-
524
- stop.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
525
-
526
- stop.action do |global_options,options,args|
527
- options.merge!(:type => 'nagios')
528
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
529
- receiver.stop
530
- end
531
- end
532
-
533
- nagios.command :restart do |restart|
534
-
535
- restart.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
536
-
537
- restart.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
538
-
539
- restart.flag [:f, 'fifo'], :desc => 'PATH of the nagios perfdata named pipe'
540
-
541
- restart.action do |global_options,options,args|
542
- options.merge!(:type => 'nagios')
543
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
544
- receiver.restart
545
- end
425
+ nagios.action do |global_options,options,args|
426
+ options.merge!(:type => 'nagios')
427
+ receiver_cli = Flapjack::CLI::Receiver.new(global_options, options)
428
+ receiver_cli.start
546
429
  end
547
-
548
- nagios.command :status do |status|
549
-
550
- status.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
551
-
552
- status.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
553
-
554
- status.action do |global_options,options,args|
555
- options.merge!(:type => 'nagios')
556
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
557
- receiver.status
558
- end
559
- end
560
-
561
430
  end
562
431
 
563
432
  receiver.desc 'NSCA receiver'
564
433
  #receiver.arg_name 'Turn Nagios passive check results into Flapjack events'
565
434
  receiver.command :nsca do |nsca|
566
435
 
567
- nsca.command :start do |start|
568
-
569
- # # Not sure what to do with this, extra help output:
570
-
571
- # Required Nagios Configuration Changes
572
- # -------------------------------------
573
-
574
- # flapjack-nsca-receiver reads events from the nagios "command file" read from by Nagios, written to by the Nsca-daemon.
575
-
576
- # The named pipe is automatically created by _nagios_ if it is enabled
577
- # in the configfile:
436
+ # # Not sure what to do with this, extra help output:
578
437
 
579
- # # modified lines:
580
- # command_file=/var/lib/nagios3/rw/nagios.cmd
581
-
582
- # The Nsca daemon is optionally writing to a tempfile if the named pipe does
583
- # not exist.
584
-
585
- # Details on the wiki: http://flapjack.io/docs/1.0/usage/USING#XXX
586
- # '
587
-
588
- start.switch [:d, 'daemonize'], :desc => 'Daemonize',
589
- :default_value => true
590
-
591
- start.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
592
-
593
- start.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
594
-
595
- start.flag [:f, 'fifo'], :desc => 'PATH of the nagios perfdata named pipe'
596
-
597
- start.action do |global_options,options,args|
598
- options.merge!(:type => 'nsca')
599
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
600
- receiver.start
601
- end
602
- end
603
-
604
- nsca.command :stop do |stop|
605
-
606
- stop.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
607
-
608
- stop.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
609
-
610
- stop.action do |global_options,options,args|
611
- options.merge!(:type => 'nsca')
612
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
613
- receiver.stop
614
- end
615
- end
616
-
617
- nsca.command :restart do |restart|
618
-
619
- restart.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
620
-
621
- restart.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
438
+ # Required Nagios Configuration Changes
439
+ # -------------------------------------
622
440
 
623
- restart.flag [:f, 'fifo'], :desc => 'PATH of the nagios perfdata named pipe'
441
+ # flapjack-nsca-receiver reads events from the nagios "command file" read from by Nagios, written to by the Nsca-daemon.
624
442
 
625
- restart.action do |global_options,options,args|
626
- options.merge!(:type => 'nsca')
627
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
628
- receiver.restart
629
- end
630
- end
443
+ # The named pipe is automatically created by _nagios_ if it is enabled
444
+ # in the configfile:
631
445
 
632
- nsca.command :status do |status|
446
+ # # modified lines:
447
+ # command_file=/var/lib/nagios3/rw/nagios.cmd
633
448
 
634
- status.flag [:p, 'pidfile'], :desc => 'PATH of the pidfile to write to'
449
+ # The Nsca daemon is optionally writing to a tempfile if the named pipe does
450
+ # not exist.
635
451
 
636
- status.flag [:l, 'logfile'], :desc => 'PATH of the logfile to write to'
452
+ # Details on the wiki: http://flapjack.io/docs/1.0/usage/USING#XXX
453
+ # '
454
+ nsca.flag [:f, 'fifo'], :desc => 'PATH of the nagios perfdata named pipe'
637
455
 
638
- status.action do |global_options,options,args|
639
- options.merge!(:type => 'nsca')
640
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
641
- receiver.status
642
- end
456
+ nsca.action do |global_options,options,args|
457
+ options.merge!(:type => 'nsca')
458
+ cli_receiver = Flapjack::CLI::Receiver.new(global_options, options)
459
+ cli_receiver.start
643
460
  end
644
461
 
645
462
  end
646
463
 
647
464
  receiver.desc 'JSON receiver'
648
465
  receiver.command :json do |json|
649
-
650
466
  json.flag [:f, 'from'], :desc => 'PATH of the file to process [STDIN]'
651
467
 
652
468
  json.action do |global_options,options,args|
653
- receiver = Flapjack::CLI::Receiver.new(global_options, options)
654
- receiver.json
469
+ cli_receiver = Flapjack::CLI::Receiver.new(global_options, options)
470
+ cli_receiver.json
655
471
  end
656
472
  end
657
473
 
658
474
  receiver.desc 'Mirror receiver'
659
475
  receiver.command :mirror do |mirror|
660
476
 
661
- mirror.flag [:s, 'source'], :desc => 'URL of source redis database, e.g. redis://localhost:6379/0',
477
+ mirror.flag [:s, 'source'], :desc => 'URL of source redis database, eg redis://localhost:6379/0',
662
478
  :required => true
663
479
 
664
- mirror.flag [:d, 'dest'], :desc => 'URL of destination redis database, e.g. redis://localhost:6379/1'
665
-
666
- mirror.flag [:i, 'include'], :desc => 'Regexp which must match event id for it to be mirrored'
667
-
668
480
  # one or both of follow, all is required
669
481
  mirror.switch [:f, 'follow'], :desc => 'keep reading events as they are archived on the source',
670
482
  :default_value => nil
@@ -681,7 +493,6 @@ command :receiver do |receiver|
681
493
  :default_value => nil
682
494
 
683
495
  mirror.action do |global_options,options,args|
684
- options.merge!(:type => 'mirror')
685
496
  receiver = Flapjack::CLI::Receiver.new(global_options, options)
686
497
  receiver.mirror
687
498
  end
@@ -696,6 +507,8 @@ command :receiver do |receiver|
696
507
  oneoff = libexec.join('oneoff')
697
508
  if oneoff.exist?
698
509
  Kernel.exec(oneoff.to_s, *ARGV)
510
+ else
511
+ exit_now! "Oneoff event submitter doesn't exist"
699
512
  end
700
513
  end
701
514
  end
@@ -708,6 +521,8 @@ command :receiver do |receiver|
708
521
  httpchecker = libexec.join('httpchecker')
709
522
  if httpchecker.exist?
710
523
  Kernel.exec(httpchecker.to_s, *ARGV)
524
+ else
525
+ exit_now! "HTTP checker doesn't exist"
711
526
  end
712
527
  end
713
528
  end
@@ -721,9 +536,26 @@ command :receiver do |receiver|
721
536
  httpbroker = libexec.join('httpbroker')
722
537
  if httpbroker.exist?
723
538
  Kernel.exec(httpbroker.to_s, *ARGV)
539
+ else
540
+ exit_now! "HTTP broker doesn't exist"
724
541
  end
725
542
  end
726
543
  end
544
+
545
+ receiver.desc 'HTTP API that caches and submits Cloudwatch events'
546
+ receiver.command :cloudwatchbroker do |cloudwatchbroker|
547
+ cloudwatchbroker.passthrough = true
548
+ cloudwatchbroker.action do |global_options, options, args|
549
+ libexec = Pathname.new(__FILE__).parent.parent.parent.parent.join('libexec').expand_path
550
+ cloudwatchbroker = libexec.join('httpbroker')
551
+ if cloudwatchbroker.exist?
552
+ Kernel.exec(cloudwatchbroker.to_s, *(ARGV + ['--format=sns']))
553
+ else
554
+ exit_now! "HTTP broker doesn't exist"
555
+ end
556
+ end
557
+ end
558
+
727
559
  end
728
560
 
729
561
 
@@ -732,10 +564,6 @@ end
732
564
 
733
565
  # config_nr = config_env['nsca-receiver'] || {}
734
566
 
735
- # pidfile = options.pidfile.nil? ?
736
- # (config_nr['pid_file'] || "/var/run/flapjack/#{exe}.pid") :
737
- # options.pidfile
738
-
739
567
  # logfile = options.logfile.nil? ?
740
568
  # (config_nr['log_file'] || "/var/log/flapjack/#{exe}.log") :
741
569
  # options.logfile
@@ -743,7 +571,3 @@ end
743
571
  # fifo = options.fifo.nil? ?
744
572
  # (config_nr['fifo'] || '/var/lib/nagios3/rw/nagios.cmd') :
745
573
  # options.fifo
746
-
747
- # daemonize = options.daemonize.nil? ?
748
- # !!config_nr['daemonize'] :
749
- # options.daemonize