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
@@ -2,26 +2,26 @@
2
2
  Feature: Multiple acknowledgements after scheduled maintenance
3
3
 
4
4
  Background:
5
- Given the following users exist:
6
- | id | first_name | last_name | email | sms | timezone |
7
- | 1 | Malak | Al-Musawi | malak@example.com | +61400000001 | Asia/Baghdad |
5
+ Given the following contacts exist:
6
+ | id | name | timezone |
7
+ | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | Malak Al-Musawi | Asia/Baghdad |
8
8
 
9
- And the following entities exist:
10
- | id | name | contacts |
11
- | 1 | foo | 1 |
9
+ And the following media exist:
10
+ | id | contact_id | transport | address | interval | rollup_threshold |
11
+ | 28032dbf-388d-4f52-91b2-dc5e5be2becc | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | email | malak@example.com | 15 | 3 |
12
+ | 73e2803f-948e-467a-a707-37b9f53ee21a | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | sms | +61400000001 | 15 | 3 |
12
13
 
13
- And user 1 has the following notification intervals:
14
- | email | sms |
15
- | 15 | 15 |
16
-
17
- And user 1 has the following notification rollup thresholds:
18
- | email | sms |
19
- | 3 | 3 |
20
-
21
- And user 1 has the following notification rules:
22
- | entities | unknown_media | warning_media | critical_media |
23
- | | | email | sms,email |
14
+ And the following checks exist:
15
+ | id | name | tags |
16
+ | 56c13ce2-f246-4bc6-adfa-2206789c3ced | foo:ping | foo,ping |
17
+ | d1a39575-0480-4f65-a7f7-64c90db93731 | baz:ping | baz,ping |
24
18
 
19
+ And the following rules exist:
20
+ | id | contact_id | blackhole | strategy | tags | condition | time_restriction | media_ids |
21
+ | b0c8deb9-b8c8-4fdd-acc4-72493852ca15 | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | false | all_tags | foo,ping | critical | | 28032dbf-388d-4f52-91b2-dc5e5be2becc,73e2803f-948e-467a-a707-37b9f53ee21a |
22
+ | b18e9f48-59e7-4c25-b94c-d4ebd4a6559a | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | false | all_tags | foo,ping | warning | | 28032dbf-388d-4f52-91b2-dc5e5be2becc |
23
+ | 2df6bbc4-d6a4-4f23-b6e5-5c4a07c6e686 | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | false | all_tags | baz,ping | critical | | 28032dbf-388d-4f52-91b2-dc5e5be2becc,73e2803f-948e-467a-a707-37b9f53ee21a |
24
+ | f163bf33-b53e-4138-ab27-1dd89f2d6fdd | 7f96a216-76aa-45fc-a88e-7431cd6d7aac | false | all_tags | baz,ping | warning | | 28032dbf-388d-4f52-91b2-dc5e5be2becc |
25
25
  @time
26
26
  Scenario: Multiple acks after sched maint ends
27
27
  Given the check is check 'ping' on entity 'foo'
@@ -33,12 +33,9 @@ Feature: Multiple acknowledgements after scheduled maintenance
33
33
  When 60 minutes passes
34
34
  And a critical event is received
35
35
  Then 1 email alert of type problem should be queued for malak@example.com
36
- And the check should appear in unacknowledged_failing
37
36
  When 1 minute passes
38
37
  And an acknowledgement event is received
39
38
  Then 1 email alert of type acknowledgement should be queued for malak@example.com
40
- And the check should not appear in unacknowledged_failing
41
39
  When 1 minute passes
42
40
  And an acknowledgement event is received
43
- Then 2 email alert of type acknowledgement should be queued for malak@example.com
44
-
41
+ Then 1 email alert of type acknowledgement should be queued for malak@example.com
@@ -5,85 +5,25 @@ Feature: command line utility
5
5
  From the command line
6
6
 
7
7
  Background:
8
- Given a file named "flapjack_cfg.yaml" with:
8
+ Given a file named "flapjack_cfg.toml" with:
9
9
  """
10
- test:
11
- pid_dir: tmp/cucumber_cli/
12
- log_dir: tmp/cucumber_cli/
13
- redis:
14
- db: 14
15
- processor:
16
- enabled: yes
17
- logger:
18
- level: warn
19
- """
20
- And a file named "flapjack_cfg_d.yaml" with:
21
- """
22
- test:
23
- pid_dir: tmp/cucumber_cli/
24
- log_dir: tmp/cucumber_cli/
25
- redis:
26
- db: 14
27
- processor:
28
- enabled: yes
29
- logger:
30
- level: debug
10
+ pid_dir = "tmp/cucumber_cli/"
11
+ log_dir = "tmp/cucumber_cli/"
12
+ [redis]
13
+ db = 14
14
+ [processor]
15
+ enabled = true
16
+ [processor.logger]
17
+ level = "warn"
31
18
  """
32
19
 
33
20
  Scenario: Running with --help shows usage information
34
21
  When I run `bundle exec bin/flapjack server --help`
35
22
  Then the exit status should be 0
36
23
  And the output should contain "Server for running components"
37
- And the output should contain " reload "
38
- And the output should contain "[-d|--daemonize]"
39
-
40
- Scenario: Getting status when stopped
41
- When I run `bundle exec bin/flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server status`
42
- Then the exit status should not be 0
43
- And the output should contain "Flapjack is not running"
24
+ And the output should contain "flapjack [global options] server"
44
25
 
45
26
  Scenario: Starting flapjack
46
- When I start flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg.yaml server start`
27
+ When I start flapjack (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.toml server`
47
28
  Then flapjack should start within 15 seconds
48
29
 
49
- Scenario: Stopping flapjack via SIGINT
50
- When I start flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg.yaml server start`
51
- Then flapjack should start within 15 seconds
52
- When I send a SIGINT to the flapjack process
53
- Then flapjack should stop within 15 seconds
54
-
55
- Scenario: Starting, status and stopping flapjack, daemonized
56
- When I start flapjack (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server start`
57
- Then flapjack should start within 15 seconds
58
- When I run `bundle exec bin/flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server status`
59
- Then the exit status should be 0
60
- And the output should contain "Flapjack is running"
61
- When I stop flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server stop`
62
- Then flapjack should stop within 15 seconds
63
-
64
- Scenario: Starting, restarting and stopping flapjack, daemonized
65
- When I start flapjack (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server start`
66
- Then flapjack should start within 15 seconds
67
- When I restart flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server restart`
68
- Then flapjack should restart within 15 seconds
69
- When I stop flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server stop`
70
- Then flapjack should stop within 15 seconds
71
-
72
- Scenario: Reloading flapjack configuration
73
- When I start flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg.yaml server start`
74
- Then flapjack should start within 15 seconds
75
- When I run `mv tmp/cucumber_cli/flapjack_cfg.yaml tmp/cucumber_cli/flapjack_cfg.yaml.bak`
76
- Given a file named "flapjack_cfg.yaml" with:
77
- """
78
- test:
79
- pid_dir: tmp/cucumber_cli/
80
- log_dir: tmp/cucumber_cli/
81
- redis:
82
- db: 14
83
- processor:
84
- enabled: no
85
- """
86
- When I send a SIGHUP to the flapjack process
87
- # TODO how to test for config file change?
88
- When I stop flapjack (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/flapjack_cfg_d.yaml server stop`
89
- Then flapjack should stop within 15 seconds
@@ -5,26 +5,25 @@ Feature: flapjack-feed-events command line
5
5
  From the command line
6
6
 
7
7
  Background:
8
- Given a file named "flapjack-feed-events.yaml" with:
8
+ Given a file named "flapjack-feed-events.toml" with:
9
9
  """
10
- test:
11
- redis:
12
- db: 14
13
- driver: ruby
10
+ [redis]
11
+ db = 14
12
+ driver = "ruby"
14
13
  """
15
14
 
16
15
  Scenario: Running with --help shows usage information
17
- When I run `bundle exec bin/flapjack -n test receiver json --help`
16
+ When I run `bundle exec bin/flapjack receiver json --help`
18
17
  Then the exit status should be 0
19
18
  And the output should contain "JSON receiver"
20
19
  And the output should contain "-f, --from=arg"
21
20
 
21
+ @not_jruby
22
22
  Scenario: Running flapjack-feed-events with no arguments and no STDIN fails with a warning
23
- When I run `bundle exec bin/flapjack -n test -c tmp/cucumber_cli/flapjack-feed-events.yaml receiver json`
23
+ When I run `bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json`
24
24
  And the output should contain "No file provided, and STDIN is from terminal! Exiting..."
25
25
  Then the exit status should be 1
26
26
 
27
-
28
27
  Scenario: Feed a single event into the events queue
29
28
  Given a file named "single-event.json" with:
30
29
  """
@@ -36,14 +35,14 @@ test:
36
35
  "summary": "testing"
37
36
  }
38
37
  """
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`
38
+ When I run `cat tmp/cucumber_cli/single-event.json | bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json`
40
39
  Then the exit status should be 0
41
40
  And the output should not contain "Invalid event data received"
42
41
  And the output should contain "Enqueued event data, "
43
42
  And the output should contain "client1-localhost-test-1"
44
43
  And the output should contain "Done."
45
44
 
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`
45
+ When I run `bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json -f tmp/cucumber_cli/single-event.json`
47
46
  Then the exit status should be 0
48
47
  And the output should not contain "Invalid event data received"
49
48
  And the output should contain "Enqueued event data, "
@@ -61,7 +60,7 @@ test:
61
60
  "testing"
62
61
  }
63
62
  """
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`
63
+ When I run `cat tmp/cucumber_cli/multiple-events.json | bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json`
65
64
  Then the exit status should be 0
66
65
  And the output should not contain "Invalid event data received"
67
66
  And the output should contain "Enqueued event data, "
@@ -69,7 +68,7 @@ test:
69
68
  And the output should contain "client1-localhost-test-2"
70
69
  And the output should contain "Done."
71
70
 
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`
71
+ When I run `bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json -f tmp/cucumber_cli/multiple-events.json`
73
72
  Then the exit status should be 0
74
73
  And the output should not contain "Invalid event data received"
75
74
  And the output should contain "Enqueued event data, "
@@ -83,7 +82,7 @@ test:
83
82
  {"entity": "client1-localhost-test-1"}
84
83
  {"entity": "client1-localhost-test-2", "check": "bar"}
85
84
  """
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`
85
+ When I run `cat tmp/cucumber_cli/invalid-events.json | bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json`
87
86
  Then the exit status should be 0
88
87
  And the output should not contain "Enqueued event data, "
89
88
  And the output should contain "Invalid event data received"
@@ -97,7 +96,7 @@ test:
97
96
  {"entity": "client1-localhost-test-1"
98
97
  {"entity": "client1-localhost-test-2", "check": "bar"}
99
98
  """
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`
99
+ When I run `cat tmp/cucumber_cli/invalid-json.json | bundle exec bin/flapjack -c tmp/cucumber_cli/flapjack-feed-events.toml receiver json`
101
100
  Then the exit status should be 1
102
101
  And the output should not contain "Enqueued event data, "
103
- And the output should contain "expected comma at line 2"
102
+ And the output should contain "Expected comma or object or array close: char 38"
@@ -6,53 +6,24 @@ Feature: nagios-receiver command line
6
6
 
7
7
  Background:
8
8
  Given a fifo named "tmp/cucumber_cli/nagios_perfdata.fifo" exists
9
- And a file named "nagios-receiver.yaml" with:
9
+ And a file named "nagios-receiver.toml" with:
10
10
  """
11
- test:
12
- pid_dir: "tmp/cucumber_cli/"
13
- log_dir: "tmp/cucumber_cli/"
14
- redis:
15
- db: 14
16
- nagios-receiver:
17
- fifo: "tmp/cucumber_cli/nagios_perfdata.fifo"
18
- pid_dir: "tmp/cucumber_cli/"
19
- log_dir: "tmp/cucumber_cli/"
11
+ pid_dir = "tmp/cucumber_cli/"
12
+ log_dir = "tmp/cucumber_cli/"
13
+ [redis]
14
+ db = 14
15
+ [nagios-receiver]
16
+ fifo = "tmp/cucumber_cli/nagios_perfdata.fifo"
17
+ pid_dir = "tmp/cucumber_cli/"
18
+ log_dir = "tmp/cucumber_cli/"
20
19
  """
21
20
 
22
21
  Scenario: Running with --help shows usage information
23
22
  When I run `bundle exec bin/flapjack receiver nagios --help`
24
23
  Then the exit status should be 0
25
- And the output should contain "[-f arg|--fifo arg]"
26
- And the output should contain "receiver nagios start [-d|--daemonize]"
24
+ And the output should contain "receiver nagios"
25
+ And the output should contain "-f, --fifo=arg"
27
26
 
28
27
  Scenario: Starting nagios-receiver
29
- When I start nagios-receiver (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver start --no-daemonize`
28
+ When I start nagios-receiver (via bundle exec) with `flapjack --config tmp/cucumber_cli/nagios-receiver.toml receiver nagios`
30
29
  Then nagios-receiver should start within 15 seconds
31
-
32
- Scenario: Stopping nagios-receiver via SIGINT
33
- When I start nagios-receiver (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios start --no-daemonize`
34
- Then nagios-receiver should start within 15 seconds
35
- When I send a SIGINT to the nagios-receiver process
36
- Then nagios-receiver should stop within 15 seconds
37
-
38
- Scenario: Starting, status, and stopping nagios-receiver, daemonized
39
- When I start nagios-receiver (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios start -d`
40
- Then nagios-receiver should start within 15 seconds
41
- When I run `bundle exec bin/flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios status`
42
- Then the exit status should be 0
43
- And the output should contain "nagios-receiver is running"
44
- When I stop nagios-receiver (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios stop`
45
- Then nagios-receiver should stop within 15 seconds
46
-
47
- Scenario: Starting, restarting and stopping nagios-receiver, daemonized
48
- When I start nagios-receiver (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios start -d`
49
- Then nagios-receiver should start within 15 seconds
50
- When I restart nagios-receiver (daemonised) (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios restart`
51
- Then nagios-receiver should restart within 15 seconds
52
- When I stop nagios-receiver (via bundle exec) with `flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios stop`
53
- Then nagios-receiver should stop within 15 seconds
54
-
55
- Scenario: Getting status when stopped
56
- When I run `bundle exec bin/flapjack -n test --config tmp/cucumber_cli/nagios-receiver.yaml receiver nagios status`
57
- Then the exit status should not be 0
58
- And the output should contain "nagios-receiver is not running"
@@ -5,53 +5,24 @@ Feature: Flapper command line
5
5
  From the command line
6
6
 
7
7
  Background:
8
- Given a file named "flapjack_cfg.yaml" with:
8
+ Given a file named "flapjack_cfg.toml" with:
9
9
  """
10
- test:
11
- pid_dir: tmp/cucumber_cli/
12
- log_dir: tmp/cucumber_cli/
13
- redis:
14
- db: 14
15
- processor:
16
- enabled: yes
17
- logger:
18
- level: warn
10
+ pid_dir = "tmp/cucumber_cli/"
11
+ log_dir = "tmp/cucumber_cli/"
12
+ [redis]
13
+ db = 14
14
+ [processor]
15
+ enabled = true
16
+ [processor.logger]
17
+ level = "warn"
19
18
  """
20
19
 
21
20
  Scenario: Running with --help shows usage information
22
- When I run `bundle exec bin/flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper --help`
21
+ When I run `bundle exec bin/flapjack --config tmp/cucumber_cli/flapjack_cfg.toml flapper --help`
23
22
  Then the exit status should be 0
24
23
  And the output should contain "Artificial service that oscillates up and down"
25
- And the output should contain "[-b arg|--bind-ip arg]"
24
+ And the output should contain "-b, --bind-ip=arg"
26
25
 
27
26
  Scenario: Starting flapper
28
- When I start flapper (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper start --no-daemonize`
27
+ When I start flapper (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.toml flapper`
29
28
  Then flapper should start within 15 seconds
30
-
31
- Scenario: Stopping flapper via SIGINT
32
- When I start flapper (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper start --no-daemonize`
33
- Then flapper should start within 15 seconds
34
- When I send a SIGINT to the flapper process
35
- Then flapper should stop within 15 seconds
36
-
37
- Scenario: Starting, status, and stopping flapper, daemonized
38
- When I start flapper (daemonised) (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper start -d -p tmp/cucumber_cli/flapper.pid -l tmp/cucumber_cli/flapper.log`
39
- Then flapper should start within 15 seconds
40
- When I run `bundle exec bin/flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper status -p tmp/cucumber_cli/flapper.pid`
41
- Then the exit status should be 0
42
- And the output should contain "flapper is running"
43
- When I stop flapper (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper stop -p tmp/cucumber_cli/flapper.pid`
44
- Then flapper should stop within 15 seconds
45
-
46
- Scenario: Starting, restarting and stopping flapper, daemonized
47
- When I start flapper (daemonised) (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper start -d -p tmp/cucumber_cli/flapper.pid -l tmp/cucumber_cli/flapper.log`
48
- Then flapper should start within 15 seconds
49
- When I restart flapper (daemonised) (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper restart -p tmp/cucumber_cli/flapper.pid -l tmp/cucumber_cli/flapper.log`
50
- Then flapper should restart within 15 seconds
51
- When I stop flapper (via bundle exec) with `flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper stop -p tmp/cucumber_cli/flapper.pid`
52
- Then flapper should stop within 15 seconds
53
-
54
- Scenario: Getting status when stopped
55
- When I run `bundle exec bin/flapjack --config tmp/cucumber_cli/flapjack_cfg.yaml flapper status -p tmp/cucumber_cli/flapper.pid`
56
- Then the exit status should not be 0
57
- And the output should contain "flapper is not running"
@@ -5,12 +5,11 @@ Feature: purge command line
5
5
  From the command line
6
6
 
7
7
  Background:
8
- Given a file named "purge.yaml" with:
8
+ Given a file named "purge.toml" with:
9
9
  """
10
- test:
11
- redis:
12
- db: 14
13
- driver: ruby
10
+ [redis]
11
+ db = 14
12
+ driver = "ruby"
14
13
  """
15
14
 
16
15
  Scenario: Running with --help shows usage information
@@ -26,7 +25,7 @@ test:
26
25
 
27
26
  #flapjack purge check_history --days 90
28
27
  Scenario: Purge check data older than 90 days
29
- When I run `bundle exec bin/flapjack -n test -c tmp/cucumber_cli/purge.yaml purge check_history --days 90`
28
+ When I run `bundle exec bin/flapjack -c tmp/cucumber_cli/purge.toml purge check_history --days 90`
30
29
  Then the exit status should be 0
31
30
 
32
31
  #flapjack purge check_history --days 2 --check "flapper.example:Flapper"
@@ -5,22 +5,21 @@ Feature: receive-events command line
5
5
  From the command line
6
6
 
7
7
  Background:
8
- Given a file named "receive-events.yaml" with:
8
+ Given a file named "receive-events.toml" with:
9
9
  """
10
- test:
11
- redis:
12
- db: 14
13
- driver: ruby
10
+ [redis]
11
+ db = 14
12
+ driver = "ruby"
14
13
  """
15
14
 
16
15
  Scenario: Running with --help shows usage information
17
- When I run `bundle exec bin/flapjack -n test receiver mirror --help`
16
+ When I run `bundle exec bin/flapjack receiver mirror --help`
18
17
  Then the exit status should be 0
19
18
  And the output should contain "replay the last COUNT events from the source"
20
19
  And the output should contain "-s, --source=arg"
21
20
 
22
21
  Scenario: Running receive-events with no arguments exits uncleanly and shows usage
23
- When I run `bundle exec bin/flapjack -n test receiver mirror`
22
+ When I run `bundle exec bin/flapjack receiver mirror`
24
23
  Then the exit status should not be 0
25
24
  And the output should contain "error: s is required"
26
25
 
@@ -5,12 +5,11 @@ Feature: simulate-failed-check command line
5
5
  From the command line
6
6
 
7
7
  Background:
8
- Given a file named "simulate-failed-check.yaml" with:
8
+ Given a file named "simulate-failed-check.toml" with:
9
9
  """
10
- test:
11
- redis:
12
- db: 14
13
- driver: ruby
10
+ [redis]
11
+ db = 14
12
+ driver = "ruby"
14
13
  """
15
14
 
16
15
  Scenario: Running with --help shows usage information
@@ -25,7 +24,7 @@ test:
25
24
  And the output should contain "Simulates a check by creating a stream of events for Flapjack"
26
25
 
27
26
  Scenario: Simulate a failed check
28
- When I run `bundle exec bin/flapjack -n test -c tmp/cucumber_cli/simulate-failed-check.yaml simulate fail -t 0 -i 0.1 -e 'test' -k 'PING'`
27
+ When I run `bundle exec bin/flapjack -c tmp/cucumber_cli/simulate-failed-check.toml simulate fail -t 0.05 -i 0.05 -k 'test:PING'`
29
28
  Then the exit status should be 0
30
29
  And the output should contain "sending failure event"
31
30
  And the output should contain "stopping"