flapjack 0.4.12 → 0.5.1

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 (55) hide show
  1. data/README.md +77 -50
  2. data/Rakefile +78 -26
  3. data/TODO.md +15 -32
  4. data/bin/flapjack-benchmark +50 -0
  5. data/bin/flapjack-notifier +11 -36
  6. data/bin/flapjack-notifier-manager +1 -3
  7. data/bin/flapjack-worker +5 -19
  8. data/doc/PACKAGING.md +25 -0
  9. data/etc/flapjack/flapjack-notifier.conf.example +34 -0
  10. data/etc/flapjack/recipients.conf.example +14 -0
  11. data/features/flapjack-notifier-manager.feature +19 -0
  12. data/features/flapjack-worker-manager.feature +25 -0
  13. data/features/packaging-lintian.feature +15 -0
  14. data/features/persistence/couch.feature +105 -0
  15. data/features/persistence/sqlite3.feature +105 -0
  16. data/features/persistence/steps/couch_steps.rb +25 -0
  17. data/features/persistence/steps/generic_steps.rb +102 -0
  18. data/features/persistence/steps/sqlite3_steps.rb +13 -0
  19. data/features/steps/flapjack-notifier-manager_steps.rb +24 -0
  20. data/features/steps/flapjack-worker-manager_steps.rb +50 -0
  21. data/features/steps/packaging-lintian_steps.rb +13 -0
  22. data/features/support/env.rb +22 -0
  23. data/features/support/silent_system.rb +4 -0
  24. data/flapjack.gemspec +7 -11
  25. data/lib/flapjack/applications/notifier.rb +222 -0
  26. data/lib/flapjack/applications/worker.rb +99 -0
  27. data/lib/flapjack/checks/ping +10 -0
  28. data/lib/flapjack/cli/notifier.rb +80 -218
  29. data/lib/flapjack/cli/worker.rb +1 -86
  30. data/lib/flapjack/filters/any_parents_failed.rb +14 -0
  31. data/lib/flapjack/filters/ok.rb +13 -0
  32. data/lib/flapjack/inifile.rb +44 -0
  33. data/lib/flapjack/{notifier.rb → notifier_engine.rb} +13 -9
  34. data/lib/flapjack/notifiers/mailer/mailer.rb +12 -13
  35. data/lib/flapjack/notifiers/xmpp/xmpp.rb +2 -2
  36. data/lib/flapjack/patches.rb +25 -0
  37. data/lib/flapjack/persistence/couch.rb +5 -0
  38. data/lib/flapjack/persistence/couch/connection.rb +66 -0
  39. data/lib/flapjack/persistence/couch/couch.rb +63 -0
  40. data/lib/flapjack/persistence/data_mapper.rb +3 -0
  41. data/lib/flapjack/persistence/data_mapper/data_mapper.rb +67 -0
  42. data/lib/flapjack/{models → persistence/data_mapper/models}/check.rb +3 -7
  43. data/lib/flapjack/{models → persistence/data_mapper/models}/check_template.rb +0 -0
  44. data/lib/flapjack/persistence/data_mapper/models/event.rb +17 -0
  45. data/lib/flapjack/{models → persistence/data_mapper/models}/node.rb +0 -0
  46. data/lib/flapjack/{models → persistence/data_mapper/models}/related_check.rb +0 -0
  47. data/lib/flapjack/persistence/sqlite3.rb +3 -0
  48. data/lib/flapjack/persistence/sqlite3/sqlite3.rb +166 -0
  49. data/lib/flapjack/transports/beanstalkd.rb +33 -0
  50. data/lib/flapjack/transports/result.rb +58 -0
  51. metadata +46 -56
  52. data/etc/flapjack/flapjack-notifier.yaml.example +0 -8
  53. data/etc/flapjack/recipients.yaml.example +0 -10
  54. data/lib/flapjack/database.rb +0 -10
  55. data/lib/flapjack/result.rb +0 -47
@@ -1,10 +0,0 @@
1
- - :name: Jane Doe
2
- :email: "jane@doe.com"
3
- :phone: "+1 444 333 888"
4
- :pager: "1444333888"
5
- :jid: "jane@doe.com"
6
- - :name: John Doe
7
- :email: "john@doe.com"
8
- :phone: "+1 483 401 501"
9
- :pager: "1888777333"
10
- :jid: "john@doe.com"
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'dm-core'
4
- require 'dm-validations'
5
- require 'dm-types'
6
- require 'dm-timestamps'
7
-
8
- Dir.glob(File.join(File.dirname(__FILE__), 'models', '*.rb')).each do |model|
9
- require model
10
- end
@@ -1,47 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'ostruct'
4
-
5
- ##
6
- # Representation of a check result, as it's popped off the beanstalk.
7
- #
8
- # Provides several convience methods for querying the status of a result.
9
- #
10
- # Convenience methods are used by the Notifier to determine whether a
11
- # notification needs to be sent out.
12
- module Flapjack
13
- class Result < OpenStruct
14
-
15
- # Whether a check returns an ok status.
16
- def ok?
17
- self.retval == 0
18
- end
19
-
20
- # Whether a check has a warning status.
21
- def warning?
22
- self.retval == 1
23
- end
24
-
25
- # Whether a check has a critical status.
26
- def critical?
27
- self.retval == 2
28
- end
29
-
30
- # Human readable representation of the check's return value.
31
- def status
32
- case self.retval
33
- when 0 ; "ok"
34
- when 1 ; "warning"
35
- when 2 ; "critical"
36
- end
37
- end
38
-
39
- # The id of a check result.
40
- def id
41
- # openstruct won't respond, so we have to manually define it
42
- @table[:id]
43
- end
44
-
45
- end
46
- end
47
-