god 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,66 +1,84 @@
1
- God::Contacts::Email.message_settings = {:from => 'support@gravatar.com'}
1
+ # God::Contacts::Campfire.defaults do |d|
2
+ # d.subdomain = 'github'
3
+ # d.token = '9fb768e421975cc1c6ff3f4f8306f890cb46e24f'
4
+ # d.room = 'Notices'
5
+ # d.ssl = true
6
+ # end
7
+ #
8
+ # God.contact(:campfire) do |c|
9
+ # c.name = 'tom4'
10
+ # end
2
11
 
3
- God::Contacts::Email.server_settings = {
4
- :address => "smtp.aa.powerset.com",
5
- :port => 25,
6
- :domain => "powerset.com"
7
- }
12
+ # God.contact(:email) do |c|
13
+ # c.name = 'tom'
14
+ # c.group = 'developers'
15
+ # c.to_email = 'tom@lepton.local'
16
+ # c.from_email = 'god@github.com'
17
+ # c.from_name = 'God'
18
+ # c.delivery_method = :sendmail
19
+ # end
8
20
 
9
- God::Contacts::Twitter.settings = {
10
- # this is for my 'mojombo2' twitter test account
11
- # feel free to use it for testing your conditions
12
- :username => 'mojombo@gmail.com',
13
- :password => 'gok9we3ot1av2e'
14
- }
21
+ # God.contact(:email) do |c|
22
+ # c.name = 'tom'
23
+ # c.group = 'developers'
24
+ # c.to_email = 'tom@mojombo.com'
25
+ # c.from_email = 'god@github.com'
26
+ # c.from_name = 'God'
27
+ # c.server_host = 'smtp.rs.github.com'
28
+ # end
15
29
 
16
- God.contact(:email) do |c|
17
- c.name = 'tom'
18
- c.email = 'tom@mojombo.com'
19
- c.group = 'developers'
20
- end
30
+ # God.contact(:prowl) do |c|
31
+ # c.name = 'tom3'
32
+ # c.apikey = 'f0fc8e1f3121672686337a631527eac2f1b6031c'
33
+ # c.group = 'developers'
34
+ # end
21
35
 
22
- God.contact(:email) do |c|
23
- c.name = 'vanpelt'
24
- c.email = 'vanpelt@example.com'
25
- c.group = 'developers'
26
- end
36
+ # God.contact(:twitter) do |c|
37
+ # c.name = 'tom6'
38
+ # c.consumer_token = 'gOhjax6s0L3mLeaTtBWPw'
39
+ # c.consumer_secret = 'yz4gpAVXJHKxvsGK85tEyzQJ7o2FEy27H1KEWL75jfA'
40
+ # c.access_token = '17376380-qS391nCrgaP4HKXAmZtM38gB56xUXMhx1NYbjT6mQ'
41
+ # c.access_secret = 'uMwCDeU4OXlEBWFQBc3KwGyY8OdWCtAV0Jg5KVB0'
42
+ # end
27
43
 
28
- God.contact(:email) do |c|
29
- c.name = 'kevin'
30
- c.email = 'kevin@example.com'
31
- c.group = 'platform'
32
- end
44
+ # God.contact(:scout) do |c|
45
+ # c.name = 'tom5'
46
+ # c.client_key = '583a51b5-acbc-2421-a830-b6f3f8e4b04e'
47
+ # c.plugin_id = '230641'
48
+ # end
33
49
 
34
- God.contact(:twitter) do |c|
35
- c.name = 'tom2'
36
- c.group = 'developers'
37
- end
50
+ # God.contact(:webhook) do |c|
51
+ # c.name = 'tom'
52
+ # c.url = "http://www.postbin.org/wk7guh"
53
+ # end
38
54
 
39
- God.contact(:prowl) do |c|
40
- c.name = 'tom3'
41
- c.apikey = 'd31c1f31f7af0f69e263c2f12167263127eab608'
42
- c.group = 'developers'
43
- end
55
+ # God.contact(:jabber) do |c|
56
+ # c.name = 'tom'
57
+ # c.host = 'talk.google.com'
58
+ # c.to_jid = 'mojombo@jabber.org'
59
+ # c.from_jid = 'mojombo@gmail.com'
60
+ # c.password = 'secret'
61
+ # end
44
62
 
45
63
  God.watch do |w|
46
64
  w.name = "contact"
47
65
  w.interval = 5.seconds
48
66
  w.start = "ruby " + File.join(File.dirname(__FILE__), *%w[simple_server.rb])
49
67
  w.log = "/Users/tom/contact.log"
50
-
68
+
51
69
  # determine the state on startup
52
70
  w.transition(:init, { true => :up, false => :start }) do |on|
53
71
  on.condition(:process_running) do |c|
54
72
  c.running = true
55
73
  end
56
74
  end
57
-
75
+
58
76
  # determine when process has finished starting
59
77
  w.transition([:start, :restart], :up) do |on|
60
78
  on.condition(:process_running) do |c|
61
79
  c.running = true
62
80
  end
63
-
81
+
64
82
  # failsafe
65
83
  on.condition(:tries) do |c|
66
84
  c.times = 2
@@ -71,10 +89,10 @@ God.watch do |w|
71
89
  # start if process is not running
72
90
  w.transition(:up, :start) do |on|
73
91
  on.condition(:process_exits) do |c|
74
- c.notify = {:contacts => ['tom2', 'tom3', 'foobar'], :priority => 1, :category => 'product'}
92
+ c.notify = {:contacts => ['tom'], :priority => 1, :category => 'product'}
75
93
  end
76
94
  end
77
-
95
+
78
96
  # lifecycle
79
97
  w.lifecycle do |on|
80
98
  on.condition(:flapping) do |c|
@@ -2,40 +2,22 @@ require File.dirname(__FILE__) + '/helper'
2
2
  require 'tinder'
3
3
 
4
4
  class TestCampfire < Test::Unit::TestCase
5
+ def setup
6
+ @campfire = God::Contacts::Campfire.new
7
+ end
8
+
5
9
  def test_exists
6
10
  God::Contacts::Campfire
7
11
  end
8
-
9
- # should notify
10
- def test_campfire_delivery_method_for_notify
11
- assert_nothing_raised do
12
-
13
- room = mock()
14
- room.expects(:speak).returns(nil)
15
-
16
- g = God::Contacts::Campfire.new
17
- God::Contacts::Campfire.format.expects(:call).with(:a,:e)
18
- g.expects(:room).returns(room)
19
- g.notify(:a, :b, :c, :d, :e)
20
- assert_equal "notified campfire: ", g.info
21
- end
22
- end
23
-
24
- # should not establish a new connection because the older is alive
25
- def test_campfire_room_method
26
- assert_nothing_raised do
27
- room = mock()
28
- g = God::Contacts::Campfire.new
29
- g.instance_variable_set(:@room,room)
30
- assert_equal g.send(:room), room
31
- end
32
- end
33
-
34
- # should raise because the connections parameters have not been set
35
- def test_campfire_delivery_method_for_notify_without_campfire_params
36
- LOG.expects(:log).times(3) # 3 calls: 2 debug (credentials, backtrace) + 1 info (failed message)
37
- g = God::Contacts::Campfire.new
38
- g.notify(:a, :b, :c, :d, :e)
12
+
13
+ def test_notify
14
+ @campfire.subdomain = 'github'
15
+ @campfire.token = 'abc'
16
+ @campfire.room = 'danger'
17
+
18
+ time = Time.now
19
+ body = "[#{time.strftime('%H:%M:%S')}] host - msg"
20
+ Marshmallow::Connection.any_instance.expects(:speak).with('danger', body)
21
+ @campfire.notify('msg', time, 'prio', 'cat', 'host')
39
22
  end
40
-
41
23
  end
@@ -1,45 +1,34 @@
1
1
  require File.dirname(__FILE__) + '/helper'
2
2
 
3
3
  class TestEmail < Test::Unit::TestCase
4
- def test_exists
5
- God::Contacts::Email
4
+ def setup
5
+ God::Contacts::Email.to_email = 'dev@example.com'
6
+ God::Contacts::Email.from_email = 'god@example.com'
7
+ @email = God::Contacts::Email.new
6
8
  end
7
9
 
8
- def test_unknown_delivery_method_for_notify
9
- assert_nothing_raised do
10
- God::Contacts::Email.any_instance.expects(:notify_smtp).never
11
- God::Contacts::Email.any_instance.expects(:notify_sendmail).never
12
- God::Contacts::Email.delivery_method = :foo_protocol
13
- LOG.expects(:log).times(2)
14
-
15
- g = God::Contacts::Email.new
16
- g.notify(:a, :b, :c, :d, :e)
17
- assert_nil g.info
18
- end
10
+ def test_validity_delivery
11
+ @email.delivery_method = :brainwaves
12
+ assert_equal false, @email.valid?
19
13
  end
20
14
 
21
15
  def test_smtp_delivery_method_for_notify
22
- assert_nothing_raised do
23
- God::Contacts::Email.any_instance.expects(:notify_sendmail).never
24
- God::Contacts::Email.any_instance.expects(:notify_smtp).once.returns(nil)
25
- God::Contacts::Email.delivery_method = :smtp
26
- g = God::Contacts::Email.new
27
- g.email = 'joe@example.com'
28
- g.notify(:a, :b, :c, :d, :e)
29
- assert_equal "sent email to joe@example.com", g.info
30
- end
16
+ @email.delivery_method = :smtp
17
+
18
+ God::Contacts::Email.any_instance.expects(:notify_sendmail).never
19
+ God::Contacts::Email.any_instance.expects(:notify_smtp).once.returns(nil)
20
+
21
+ @email.notify('msg', Time.now, 'prio', 'cat', 'host')
22
+ assert_equal "sent email to dev@example.com via smtp", @email.info
31
23
  end
32
-
24
+
33
25
  def test_sendmail_delivery_method_for_notify
34
- assert_nothing_raised do
35
- God::Contacts::Email.any_instance.expects(:notify_smtp).never
36
- God::Contacts::Email.any_instance.expects(:notify_sendmail).once.returns(nil)
37
- God::Contacts::Email.delivery_method = :sendmail
38
- g = God::Contacts::Email.new
39
- g.email = 'joe@example.com'
40
- g.notify(:a, :b, :c, :d, :e)
41
- assert_equal "sent email to joe@example.com", g.info
42
- end
26
+ @email.delivery_method = :sendmail
27
+
28
+ God::Contacts::Email.any_instance.expects(:notify_smtp).never
29
+ God::Contacts::Email.any_instance.expects(:notify_sendmail).once.returns(nil)
30
+
31
+ @email.notify('msg', Time.now, 'prio', 'cat', 'host')
32
+ assert_equal "sent email to dev@example.com via sendmail", @email.info
43
33
  end
44
-
45
34
  end
@@ -4,33 +4,26 @@ require File.dirname(__FILE__) + '/helper'
4
4
  class TestJabber < Test::Unit::TestCase
5
5
 
6
6
  def setup
7
- God::Contacts::Jabber.settings = {
8
- :jabber_id => 'test@example.com',
9
- :password => 'pass'
10
- }
11
7
  @jabber = God::Contacts::Jabber.new
12
- @jabber.jabber_id = 'recipient@example.com'
13
8
  end
14
9
 
15
10
  def test_notify
16
- assert_nothing_raised do
17
- God::Contacts::Jabber.any_instance.expects(:connect!).once.returns(nil)
18
- God::Contacts::Jabber.any_instance.expects(:send!).once.returns(nil)
19
- @jabber.notify(:a, :b, :c, :d, :e)
20
- assert_equal "sent jabber message to recipient@example.com", @jabber.info
21
- end
11
+ @jabber.host = 'talk.google.com'
12
+ @jabber.from_jid = 'god@jabber.org'
13
+ @jabber.password = 'secret'
14
+ @jabber.to_jid = 'dev@jabber.org'
15
+
16
+ time = Time.now
17
+ body = God::Contacts::Jabber.format.call('msg', time, 'prio', 'cat', 'host')
18
+
19
+ assert_equal "Message: msg\nHost: host\nPriority: prio\nCategory: cat\n", body
20
+
21
+ Jabber::Client.any_instance.expects(:connect).with('talk.google.com', 5222)
22
+ Jabber::Client.any_instance.expects(:auth).with('secret')
23
+ Jabber::Client.any_instance.expects(:send)
24
+ Jabber::Client.any_instance.expects(:close)
25
+
26
+ @jabber.notify('msg', Time.now, 'prio', 'cat', 'host')
27
+ assert_equal "sent jabber message to dev@jabber.org", @jabber.info
22
28
  end
23
-
24
- # def test_live_notify
25
- # God::Contacts::Jabber.settings = {
26
- # :jabber_id => 'real_user@example.com',
27
- # :password => 'pass'
28
- # }
29
- # recipient = "real_recipient@example.com"
30
- #
31
- # jabber = God::Contacts::Jabber.new
32
- # jabber.jabber_id = recipient
33
- # jabber.notify("Hello", Time.now, "Test", "Test", "localhost")
34
- # assert_equal "sent jabber message to #{recipient}", jabber.info
35
- # end
36
29
  end
@@ -1,17 +1,15 @@
1
1
  require File.dirname(__FILE__) + '/helper'
2
2
 
3
3
  class TestWebhook < Test::Unit::TestCase
4
- def test_exists
5
- God::Contacts::Webhook
4
+ def setup
5
+ @webhook = God::Contacts::Webhook.new
6
6
  end
7
7
 
8
8
  def test_notify
9
- assert_nothing_raised do
10
- g = God::Contacts::Webhook.new
11
- g.hook_url = 'http://test/switch'
12
- Net::HTTP.expects(:post_form)
13
- g.notify(:a, :b, :c, :d, :e)
14
- assert_equal "sent webhook to http://test/switch", g.info
15
- end
9
+ @webhook.url = 'http://example.com/switch'
10
+ Net::HTTP.any_instance.expects(:request).returns(Net::HTTPSuccess.new('a', 'b', 'c'))
11
+
12
+ @webhook.notify('msg', Time.now, 'prio', 'cat', 'host')
13
+ assert_equal "sent webhook to http://example.com/switch", @webhook.info
16
14
  end
17
15
  end
metadata CHANGED
@@ -1,12 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: god
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 10
8
- - 1
9
- version: 0.10.1
4
+ version: 0.11.0
10
5
  platform: ruby
11
6
  authors:
12
7
  - Tom Preston-Werner
@@ -16,156 +11,95 @@ autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
13
 
19
- date: 2010-05-17 00:00:00 -07:00
14
+ date: 2010-07-01 00:00:00 -07:00
20
15
  default_executable: god
21
16
  dependencies:
22
17
  - !ruby/object:Gem::Dependency
23
18
  name: twitter
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
19
+ type: :development
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
26
22
  requirements:
27
23
  - - ">="
28
24
  - !ruby/object:Gem::Version
29
- segments:
30
- - 0
31
- - 3
32
- - 7
33
25
  version: 0.3.7
34
- type: :development
35
- version_requirements: *id001
26
+ version:
36
27
  - !ruby/object:Gem::Dependency
37
28
  name: prowly
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- segments:
44
- - 0
45
- - 2
46
- - 1
47
- version: 0.2.1
48
29
  type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: tinder
52
- prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
30
+ version_requirement:
31
+ version_requirements: !ruby/object:Gem::Requirement
54
32
  requirements:
55
33
  - - ">="
56
34
  - !ruby/object:Gem::Version
57
- segments:
58
- - 1
59
- - 3
60
- - 1
61
- version: 1.3.1
62
- - - <
63
- - !ruby/object:Gem::Version
64
- segments:
65
- - 2
66
- - 0
67
- - 0
68
- version: 2.0.0
69
- type: :development
70
- version_requirements: *id003
35
+ version: 0.2.1
36
+ version:
71
37
  - !ruby/object:Gem::Dependency
72
38
  name: xmpp4r
73
- prerelease: false
74
- requirement: &id004 !ruby/object:Gem::Requirement
39
+ type: :development
40
+ version_requirement:
41
+ version_requirements: !ruby/object:Gem::Requirement
75
42
  requirements:
76
43
  - - ">="
77
44
  - !ruby/object:Gem::Version
78
- segments:
79
- - 0
80
- - 4
81
- - 0
82
45
  version: 0.4.0
83
- type: :development
84
- version_requirements: *id004
46
+ version:
85
47
  - !ruby/object:Gem::Dependency
86
48
  name: dike
87
- prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
49
+ type: :development
50
+ version_requirement:
51
+ version_requirements: !ruby/object:Gem::Requirement
89
52
  requirements:
90
53
  - - ">="
91
54
  - !ruby/object:Gem::Version
92
- segments:
93
- - 0
94
- - 0
95
- - 3
96
55
  version: 0.0.3
97
- type: :development
98
- version_requirements: *id005
56
+ version:
99
57
  - !ruby/object:Gem::Dependency
100
58
  name: snapshot
101
- prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
59
+ type: :development
60
+ version_requirement:
61
+ version_requirements: !ruby/object:Gem::Requirement
103
62
  requirements:
104
63
  - - ">="
105
64
  - !ruby/object:Gem::Version
106
- segments:
107
- - 1
108
- - 0
109
- - 0
110
65
  version: 1.0.0
111
66
  - - <
112
67
  - !ruby/object:Gem::Version
113
- segments:
114
- - 2
115
- - 0
116
- - 0
117
68
  version: 2.0.0
118
- type: :development
119
- version_requirements: *id006
69
+ version:
120
70
  - !ruby/object:Gem::Dependency
121
71
  name: rcov
122
- prerelease: false
123
- requirement: &id007 !ruby/object:Gem::Requirement
72
+ type: :development
73
+ version_requirement:
74
+ version_requirements: !ruby/object:Gem::Requirement
124
75
  requirements:
125
76
  - - ">="
126
77
  - !ruby/object:Gem::Version
127
- segments:
128
- - 0
129
- - 9
130
- - 8
131
78
  version: 0.9.8
132
- type: :development
133
- version_requirements: *id007
79
+ version:
134
80
  - !ruby/object:Gem::Dependency
135
81
  name: daemons
136
- prerelease: false
137
- requirement: &id008 !ruby/object:Gem::Requirement
82
+ type: :development
83
+ version_requirement:
84
+ version_requirements: !ruby/object:Gem::Requirement
138
85
  requirements:
139
86
  - - ">="
140
87
  - !ruby/object:Gem::Version
141
- segments:
142
- - 1
143
- - 0
144
- - 10
145
88
  version: 1.0.10
146
89
  - - <
147
90
  - !ruby/object:Gem::Version
148
- segments:
149
- - 2
150
- - 0
151
- - 0
152
91
  version: 2.0.0
153
- type: :development
154
- version_requirements: *id008
92
+ version:
155
93
  - !ruby/object:Gem::Dependency
156
94
  name: mocha
157
- prerelease: false
158
- requirement: &id009 !ruby/object:Gem::Requirement
95
+ type: :development
96
+ version_requirement:
97
+ version_requirements: !ruby/object:Gem::Requirement
159
98
  requirements:
160
99
  - - ">="
161
100
  - !ruby/object:Gem::Version
162
- segments:
163
- - 0
164
- - 9
165
- - 1
166
101
  version: 0.9.1
167
- type: :development
168
- version_requirements: *id009
102
+ version:
169
103
  description: An easy to configure, easy to extend monitoring framework written in Ruby.
170
104
  email: god-rb@googlegroups.com
171
105
  executables:
@@ -311,20 +245,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
311
245
  requirements:
312
246
  - - ">="
313
247
  - !ruby/object:Gem::Version
314
- segments:
315
- - 0
316
248
  version: "0"
249
+ version:
317
250
  required_rubygems_version: !ruby/object:Gem::Requirement
318
251
  requirements:
319
252
  - - ">="
320
253
  - !ruby/object:Gem::Version
321
- segments:
322
- - 0
323
254
  version: "0"
255
+ version:
324
256
  requirements: []
325
257
 
326
258
  rubyforge_project: god
327
- rubygems_version: 1.3.6
259
+ rubygems_version: 1.3.5
328
260
  signing_key:
329
261
  specification_version: 2
330
262
  summary: Process monitoring framework.