chef-handler-sns 1.2.0 → 2.0.0
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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +116 -170
- data/lib/chef/handler/sns.rb +245 -36
- data/lib/chef/handler/sns/config.rb +168 -36
- data/lib/chef/handler/sns/config/ohai.rb +90 -27
- data/lib/chef/handler/sns/version.rb +29 -2
- data/test/helper.rb +23 -2
- data/test/test_chef_handler_sns.rb +233 -141
- data/test/test_chef_handler_sns_config.rb +89 -71
- data/test/test_chef_handler_sns_config_ohai.rb +57 -47
- metadata +100 -43
@@ -1,3 +1,22 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Xabier de Zuazo (<xabier@zuazo.org>)
|
3
|
+
# Copyright:: Copyright (c) 2015 Xabier de Zuazo
|
4
|
+
# Copyright:: Copyright (c) 2014 Onddo Labs, SL.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
1
20
|
require 'helper'
|
2
21
|
require 'chef/exceptions'
|
3
22
|
|
@@ -5,146 +24,145 @@ class SnsConfig
|
|
5
24
|
include Chef::Handler::Sns::Config
|
6
25
|
end
|
7
26
|
|
8
|
-
|
9
|
-
|
10
|
-
def intialize
|
11
|
-
end
|
27
|
+
class ChefFakeOhai < Chef::Handler::Sns::Config::Ohai
|
28
|
+
def intialize
|
12
29
|
end
|
13
30
|
end
|
14
31
|
|
15
32
|
describe Chef::Handler::Sns::Config do
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
33
|
+
let(:node) do
|
34
|
+
node = Chef::Node.new
|
35
|
+
node.name('test')
|
36
|
+
node
|
37
|
+
end
|
38
|
+
let(:sns_config) { SnsConfig.new }
|
39
|
+
let(:config_params) do
|
40
|
+
{
|
41
|
+
access_key: '***AMAZON-KEY***',
|
42
|
+
secret_key: '***AMAZON-SECRET***',
|
43
|
+
token: '***AMAZON-TOKEN***',
|
44
|
+
topic_arn: 'arn:aws:sns:***'
|
22
45
|
}
|
23
|
-
@node = Chef::Node.new
|
24
|
-
@node.name('test')
|
25
|
-
@sns_config = SnsConfig.new
|
26
46
|
end
|
27
47
|
|
28
|
-
it '
|
29
|
-
|
48
|
+
it 'reads the configuration options on config initialization' do
|
49
|
+
sns_config.config_init(config_params)
|
30
50
|
|
31
|
-
assert_equal
|
32
|
-
assert_equal
|
51
|
+
assert_equal config_params[:access_key], sns_config.access_key
|
52
|
+
assert_equal config_params[:secret_key], sns_config.secret_key
|
33
53
|
end
|
34
54
|
|
35
|
-
it '
|
36
|
-
|
37
|
-
|
55
|
+
it 'is able to change configuration options using method calls' do
|
56
|
+
sns_config.access_key(config_params[:access_key])
|
57
|
+
sns_config.secret_key(config_params[:secret_key])
|
38
58
|
|
39
|
-
assert_equal
|
40
|
-
assert_equal
|
59
|
+
assert_equal config_params[:access_key], sns_config.access_key
|
60
|
+
assert_equal config_params[:secret_key], sns_config.secret_key
|
41
61
|
end
|
42
62
|
|
43
|
-
[
|
44
|
-
it "
|
45
|
-
|
46
|
-
|
63
|
+
[:access_key, :secret_key, :topic_arn].each do |required|
|
64
|
+
it "throws an exception when '#{required}' required field is not set" do
|
65
|
+
config_params.delete(required)
|
66
|
+
config_params.each { |key, value| sns_config.send(key, value) }
|
47
67
|
|
48
|
-
assert_raises(Chef::Exceptions::ValidationFailed)
|
68
|
+
assert_raises(Chef::Exceptions::ValidationFailed) do
|
69
|
+
sns_config.config_check
|
70
|
+
end
|
49
71
|
end
|
50
72
|
end
|
51
73
|
|
52
|
-
[
|
53
|
-
|
54
|
-
|
55
|
-
@sns_config.send(option, "test")
|
74
|
+
[:access_key, :secret_key, :region, :token, :topic_arn].each do |option|
|
75
|
+
it "accepts string values in '#{option}' option" do
|
76
|
+
sns_config.send(option, 'test')
|
56
77
|
end
|
57
78
|
|
58
|
-
it "
|
59
|
-
|
79
|
+
it "sets '#{option}' option correctly" do
|
80
|
+
sns_config.send(option, 'test')
|
60
81
|
|
61
|
-
assert_equal
|
82
|
+
assert_equal 'test', sns_config.send(option)
|
62
83
|
end
|
63
84
|
|
64
|
-
[
|
65
|
-
it "
|
66
|
-
assert_raises(Chef::Exceptions::ValidationFailed)
|
85
|
+
[true, 25, Object.new].each do |bad_value|
|
86
|
+
it "throws and exception wen '#{option}' option is set to #{bad_value}" do
|
87
|
+
assert_raises(Chef::Exceptions::ValidationFailed) do
|
88
|
+
sns_config.send(option, bad_value)
|
89
|
+
end
|
67
90
|
end
|
68
91
|
end
|
69
92
|
end
|
70
93
|
|
71
|
-
it '
|
72
|
-
|
73
|
-
assert_equal
|
94
|
+
it 'accepts false value to reset the token' do
|
95
|
+
sns_config.token(false)
|
96
|
+
assert_equal false, sns_config.token
|
74
97
|
end
|
75
98
|
|
76
|
-
it '
|
77
|
-
|
78
|
-
::File.stubs(:
|
99
|
+
it 'throws an exception when the body template file does not exist' do
|
100
|
+
sns_config.body_template('/tmp/nonexistent-template.erb')
|
101
|
+
::File.stubs(:exist?).with(sns_config.body_template).returns(false)
|
79
102
|
|
80
|
-
assert_raises(Chef::Exceptions::ValidationFailed)
|
103
|
+
assert_raises(Chef::Exceptions::ValidationFailed) do
|
104
|
+
sns_config.config_check
|
105
|
+
end
|
81
106
|
end
|
82
107
|
|
83
108
|
describe 'config_init' do
|
84
|
-
|
85
|
-
it 'should accept valid config options' do
|
109
|
+
it 'accepts valid config options' do
|
86
110
|
option = :access_key
|
87
111
|
Chef::Log.expects(:warn).never
|
88
112
|
|
89
|
-
|
113
|
+
sns_config.config_init(option => 'valid')
|
90
114
|
end
|
91
115
|
|
92
|
-
it '
|
116
|
+
it 'does not accept invalid config options' do
|
93
117
|
option = :invalid_option
|
94
|
-
assert
|
118
|
+
assert !sns_config.respond_to?(option)
|
95
119
|
Chef::Log.expects(:warn).once
|
96
120
|
|
97
|
-
|
121
|
+
sns_config.config_init(option => 'none')
|
98
122
|
end
|
99
123
|
|
100
|
-
it '
|
124
|
+
it 'does not accept config options starting by "config_"' do
|
101
125
|
option = :config_check
|
102
|
-
assert
|
126
|
+
assert sns_config.respond_to?(option)
|
103
127
|
Chef::Log.expects(:warn).once
|
104
128
|
|
105
|
-
|
129
|
+
sns_config.config_init(option => 'exists but not configurable')
|
106
130
|
end
|
107
|
-
|
108
131
|
end
|
109
132
|
|
110
133
|
describe 'config_check' do
|
134
|
+
it 'calls #config_from_ohai method' do
|
135
|
+
sns_config.access_key(config_params[:access_key])
|
136
|
+
sns_config.secret_key(config_params[:secret_key])
|
137
|
+
sns_config.topic_arn(config_params[:topic_arn])
|
138
|
+
sns_config.expects(:config_from_ohai).once
|
111
139
|
|
112
|
-
|
113
|
-
@sns_config.access_key(@config_params[:access_key])
|
114
|
-
@sns_config.secret_key(@config_params[:secret_key])
|
115
|
-
@sns_config.topic_arn(@config_params[:topic_arn])
|
116
|
-
@sns_config.expects(:config_from_ohai).once
|
117
|
-
|
118
|
-
@sns_config.config_check(@node)
|
140
|
+
sns_config.config_check(node)
|
119
141
|
end
|
120
|
-
|
121
142
|
end
|
122
143
|
|
123
144
|
describe 'config_from_ohai' do
|
124
145
|
before do
|
125
|
-
@fake_ohai =
|
146
|
+
@fake_ohai = ChefFakeOhai.new(node)
|
126
147
|
Chef::Handler::Sns::Config::Ohai.stubs(:new).returns(@fake_ohai)
|
127
148
|
end
|
128
149
|
|
129
|
-
it '
|
150
|
+
it 'creates Config::Ohai object' do
|
130
151
|
Chef::Handler::Sns::Config::Ohai.expects(:new).once.returns(@fake_ohai)
|
131
152
|
|
132
|
-
|
153
|
+
sns_config.config_from_ohai(node)
|
133
154
|
end
|
134
155
|
|
135
156
|
[
|
136
|
-
:region,
|
137
157
|
:access_key,
|
138
158
|
:secret_key,
|
139
|
-
:token
|
159
|
+
:token
|
140
160
|
].each do |method|
|
141
|
-
it "
|
161
|
+
it "calls Config::Ohai##{method} method" do
|
142
162
|
@fake_ohai.expects(method).once
|
143
163
|
|
144
|
-
|
164
|
+
sns_config.config_from_ohai(node)
|
145
165
|
end
|
146
166
|
end
|
147
|
-
|
148
167
|
end
|
149
|
-
|
150
168
|
end
|
@@ -1,75 +1,85 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Xabier de Zuazo (<xabier@zuazo.org>)
|
3
|
+
# Copyright:: Copyright (c) 2015 Xabier de Zuazo
|
4
|
+
# Copyright:: Copyright (c) 2014 Onddo Labs, SL.
|
5
|
+
# License:: Apache License, Version 2.0
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
1
20
|
require 'helper'
|
2
21
|
|
3
22
|
describe Chef::Handler::Sns::Config::Ohai do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
23
|
+
let(:node) do
|
24
|
+
Chef::Node.new.tap do |node|
|
25
|
+
node.name('test')
|
26
|
+
node.set['ec2'] = {
|
27
|
+
'placement_availability_zone' => 'region1a',
|
28
|
+
'iam' => {
|
29
|
+
'security-credentials' => {
|
30
|
+
'iam-role1' => {
|
31
|
+
'AccessKeyId' => 'access_key1',
|
32
|
+
'SecretAccessKey' => 'secret_key1',
|
33
|
+
'Token' => 'token1'
|
34
|
+
}
|
15
35
|
}
|
16
36
|
}
|
17
37
|
}
|
18
|
-
|
38
|
+
end
|
19
39
|
end
|
40
|
+
let(:config) { Chef::Handler::Sns::Config::Ohai.new(node) }
|
41
|
+
let(:node_set_iam_roles) { node.set['ec2']['iam']['security-credentials'] }
|
20
42
|
|
21
43
|
describe 'read_config' do
|
22
|
-
|
23
|
-
|
24
|
-
config = Chef::Handler::Sns::Config::Ohai.new(@node)
|
25
|
-
assert_equal config.region, 'region1'
|
44
|
+
it 'reads the region' do
|
45
|
+
assert_equal 'region1', config.region
|
26
46
|
end
|
27
47
|
|
28
|
-
it '
|
29
|
-
|
30
|
-
|
31
|
-
assert_equal config.region, nil
|
48
|
+
it 'does not read the region when not set' do
|
49
|
+
node.set['ec2']['placement_availability_zone'] = nil
|
50
|
+
assert_equal nil, config.region
|
32
51
|
end
|
33
52
|
|
34
|
-
it '
|
35
|
-
|
36
|
-
|
37
|
-
assert_equal config.access_key, nil
|
53
|
+
it 'does not read the credentials when has not IAM role' do
|
54
|
+
node.set['ec2'] = {}
|
55
|
+
assert_equal nil, config.access_key
|
38
56
|
end
|
39
57
|
|
40
|
-
it '
|
41
|
-
|
42
|
-
assert_equal config.access_key, 'access_key1'
|
58
|
+
it 'reads the access_key' do
|
59
|
+
assert_equal 'access_key1', config.access_key
|
43
60
|
end
|
44
61
|
|
45
|
-
it '
|
46
|
-
|
47
|
-
|
48
|
-
assert_equal config.access_key, nil
|
62
|
+
it 'does not read the access_key when not set' do
|
63
|
+
node_set_iam_roles['iam-role1']['AccessKeyId'] = nil
|
64
|
+
assert_equal nil, config.access_key
|
49
65
|
end
|
50
66
|
|
51
|
-
it '
|
52
|
-
|
53
|
-
assert_equal config.secret_key, 'secret_key1'
|
67
|
+
it 'reads the secret_key' do
|
68
|
+
assert_equal 'secret_key1', config.secret_key
|
54
69
|
end
|
55
70
|
|
56
|
-
it '
|
57
|
-
|
58
|
-
|
59
|
-
assert_equal config.secret_key, nil
|
71
|
+
it 'does not read the secret_key when not set' do
|
72
|
+
node_set_iam_roles['iam-role1']['SecretAccessKey'] = nil
|
73
|
+
assert_equal nil, config.secret_key
|
60
74
|
end
|
61
75
|
|
62
|
-
it '
|
63
|
-
|
64
|
-
assert_equal config.token, 'token1'
|
76
|
+
it 'reads the security token' do
|
77
|
+
assert_equal 'token1', config.token
|
65
78
|
end
|
66
79
|
|
67
|
-
it '
|
68
|
-
|
69
|
-
|
70
|
-
assert_equal config.token, nil
|
80
|
+
it 'does not read the security token when not set' do
|
81
|
+
node_set_iam_roles['iam-role1']['Token'] = nil
|
82
|
+
assert_equal nil, config.token
|
71
83
|
end
|
72
|
-
|
73
84
|
end
|
74
|
-
|
75
85
|
end
|
metadata
CHANGED
@@ -1,130 +1,186 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-handler-sns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Xabier de Zuazo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: erubis
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: chef
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.9.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.9.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '10.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '5.7'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '5.7'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest-stub-const
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.5.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.5.0
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: mocha
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- -
|
101
|
+
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
103
|
+
version: '1.1'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- -
|
108
|
+
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
110
|
+
version: '1.1'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: coveralls
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
117
|
+
version: '0.7'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- -
|
122
|
+
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
124
|
+
version: '0.7'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: simplecov
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.9'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.9'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
116
144
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
145
|
+
version: 0.35.0
|
118
146
|
type: :development
|
119
147
|
prerelease: false
|
120
148
|
version_requirements: !ruby/object:Gem::Requirement
|
121
149
|
requirements:
|
122
|
-
- -
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.35.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: should_not
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
123
158
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
159
|
+
version: '1.1'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.1'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: yard
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.8'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.8'
|
125
181
|
description: Chef report handler to send Amazon SNS notifications on failures or changes,
|
126
|
-
includes IAM roles support
|
127
|
-
email:
|
182
|
+
includes IAM roles support.
|
183
|
+
email: xabier@zuazo.org
|
128
184
|
executables: []
|
129
185
|
extensions: []
|
130
186
|
extra_rdoc_files: []
|
@@ -132,15 +188,15 @@ files:
|
|
132
188
|
- LICENSE
|
133
189
|
- README.md
|
134
190
|
- lib/chef/handler/sns.rb
|
135
|
-
- lib/chef/handler/sns/templates/body.erb
|
136
191
|
- lib/chef/handler/sns/config.rb
|
137
192
|
- lib/chef/handler/sns/config/ohai.rb
|
193
|
+
- lib/chef/handler/sns/templates/body.erb
|
138
194
|
- lib/chef/handler/sns/version.rb
|
139
195
|
- test/helper.rb
|
140
196
|
- test/test_chef_handler_sns.rb
|
141
|
-
- test/test_chef_handler_sns_config_ohai.rb
|
142
197
|
- test/test_chef_handler_sns_config.rb
|
143
|
-
|
198
|
+
- test/test_chef_handler_sns_config_ohai.rb
|
199
|
+
homepage: http://zuazo.github.io/chef-handler-sns
|
144
200
|
licenses:
|
145
201
|
- Apache-2.0
|
146
202
|
metadata: {}
|
@@ -150,22 +206,23 @@ require_paths:
|
|
150
206
|
- lib
|
151
207
|
required_ruby_version: !ruby/object:Gem::Requirement
|
152
208
|
requirements:
|
153
|
-
- -
|
209
|
+
- - ">="
|
154
210
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
211
|
+
version: 2.0.0
|
156
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
213
|
requirements:
|
158
|
-
- -
|
214
|
+
- - ">="
|
159
215
|
- !ruby/object:Gem::Version
|
160
216
|
version: '0'
|
161
217
|
requirements: []
|
162
218
|
rubyforge_project:
|
163
|
-
rubygems_version: 2.
|
219
|
+
rubygems_version: 2.2.2
|
164
220
|
signing_key:
|
165
221
|
specification_version: 4
|
166
222
|
summary: Chef SNS reports
|
167
223
|
test_files:
|
168
|
-
- test/helper.rb
|
169
224
|
- test/test_chef_handler_sns.rb
|
225
|
+
- test/helper.rb
|
170
226
|
- test/test_chef_handler_sns_config_ohai.rb
|
171
227
|
- test/test_chef_handler_sns_config.rb
|
228
|
+
has_rdoc:
|