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 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]].
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "chef-irc-snitch"
3
- s.version = "0.0.8"
3
+ s.version = "0.0.9"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ["Sean Porter"]
6
6
  s.email = ["portertech@gmail.com"]
@@ -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
- puts message
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}]" => message,
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
- ip_address = (node.has_key? :ec2) ? node.ec2.public_ipv4 : node.ipaddress
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
- prerelease:
5
- version: 0.0.8
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: 2011-08-24 00:00:00 Z
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.8.8
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)