chef-irc-snitch 0.0.8 → 0.0.9
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.
- data/README.org +4 -0
- data/chef-irc-snitch.gemspec +1 -1
- data/lib/chef-irc-snitch.rb +17 -7
- metadata +23 -4
data/README.org
CHANGED
@@ -18,3 +18,7 @@ Append the following to your Chef client configs ('/etc/chef/client.rb')
|
|
18
18
|
:
|
19
19
|
: irc_handler = IRCSnitch.new(irc_uri, github_user, github_token, enable_ssl)
|
20
20
|
: exception_handlers << irc_handler
|
21
|
+
|
22
|
+
* License
|
23
|
+
|
24
|
+
Chef-IRC-Snitch is released under the [[https://github.com/portertech/chef-irc-snitch/blob/master/MIT-LICENSE.txt][MIT license]].
|
data/chef-irc-snitch.gemspec
CHANGED
data/lib/chef-irc-snitch.rb
CHANGED
@@ -16,22 +16,33 @@ class IRCSnitch < Chef::Handler
|
|
16
16
|
@timestamp = Time.now.getutc
|
17
17
|
end
|
18
18
|
|
19
|
+
def fmt_run_list
|
20
|
+
node.run_list.map {|r| r.type == :role ? r.name : r.to_s }.join(', ')
|
21
|
+
end
|
22
|
+
|
23
|
+
def fmt_gist
|
24
|
+
([ "Node: #{node.name} (#{node.ipaddress})",
|
25
|
+
"Run list: #{node.run_list}",
|
26
|
+
"All roles: #{node.roles.join(', ')}",
|
27
|
+
"",
|
28
|
+
"#{run_status.formatted_exception}",
|
29
|
+
""] +
|
30
|
+
Array(backtrace)).join("\n")
|
31
|
+
end
|
32
|
+
|
19
33
|
def report
|
20
|
-
message = "#{run_status.formatted_exception}\n"
|
21
|
-
message << Array(backtrace).join("\n")
|
22
34
|
|
23
35
|
if STDOUT.tty?
|
24
36
|
Chef::Log.error("Chef run failed @ #{@timestamp}")
|
25
|
-
|
37
|
+
Chef::Log.error("#{run_status.formatted_exception}")
|
26
38
|
else
|
27
39
|
Chef::Log.error("Chef run failed @ #{@timestamp}, snitchin' to chefs via IRC")
|
28
40
|
|
29
41
|
gist_id = nil
|
30
|
-
|
31
42
|
begin
|
32
43
|
timeout(10) do
|
33
44
|
res = Net::HTTP.post_form(URI.parse("http://gist.github.com/api/v1/json/new"), {
|
34
|
-
"files[#{node.name}-#{@timestamp.to_i.to_s}]" =>
|
45
|
+
"files[#{node.name}-#{@timestamp.to_i.to_s}]" => fmt_gist,
|
35
46
|
"login" => @github_user,
|
36
47
|
"token" => @github_token,
|
37
48
|
"description" => "Chef run failed on #{node.name} @ #{@timestamp}",
|
@@ -44,8 +55,7 @@ class IRCSnitch < Chef::Handler
|
|
44
55
|
Chef::Log.error("Timed out while attempting to create a GitHub Gist")
|
45
56
|
end
|
46
57
|
|
47
|
-
|
48
|
-
message = "Chef run failed on #{node.name} : #{ip_address} : #{node.roles.join(", ")} : https://gist.github.com/#{gist_id}"
|
58
|
+
message = "Chef failed on #{node.name} (#{fmt_run_list}): https://gist.github.com/#{gist_id}"
|
49
59
|
|
50
60
|
begin
|
51
61
|
timeout(10) do
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-irc-snitch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 13
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Sean Porter
|
@@ -10,7 +15,8 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date:
|
18
|
+
date: 2012-03-06 00:00:00 -08:00
|
19
|
+
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: chef
|
@@ -20,6 +26,9 @@ dependencies:
|
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
23
32
|
version: "0"
|
24
33
|
type: :runtime
|
25
34
|
version_requirements: *id001
|
@@ -31,6 +40,9 @@ dependencies:
|
|
31
40
|
requirements:
|
32
41
|
- - ">="
|
33
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
34
46
|
version: "0"
|
35
47
|
type: :runtime
|
36
48
|
version_requirements: *id002
|
@@ -51,6 +63,7 @@ files:
|
|
51
63
|
- Rakefile
|
52
64
|
- chef-irc-snitch.gemspec
|
53
65
|
- lib/chef-irc-snitch.rb
|
66
|
+
has_rdoc: true
|
54
67
|
homepage: https://github.com/portertech/chef-irc-snitch
|
55
68
|
licenses:
|
56
69
|
- MIT
|
@@ -64,17 +77,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
77
|
requirements:
|
65
78
|
- - ">="
|
66
79
|
- !ruby/object:Gem::Version
|
80
|
+
hash: 3
|
81
|
+
segments:
|
82
|
+
- 0
|
67
83
|
version: "0"
|
68
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
85
|
none: false
|
70
86
|
requirements:
|
71
87
|
- - ">="
|
72
88
|
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
73
92
|
version: "0"
|
74
93
|
requirements: []
|
75
94
|
|
76
95
|
rubyforge_project: chef-irc-snitch
|
77
|
-
rubygems_version: 1.
|
96
|
+
rubygems_version: 1.3.7
|
78
97
|
signing_key:
|
79
98
|
specification_version: 3
|
80
99
|
summary: An exception handler for OpsCode Chef runs (GitHub Gists & IRC)
|