chef-handler-users 0.1.0 → 0.1.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.
- data/chef-handler-users.gemspec +1 -1
- data/lib/chef-handler-users.rb +19 -9
- metadata +3 -3
data/chef-handler-users.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.name = "chef-handler-users"
|
6
|
-
gem.version = "0.1.
|
6
|
+
gem.version = "0.1.1"
|
7
7
|
gem.authors = ["Heavy Water Operations, LLC. (OR)"]
|
8
8
|
gem.email = ["ops@hw-ops.com"]
|
9
9
|
gem.homepage = "http://github.com/heavywater/chef-handler-users"
|
data/lib/chef-handler-users.rb
CHANGED
@@ -20,21 +20,22 @@ require 'rubygems'
|
|
20
20
|
require 'chef/handler'
|
21
21
|
require 'pony'
|
22
22
|
|
23
|
-
|
24
|
-
|
25
23
|
class Chef::Handler::Users < Chef::Handler
|
26
24
|
attr_reader :config
|
27
25
|
class ConfigurationError < StandardError; end
|
28
26
|
|
29
27
|
def initialize(config={})
|
30
28
|
@config = config
|
31
|
-
@config
|
32
29
|
|
33
|
-
%w[
|
30
|
+
%w[to from].each do |key|
|
34
31
|
unless @config.has_key? key
|
35
32
|
raise ConfigurationError.new("Required configuration #{key} not passed to handler")
|
36
33
|
end
|
37
34
|
end
|
35
|
+
|
36
|
+
if @config[:via] == 'smtp' && !@config[:via_options]
|
37
|
+
raise ConfigurationError.new("via_options is required for smtp")
|
38
|
+
end
|
38
39
|
end
|
39
40
|
|
40
41
|
def report
|
@@ -46,17 +47,19 @@ class Chef::Handler::Users < Chef::Handler
|
|
46
47
|
Chef::Log.info "Users handler detected no user changes"
|
47
48
|
return
|
48
49
|
else
|
49
|
-
Chef::Log.info "Users handler detected #{updated_users.length} user changes. Generating summary email for #{@config[:
|
50
|
+
Chef::Log.info "Users handler detected #{updated_users.length} user changes. Generating summary email for #{@config[:to]}"
|
50
51
|
end
|
51
52
|
|
52
53
|
subject = "Chef run on #{node.name} at #{Time.now} resulted in change of #{updated_users.length} users"
|
53
54
|
|
54
55
|
message = generate_email_body(updated_users)
|
55
56
|
|
56
|
-
Pony.mail(
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
Pony.mail(
|
58
|
+
ensure_hash(@config).update(
|
59
|
+
:subject => subject,
|
60
|
+
:body => message
|
61
|
+
)
|
62
|
+
)
|
60
63
|
end
|
61
64
|
|
62
65
|
def generate_email_body users
|
@@ -79,4 +82,11 @@ User #{user.name} updated:
|
|
79
82
|
EOH
|
80
83
|
end
|
81
84
|
|
85
|
+
def ensure_hash(hash_thing)
|
86
|
+
new_h = {}
|
87
|
+
hash_thing.each do |k,v|
|
88
|
+
new_h[k.to_sym] = v.kind_of?(Hash) || v.kind_of?(Node::Attribute) ? to_hash(v) : v
|
89
|
+
end
|
90
|
+
new_h
|
91
|
+
end
|
82
92
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-handler-users
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-07-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pony
|
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
version: '0'
|
78
78
|
requirements: []
|
79
79
|
rubyforge_project:
|
80
|
-
rubygems_version: 1.8.
|
80
|
+
rubygems_version: 1.8.23
|
81
81
|
signing_key:
|
82
82
|
specification_version: 3
|
83
83
|
summary: Chef Handler to report changes in users
|