chef-handler-sns 2.0.0 → 2.1.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
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +3 -0
- data/README.md +20 -2
- data/lib/chef/handler/sns.rb +3 -2
- data/lib/chef/handler/sns/config.rb +27 -46
- data/lib/chef/handler/sns/templates/body.erb +1 -1
- data/lib/chef/handler/sns/version.rb +1 -1
- data/test/test_chef_handler_sns.rb +4 -2
- data/test/test_chef_handler_sns_config.rb +6 -3
- data/test/test_chef_handler_sns_config_ohai.rb +16 -12
- metadata +38 -17
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c45d44aa08b39e5ac355ffacc4f745c6596324a6
|
4
|
+
data.tar.gz: 7018588d12c83e43d5b49b7e10940ec3e3613259
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a68e3d7ef8fbac4594d831e6b82d2cc22d2b2977e2bd828f790d2809ec2e431cb6f06db8ae9f4eb6bd7579867dc68cd326a62e2258d683905fbc5948410328c
|
7
|
+
data.tar.gz: 25206122277c328f22ce06f274e2df7293120711e13de5da0446386f9e11d472ed8361e876a4cc7e676bd3b922513adbd53f8f5123162a0195e6508ad7278f6c
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jN�8���I��;J�Cl[�d�}��8�
|
data.tar.gz.sig
ADDED
data/README.md
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
|
7
7
|
[](https://gemnasium.com/zuazo/chef-handler-sns)
|
8
8
|
[](https://codeclimate.com/github/zuazo/chef-handler-sns)
|
9
|
-
[](https://travis-ci.org/onddo/chef-handler-sns)
|
10
|
+
[](https://coveralls.io/r/onddo/chef-handler-sns?branch=2.1.0)
|
11
11
|
[](http://inch-ci.org/github/zuazo/chef-handler-sns)
|
12
12
|
|
13
13
|
A simple Chef report handler that reports status of a Chef run through [Amazon SNS](http://aws.amazon.com/sns/), [including IAM roles support](#usage-with-amazon-iam-roles).
|
@@ -169,6 +169,7 @@ The following options are available to configure the handler:
|
|
169
169
|
* `secret_key` - AWS secret key (required, but will try to read it from Ohai with IAM roles).
|
170
170
|
* `token` - AWS security token (optional, read from Ohai with IAM roles). Set to `false` to disable the token detected by Ohai.
|
171
171
|
* `topic_arn` - AWS topic ARN name (required).
|
172
|
+
* `message_structure` - Set this option to `json` if you want to send a different message for each protocol. You must set your [message body template](#body_template-configuration-option) properly. Valid value: `json`. (optional)
|
172
173
|
* `region` - AWS region (optional).
|
173
174
|
* `subject` - Message subject string in erubis format (optional).
|
174
175
|
* `body_template` - Full path of an erubis template file to use for the message body (optional).
|
@@ -277,6 +278,21 @@ Stacktrace:
|
|
277
278
|
|
278
279
|
See the [subject](#subject) documentation for more details on the variables accessible inside the template.
|
279
280
|
|
281
|
+
If you set `message_structure` to `json`, the body template must:
|
282
|
+
|
283
|
+
* be a syntactically valid JSON; and
|
284
|
+
* contain at least a top-level JSON key of `default` with a value that is a string.
|
285
|
+
You can define other top-level keys that define the message you want to send to a specific transport protocol (e.g., "http").
|
286
|
+
```erb
|
287
|
+
<%# file 'myapp/files/default/chef_handler_sns_body.erb' %>
|
288
|
+
{
|
289
|
+
"default": "Message body text here.",
|
290
|
+
"email": "Message body text here.",
|
291
|
+
"http": "Message body text here."
|
292
|
+
}
|
293
|
+
```
|
294
|
+
See the [AWS SNS](http://docs.aws.amazon.com/sns/latest/api/API_Publish.html#API_Publish_RequestParameters) documentation for more details on SNS message format.
|
295
|
+
|
280
296
|
## IAM Role Credentials from Ohai
|
281
297
|
|
282
298
|
IAM Role information and credentials are gathered from Ohai by default if they exists.
|
@@ -317,6 +333,8 @@ See [TODO.md](https://github.com/zuazo/chef-handler-sns/blob/master/TODO.md).
|
|
317
333
|
| **Author:** | [Xabier de Zuazo](https://github.com/zuazo) (<xabier@zuazo.org>)
|
318
334
|
| **Contributor:** | [Florian Holzhauer](https://github.com/fh)
|
319
335
|
| **Contributor:** | [Michael Hobbs](https://github.com/michaelshobbs)
|
336
|
+
| **Contributor:** | [Hugo Lopes Tavares](https://github.com/hltbra)
|
337
|
+
| **Contributor:** | [Dmitry Averkiev](https://github.com/d-averkiev)
|
320
338
|
| **Copyright:** | Copyright (c) 2015 Xabier de Zuazo
|
321
339
|
| **Copyright:** | Copyright (c) 2013-2014 Onddo Labs, SL.
|
322
340
|
| **License:** | Apache License, Version 2.0
|
data/lib/chef/handler/sns.rb
CHANGED
@@ -136,7 +136,8 @@ class Chef
|
|
136
136
|
sns.publish(
|
137
137
|
topic_arn: topic_arn,
|
138
138
|
message: sns_body,
|
139
|
-
subject: sns_subject
|
139
|
+
subject: sns_subject,
|
140
|
+
message_structure: message_structure
|
140
141
|
)
|
141
142
|
end
|
142
143
|
|
@@ -250,7 +251,7 @@ class Chef
|
|
250
251
|
# ruby-limiting-a-utf-8-string-by-byte-length
|
251
252
|
#
|
252
253
|
# @param str [String] The string to limit.
|
253
|
-
# @param size [
|
254
|
+
# @param size [Integer] The string size in bytes.
|
254
255
|
#
|
255
256
|
# @return [String] The final string.
|
256
257
|
#
|
@@ -42,7 +42,7 @@ class Chef
|
|
42
42
|
#
|
43
43
|
# Required configuration options.
|
44
44
|
#
|
45
|
-
REQUIRED = %w(access_key secret_key topic_arn)
|
45
|
+
REQUIRED = %w(access_key secret_key topic_arn).freeze
|
46
46
|
|
47
47
|
#
|
48
48
|
# Reads some configuration options from Ohai information.
|
@@ -58,9 +58,7 @@ class Chef
|
|
58
58
|
def config_from_ohai(node)
|
59
59
|
config_ohai = Config::Ohai.new(node)
|
60
60
|
[
|
61
|
-
:access_key,
|
62
|
-
:secret_key,
|
63
|
-
:token
|
61
|
+
:access_key, :secret_key, :token
|
64
62
|
].each do |attr|
|
65
63
|
send(attr, config_ohai.send(attr)) if send(attr).nil?
|
66
64
|
end
|
@@ -108,13 +106,13 @@ class Chef
|
|
108
106
|
config_from_ohai(node) if node
|
109
107
|
REQUIRED.each do |key|
|
110
108
|
next unless send(key).nil?
|
111
|
-
|
112
|
-
|
109
|
+
raise Exceptions::ValidationFailed,
|
110
|
+
"Required argument #{key} is missing!"
|
113
111
|
end
|
114
112
|
|
115
113
|
return unless body_template && !::File.exist?(body_template)
|
116
|
-
|
117
|
-
|
114
|
+
raise Exceptions::ValidationFailed,
|
115
|
+
"Template file not found: #{body_template}."
|
118
116
|
end
|
119
117
|
|
120
118
|
#
|
@@ -127,11 +125,7 @@ class Chef
|
|
127
125
|
# @api public
|
128
126
|
#
|
129
127
|
def access_key(arg = nil)
|
130
|
-
set_or_return(
|
131
|
-
:access_key,
|
132
|
-
arg,
|
133
|
-
kind_of: String
|
134
|
-
)
|
128
|
+
set_or_return(:access_key, arg, kind_of: String)
|
135
129
|
end
|
136
130
|
|
137
131
|
#
|
@@ -144,11 +138,7 @@ class Chef
|
|
144
138
|
# @api public
|
145
139
|
#
|
146
140
|
def secret_key(arg = nil)
|
147
|
-
set_or_return(
|
148
|
-
:secret_key,
|
149
|
-
arg,
|
150
|
-
kind_of: String
|
151
|
-
)
|
141
|
+
set_or_return(:secret_key, arg, kind_of: String)
|
152
142
|
end
|
153
143
|
|
154
144
|
#
|
@@ -161,11 +151,7 @@ class Chef
|
|
161
151
|
# @api public
|
162
152
|
#
|
163
153
|
def region(arg = nil)
|
164
|
-
set_or_return(
|
165
|
-
:region,
|
166
|
-
arg,
|
167
|
-
kind_of: String
|
168
|
-
)
|
154
|
+
set_or_return(:region, arg, kind_of: String)
|
169
155
|
end
|
170
156
|
|
171
157
|
#
|
@@ -178,11 +164,7 @@ class Chef
|
|
178
164
|
# @api public
|
179
165
|
#
|
180
166
|
def token(arg = nil)
|
181
|
-
set_or_return(
|
182
|
-
:token,
|
183
|
-
arg,
|
184
|
-
kind_of: [String, FalseClass]
|
185
|
-
)
|
167
|
+
set_or_return(:token, arg, kind_of: [String, FalseClass])
|
186
168
|
end
|
187
169
|
|
188
170
|
#
|
@@ -198,9 +180,7 @@ class Chef
|
|
198
180
|
#
|
199
181
|
def topic_arn(arg = nil)
|
200
182
|
set_or_return(
|
201
|
-
:topic_arn,
|
202
|
-
arg,
|
203
|
-
kind_of: String
|
183
|
+
:topic_arn, arg, kind_of: String
|
204
184
|
).tap do |arn|
|
205
185
|
# Get the region from the ARN:
|
206
186
|
next if arn.nil? || !region.nil?
|
@@ -208,6 +188,19 @@ class Chef
|
|
208
188
|
end
|
209
189
|
end
|
210
190
|
|
191
|
+
#
|
192
|
+
# Gets or sets MessageStructure SNS request parameter.
|
193
|
+
#
|
194
|
+
# @param arg [String] MessageStructure.
|
195
|
+
#
|
196
|
+
# @return [String] MessageStructure.
|
197
|
+
#
|
198
|
+
# @api public
|
199
|
+
#
|
200
|
+
def message_structure(arg = nil)
|
201
|
+
set_or_return(:message_structure, arg, kind_of: String)
|
202
|
+
end
|
203
|
+
|
211
204
|
#
|
212
205
|
# Gets or sets SNS message subject.
|
213
206
|
#
|
@@ -218,11 +211,7 @@ class Chef
|
|
218
211
|
# @api public
|
219
212
|
#
|
220
213
|
def subject(arg = nil)
|
221
|
-
set_or_return(
|
222
|
-
:subject,
|
223
|
-
arg,
|
224
|
-
kind_of: String
|
225
|
-
)
|
214
|
+
set_or_return(:subject, arg, kind_of: String)
|
226
215
|
end
|
227
216
|
|
228
217
|
#
|
@@ -235,11 +224,7 @@ class Chef
|
|
235
224
|
# @api public
|
236
225
|
#
|
237
226
|
def body_template(arg = nil)
|
238
|
-
set_or_return(
|
239
|
-
:body_template,
|
240
|
-
arg,
|
241
|
-
kind_of: String
|
242
|
-
)
|
227
|
+
set_or_return(:body_template, arg, kind_of: String)
|
243
228
|
end
|
244
229
|
|
245
230
|
#
|
@@ -256,11 +241,7 @@ class Chef
|
|
256
241
|
#
|
257
242
|
def filter_opsworks_activity(arg = nil)
|
258
243
|
arg = Array(arg) if arg.is_a? String
|
259
|
-
set_or_return(
|
260
|
-
:filter_opsworks_activity,
|
261
|
-
arg,
|
262
|
-
kind_of: Array
|
263
|
-
)
|
244
|
+
set_or_return(:filter_opsworks_activity, arg, kind_of: Array)
|
264
245
|
end
|
265
246
|
end
|
266
247
|
end
|
@@ -29,7 +29,7 @@ Instance Local IPv4: <%= node.ec2.local_ipv4 %>
|
|
29
29
|
|
30
30
|
Chef Client Elapsed Time: <%= elapsed_time.to_s %>
|
31
31
|
Chef Client Start Time: <%= start_time.to_s %>
|
32
|
-
Chef Client
|
32
|
+
Chef Client End Time: <%= end_time.to_s %>
|
33
33
|
|
34
34
|
<% if exception -%>
|
35
35
|
Exception: <%= run_status.formatted_exception %>
|
@@ -40,6 +40,7 @@ module Aws
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
+
# rubocop:disable Metrics/BlockLength
|
43
44
|
describe Chef::Handler::Sns do
|
44
45
|
let(:data_dir) { ::File.join(::File.dirname(__FILE__), 'data') }
|
45
46
|
let(:node) do
|
@@ -277,7 +278,7 @@ describe Chef::Handler::Sns do
|
|
277
278
|
|
278
279
|
it 'publishes messages if node["opsworks"]["activity"] matches allowed '\
|
279
280
|
'acvities' do
|
280
|
-
node.
|
281
|
+
node.override['opsworks']['activity'] = 'deploy'
|
281
282
|
config[:filter_opsworks_activity] = %w(deploy setup)
|
282
283
|
|
283
284
|
fake_sns.expects(:publish).once
|
@@ -286,7 +287,7 @@ describe Chef::Handler::Sns do
|
|
286
287
|
|
287
288
|
it 'does not publish messages if node["opsworks"]["activity"] differs '\
|
288
289
|
'from allowed acvities' do
|
289
|
-
node.
|
290
|
+
node.override['opsworks']['activity'] = 'configure'
|
290
291
|
config[:filter_opsworks_activity] = %w(deploy setup)
|
291
292
|
|
292
293
|
fake_sns.expects(:publish).never
|
@@ -301,3 +302,4 @@ describe Chef::Handler::Sns do
|
|
301
302
|
sns_handler.run_report_safely(run_status)
|
302
303
|
end
|
303
304
|
end
|
305
|
+
# rubocop:enable Metrics/BlockLength
|
@@ -25,10 +25,10 @@ class SnsConfig
|
|
25
25
|
end
|
26
26
|
|
27
27
|
class ChefFakeOhai < Chef::Handler::Sns::Config::Ohai
|
28
|
-
def intialize
|
29
|
-
end
|
28
|
+
def intialize; end
|
30
29
|
end
|
31
30
|
|
31
|
+
# rubocop:disable Metrics/BlockLength
|
32
32
|
describe Chef::Handler::Sns::Config do
|
33
33
|
let(:node) do
|
34
34
|
node = Chef::Node.new
|
@@ -71,7 +71,9 @@ describe Chef::Handler::Sns::Config do
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
-
[
|
74
|
+
[
|
75
|
+
:access_key, :secret_key, :region, :token, :topic_arn, :message_structure
|
76
|
+
].each do |option|
|
75
77
|
it "accepts string values in '#{option}' option" do
|
76
78
|
sns_config.send(option, 'test')
|
77
79
|
end
|
@@ -166,3 +168,4 @@ describe Chef::Handler::Sns::Config do
|
|
166
168
|
end
|
167
169
|
end
|
168
170
|
end
|
171
|
+
# rubocop:enable Metrics/BlockLength
|
@@ -19,11 +19,12 @@
|
|
19
19
|
|
20
20
|
require 'helper'
|
21
21
|
|
22
|
+
# rubocop:disable Metrics/BlockLength
|
22
23
|
describe Chef::Handler::Sns::Config::Ohai do
|
23
24
|
let(:node) do
|
24
25
|
Chef::Node.new.tap do |node|
|
25
26
|
node.name('test')
|
26
|
-
node.
|
27
|
+
node.override['ec2'] = {
|
27
28
|
'placement_availability_zone' => 'region1a',
|
28
29
|
'iam' => {
|
29
30
|
'security-credentials' => {
|
@@ -38,7 +39,9 @@ describe Chef::Handler::Sns::Config::Ohai do
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
let(:config) { Chef::Handler::Sns::Config::Ohai.new(node) }
|
41
|
-
let(:
|
42
|
+
let(:node_override_iam_roles) do
|
43
|
+
node.override['ec2']['iam']['security-credentials']
|
44
|
+
end
|
42
45
|
|
43
46
|
describe 'read_config' do
|
44
47
|
it 'reads the region' do
|
@@ -46,13 +49,13 @@ describe Chef::Handler::Sns::Config::Ohai do
|
|
46
49
|
end
|
47
50
|
|
48
51
|
it 'does not read the region when not set' do
|
49
|
-
node.
|
50
|
-
|
52
|
+
node.override['ec2']['placement_availability_zone'] = nil
|
53
|
+
assert_nil config.region
|
51
54
|
end
|
52
55
|
|
53
56
|
it 'does not read the credentials when has not IAM role' do
|
54
|
-
node.
|
55
|
-
|
57
|
+
node.override['ec2'] = {}
|
58
|
+
assert_nil config.access_key
|
56
59
|
end
|
57
60
|
|
58
61
|
it 'reads the access_key' do
|
@@ -60,8 +63,8 @@ describe Chef::Handler::Sns::Config::Ohai do
|
|
60
63
|
end
|
61
64
|
|
62
65
|
it 'does not read the access_key when not set' do
|
63
|
-
|
64
|
-
|
66
|
+
node_override_iam_roles['iam-role1']['AccessKeyId'] = nil
|
67
|
+
assert_nil config.access_key
|
65
68
|
end
|
66
69
|
|
67
70
|
it 'reads the secret_key' do
|
@@ -69,8 +72,8 @@ describe Chef::Handler::Sns::Config::Ohai do
|
|
69
72
|
end
|
70
73
|
|
71
74
|
it 'does not read the secret_key when not set' do
|
72
|
-
|
73
|
-
|
75
|
+
node_override_iam_roles['iam-role1']['SecretAccessKey'] = nil
|
76
|
+
assert_nil config.secret_key
|
74
77
|
end
|
75
78
|
|
76
79
|
it 'reads the security token' do
|
@@ -78,8 +81,9 @@ describe Chef::Handler::Sns::Config::Ohai do
|
|
78
81
|
end
|
79
82
|
|
80
83
|
it 'does not read the security token when not set' do
|
81
|
-
|
82
|
-
|
84
|
+
node_override_iam_roles['iam-role1']['Token'] = nil
|
85
|
+
assert_nil config.token
|
83
86
|
end
|
84
87
|
end
|
85
88
|
end
|
89
|
+
# rubocop:enable Metrics/BlockLength
|
metadata
CHANGED
@@ -1,14 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-handler-sns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xabier de Zuazo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA9MQ8wDQYDVQQDDAZ4YWJp
|
14
|
+
ZXIxFTATBgoJkiaJk/IsZAEZFgV6dWF6bzETMBEGCgmSJomT8ixkARkWA29yZzAe
|
15
|
+
Fw0xNjA5MTUxNzIzMTlaFw0xNzA5MTUxNzIzMTlaMD0xDzANBgNVBAMMBnhhYmll
|
16
|
+
cjEVMBMGCgmSJomT8ixkARkWBXp1YXpvMRMwEQYKCZImiZPyLGQBGRYDb3JnMIIB
|
17
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdGpaOki5vixi6PplYTO/6nT
|
18
|
+
e989el4XtVnQlVWQ/cvLdiTwcjqeaVHJfvkqkgrnpFSdQZogEM6dAdOdX3U0x66L
|
19
|
+
JCdyr5D9d1l8p9/UpnCVmvZleFbjO/xU60nq/6ILNxHScEBLFOF/oL7YRU3qgiNH
|
20
|
+
0Xx87C1N6Ap98aIVemOlD7iSVi56PN/2NvJJb3x9hk6sB/Yfekk5WeRTrJkYPeFx
|
21
|
+
y36jFQEVvwgB5DBizRqeIo/CXYSEhrSoDM9B9P5/9j3PJQalYD2bJ9mniATEhgEO
|
22
|
+
M7oFge+vUrkFmKuiTRg+yshc5Ep8OcqE8yP0XtkC+/V0oDTp4f+QrScPjLaWpQID
|
23
|
+
AQABo3MwcTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUW2JTg6p6
|
24
|
+
NcAJO7zVxIDiGkssqPkwGwYDVR0RBBQwEoEQeGFiaWVyQHp1YXpvLm9yZzAbBgNV
|
25
|
+
HRIEFDASgRB4YWJpZXJAenVhem8ub3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAgHehn
|
26
|
+
hmKfhEuuC+MragsxzjDwtHVUWUr53PWRIxScBplLK2jGGsKvdH2MwPCaKg7LJxg8
|
27
|
+
bT/UEop2tjYm4I/GTSgRzS7El6hAmhVRYxdCf/cAvIhVsvuXPARfDLaY5AFuxrGo
|
28
|
+
ZHu04LKaeOC8GWAdE0V+qRoW4JRQXwijki1FO99895yOwDrHW4DE5JGxVmnVd5u5
|
29
|
+
nGm+irqWVm/eheMHoYSnnSoUv/wR7I3PaGKjQAvx+Fb34T2e57IZk0tmGtoLXD/1
|
30
|
+
GlrtLc9kPO2xfj3e8Xuc1ksF21rlydki4ruAOZLg4gQX1IEFIpC8xNBfG1JuICzE
|
31
|
+
9n62GAx6ZNMluPmN
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
date: 2017-02-18 00:00:00.000000000 Z
|
12
34
|
dependencies:
|
13
35
|
- !ruby/object:Gem::Dependency
|
14
36
|
name: aws-sdk
|
@@ -42,30 +64,30 @@ dependencies:
|
|
42
64
|
name: chef
|
43
65
|
requirement: !ruby/object:Gem::Requirement
|
44
66
|
requirements:
|
45
|
-
- - "
|
67
|
+
- - "~>"
|
46
68
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
69
|
+
version: '12.0'
|
48
70
|
type: :development
|
49
71
|
prerelease: false
|
50
72
|
version_requirements: !ruby/object:Gem::Requirement
|
51
73
|
requirements:
|
52
|
-
- - "
|
74
|
+
- - "~>"
|
53
75
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
76
|
+
version: '12.0'
|
55
77
|
- !ruby/object:Gem::Dependency
|
56
78
|
name: rake
|
57
79
|
requirement: !ruby/object:Gem::Requirement
|
58
80
|
requirements:
|
59
81
|
- - "~>"
|
60
82
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
83
|
+
version: '12.0'
|
62
84
|
type: :development
|
63
85
|
prerelease: false
|
64
86
|
version_requirements: !ruby/object:Gem::Requirement
|
65
87
|
requirements:
|
66
88
|
- - "~>"
|
67
89
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
90
|
+
version: '12.0'
|
69
91
|
- !ruby/object:Gem::Dependency
|
70
92
|
name: minitest
|
71
93
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +108,14 @@ dependencies:
|
|
86
108
|
requirements:
|
87
109
|
- - "~>"
|
88
110
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
111
|
+
version: 0.6.0
|
90
112
|
type: :development
|
91
113
|
prerelease: false
|
92
114
|
version_requirements: !ruby/object:Gem::Requirement
|
93
115
|
requirements:
|
94
116
|
- - "~>"
|
95
117
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
118
|
+
version: 0.6.0
|
97
119
|
- !ruby/object:Gem::Dependency
|
98
120
|
name: mocha
|
99
121
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +164,14 @@ dependencies:
|
|
142
164
|
requirements:
|
143
165
|
- - "~>"
|
144
166
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
167
|
+
version: 0.47.0
|
146
168
|
type: :development
|
147
169
|
prerelease: false
|
148
170
|
version_requirements: !ruby/object:Gem::Requirement
|
149
171
|
requirements:
|
150
172
|
- - "~>"
|
151
173
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
174
|
+
version: 0.47.0
|
153
175
|
- !ruby/object:Gem::Dependency
|
154
176
|
name: should_not
|
155
177
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,13 +238,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
238
|
version: '0'
|
217
239
|
requirements: []
|
218
240
|
rubyforge_project:
|
219
|
-
rubygems_version: 2.
|
241
|
+
rubygems_version: 2.6.9
|
220
242
|
signing_key:
|
221
243
|
specification_version: 4
|
222
244
|
summary: Chef SNS reports
|
223
245
|
test_files:
|
224
|
-
- test/
|
246
|
+
- test/test_chef_handler_sns_config.rb
|
225
247
|
- test/helper.rb
|
226
248
|
- test/test_chef_handler_sns_config_ohai.rb
|
227
|
-
- test/
|
228
|
-
has_rdoc:
|
249
|
+
- test/test_chef_handler_sns.rb
|
metadata.gz.sig
ADDED
Binary file
|