compat_resource 12.9.1 → 12.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +8 -3
- data/files/lib/chef_compat/copied_from_chef/chef/dsl/core.rb +56 -0
- data/files/lib/chef_compat/copied_from_chef/chef/dsl/declare_resource.rb +182 -7
- data/files/lib/chef_compat/copied_from_chef/chef/dsl/recipe.rb +5 -2
- data/files/lib/chef_compat/copied_from_chef/chef/mixin/lazy_module_include.rb +90 -0
- data/files/lib/chef_compat/copied_from_chef/chef/mixin/notifying_block.rb +66 -0
- data/files/lib/chef_compat/copied_from_chef/chef/mixin/powershell_out.rb +109 -0
- data/files/lib/chef_compat/copied_from_chef/chef/property.rb +9 -2
- data/files/lib/chef_compat/copied_from_chef/chef/provider.rb +2 -2
- data/files/lib/chef_compat/copied_from_chef/chef/resource.rb +1 -0
- data/files/lib/chef_compat/copied_from_chef/chef/resource/action_class.rb +3 -0
- data/files/lib/chef_compat/copied_from_chef/chef/resource_builder.rb +1 -1
- data/files/lib/chef_compat/monkeypatches.rb +7 -3
- data/files/lib/chef_compat/monkeypatches/chef.rb +3 -2
- data/files/lib/chef_compat/monkeypatches/chef/log.rb +13 -0
- data/files/lib/chef_compat/monkeypatches/chef/resource_collection.rb +103 -0
- data/files/lib/chef_compat/monkeypatches/chef/resource_collection/resource_list.rb +49 -0
- data/files/lib/chef_compat/monkeypatches/chef/resource_collection/resource_set.rb +49 -0
- data/files/lib/chef_compat/monkeypatches/chef/run_context.rb +74 -9
- data/files/lib/chef_compat/monkeypatches/chef/runner.rb +60 -0
- data/files/lib/compat_resource/version.rb +1 -1
- data/files/spec/cookbook_spec.rb +10 -1
- data/files/spec/data/.bundle/config +1 -0
- data/files/spec/data/Gemfile.lock +18 -50
- data/files/spec/data/config.rb +1 -1
- data/files/spec/data/cookbooks/notifications/metadata.rb +4 -0
- data/files/spec/data/cookbooks/notifications/recipes/default.rb +5 -0
- data/files/spec/data/cookbooks/notifications/resources/resource.rb +8 -0
- metadata +15 -3
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Tyler Ball (<tball@chef.io>)
|
3
|
+
# Copyright:: Copyright 2014-2016, Chef Software, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "chef/resource_collection/resource_list"
|
20
|
+
require "chef/exceptions"
|
21
|
+
|
22
|
+
module ChefCompat
|
23
|
+
module Monkeypatches
|
24
|
+
module Chef
|
25
|
+
module ResourceCollection
|
26
|
+
module ResourceSet
|
27
|
+
module DeleteResource
|
28
|
+
def delete(key)
|
29
|
+
raise ArgumentError, "Must pass a Chef::Resource or String to delete" unless key.is_a?(String) || key.is_a?(Chef::Resource)
|
30
|
+
key = key.to_s
|
31
|
+
res = @resources_by_key.delete(key)
|
32
|
+
|
33
|
+
if res == @resources_by_key.default
|
34
|
+
raise Chef::Exceptions::ResourceNotFound, "Cannot find a resource matching #{key} (did you define it first?)"
|
35
|
+
end
|
36
|
+
res
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class Chef::ResourceCollection::ResourceSet
|
46
|
+
unless method_defined?(:delete)
|
47
|
+
prepend ChefCompat::Monkeypatches::Chef::ResourceCollection::ResourceSet::DeleteResource
|
48
|
+
end
|
49
|
+
end
|
@@ -1,12 +1,77 @@
|
|
1
|
-
require 'chef/
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
require 'chef/run_context'
|
2
|
+
require 'chef_compat/monkeypatches/chef/resource_collection'
|
3
|
+
|
4
|
+
if Gem::Requirement.new("< 12.10.24").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
5
|
+
module ChefCompat
|
6
|
+
module Monkeypatches
|
7
|
+
module Chef
|
8
|
+
module RunContext
|
9
|
+
# for versions after we added intialize_child_state but before 12.10.24
|
10
|
+
def initialize_child_state(*args)
|
11
|
+
super
|
12
|
+
@resource_collection.run_context = self
|
13
|
+
@delayed_actions = []
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Chef
|
21
|
+
class RunContext
|
22
|
+
#
|
23
|
+
# NOTE: The root run_context is created long before we start monkeying around
|
24
|
+
# with patching the class. No child run context has been created yet. This
|
25
|
+
# still patches the root run_context and implements the new behaviors on it.
|
26
|
+
#
|
27
|
+
# This does affect our ability to patch methods like #initialize, since the
|
28
|
+
# root has already been created and initialized, obviously.
|
29
|
+
#
|
30
|
+
|
31
|
+
unless method_defined?(:parent_run_context)
|
32
|
+
attr_accessor :parent_run_context
|
33
|
+
end
|
34
|
+
|
35
|
+
unless method_defined?(:delayed_actions)
|
36
|
+
def delayed_actions
|
37
|
+
@delayed_actions ||= []
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
unless method_defined?(:initialize_child_state)
|
42
|
+
#
|
43
|
+
# Copied verbatim from 12.10.24 Chef::RunContext
|
44
|
+
#
|
45
|
+
def initialize_child_state
|
46
|
+
@audits = {}
|
47
|
+
@resource_collection = Chef::ResourceCollection.new(self)
|
48
|
+
@before_notification_collection = Hash.new { |h, k| h[k] = [] }
|
49
|
+
@immediate_notification_collection = Hash.new { |h, k| h[k] = [] }
|
50
|
+
@delayed_notification_collection = Hash.new { |h, k| h[k] = [] }
|
51
|
+
@delayed_actions = []
|
52
|
+
end
|
53
|
+
else
|
54
|
+
prepend ChefCompat::Monkeypatches::Chef::RunContext
|
55
|
+
end
|
56
|
+
|
57
|
+
unless method_defined?(:add_delayed_action)
|
58
|
+
def add_delayed_action(notification)
|
59
|
+
if delayed_actions.any? { |existing_notification| existing_notification.duplicates?(notification) }
|
60
|
+
Chef::Log.info( "#{notification.notifying_resource} not queuing delayed action #{notification.action} on #{notification.resource}"\
|
61
|
+
" (delayed), as it's already been queued")
|
62
|
+
else
|
63
|
+
delayed_actions << notification
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
unless method_defined?(:create_child)
|
69
|
+
def create_child
|
70
|
+
result = dup
|
71
|
+
result.parent_run_context = self
|
72
|
+
result.initialize_child_state
|
73
|
+
result
|
74
|
+
end
|
10
75
|
end
|
11
76
|
end
|
12
77
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#--
|
2
|
+
# Author:: Adam Jacob (<adam@chef.io>)
|
3
|
+
# Author:: Christopher Walters (<cw@chef.io>)
|
4
|
+
# Author:: Tim Hinderliter (<tim@chef.io>)
|
5
|
+
# Copyright:: Copyright 2008-2016, Chef Software Inc.
|
6
|
+
# License:: Apache License, Version 2.0
|
7
|
+
#
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
# you may not use this file except in compliance with the License.
|
10
|
+
# You may obtain a copy of the License at
|
11
|
+
#
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
#
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
17
|
+
# See the License for the specific language governing permissions and
|
18
|
+
# limitations under the License.
|
19
|
+
#
|
20
|
+
|
21
|
+
# minimal monkeypatch necessary to implement the notifcation features
|
22
|
+
# of 12.10.x
|
23
|
+
#
|
24
|
+
# if before notifications are also pulled into this monkeypatch then it
|
25
|
+
# may simply be easier to copy the entire Chef::Runner class from 12.10.24
|
26
|
+
# into this file.
|
27
|
+
#
|
28
|
+
class Chef
|
29
|
+
# == Chef::Runner
|
30
|
+
# This class is responsible for executing the steps in a Chef run.
|
31
|
+
class Runner
|
32
|
+
|
33
|
+
def delayed_actions
|
34
|
+
@run_context.delayed_actions
|
35
|
+
end
|
36
|
+
|
37
|
+
# Determine the appropriate provider for the given resource, then
|
38
|
+
# execute it.
|
39
|
+
def run_action(resource, action, notification_type = nil, notifying_resource = nil)
|
40
|
+
# Actually run the action for realsies
|
41
|
+
resource.run_action(action, notification_type, notifying_resource)
|
42
|
+
|
43
|
+
# Execute any immediate and queue up any delayed notifications
|
44
|
+
# associated with the resource, but only if it was updated *this time*
|
45
|
+
# we ran an action on it.
|
46
|
+
if resource.updated_by_last_action?
|
47
|
+
run_context.immediate_notifications(resource).each do |notification|
|
48
|
+
Chef::Log.info("#{resource} sending #{notification.action} action to #{notification.resource} (immediate)")
|
49
|
+
run_action(notification.resource, notification.action, :immediate, resource)
|
50
|
+
end
|
51
|
+
|
52
|
+
run_context.delayed_notifications(resource).each do |notification|
|
53
|
+
# send the notification to the run_context of the receiving resource
|
54
|
+
notification.resource.run_context.add_delayed_action(notification)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
data/files/spec/cookbook_spec.rb
CHANGED
@@ -17,11 +17,14 @@ describe "compat_resource cookbook" do
|
|
17
17
|
File.join(cookbooks_path, 'normal'))
|
18
18
|
File.symlink(File.expand_path('../data/cookbooks/hybrid', __FILE__),
|
19
19
|
File.join(cookbooks_path, 'hybrid'))
|
20
|
+
File.symlink(File.expand_path('../data/cookbooks/notifications', __FILE__),
|
21
|
+
File.join(cookbooks_path, 'notifications'))
|
20
22
|
end
|
21
23
|
|
22
24
|
require 'chef/mixin/shell_out'
|
23
25
|
include Chef::Mixin::ShellOut
|
24
26
|
before :all do
|
27
|
+
FileUtils.rm_f(File.expand_path('../data/Gemfile.lock', __FILE__))
|
25
28
|
Bundler.with_clean_env do
|
26
29
|
shell_out!("bundle install --gemfile #{File.expand_path('../data/Gemfile', __FILE__)}")
|
27
30
|
end
|
@@ -34,6 +37,12 @@ describe "compat_resource cookbook" do
|
|
34
37
|
end
|
35
38
|
end
|
36
39
|
|
40
|
+
it "should handle new-style recursive notifications" do
|
41
|
+
result = run_chef("-o notifications")
|
42
|
+
puts result.stdout
|
43
|
+
puts result.stderr
|
44
|
+
end
|
45
|
+
|
37
46
|
it "when chef-client runs the test recipe, it succeeds" do
|
38
47
|
result = run_chef("-o test::test,test")
|
39
48
|
puts result.stdout
|
@@ -61,7 +70,7 @@ describe "compat_resource cookbook" do
|
|
61
70
|
# - set y to 4 \(default value\)
|
62
71
|
# /)
|
63
72
|
end
|
64
|
-
if
|
73
|
+
if Gem::Requirement.new("< 12.6").satisfied_by?(Gem::Version.new(Chef::VERSION))
|
65
74
|
it "when chef-client tries to declare_resource with extra parameters, it fails" do
|
66
75
|
expect {
|
67
76
|
run_chef("-o normal::declare_resource")
|
@@ -0,0 +1 @@
|
|
1
|
+
--- {}
|
@@ -1,12 +1,11 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
chef-zero (~> 4.1)
|
4
|
+
chef (12.0.3)
|
5
|
+
chef-zero (~> 3.2)
|
7
6
|
diff-lcs (~> 1.2, >= 1.2.4)
|
8
7
|
erubis (~> 2.7)
|
9
|
-
ffi-yajl (
|
8
|
+
ffi-yajl (~> 1.2)
|
10
9
|
highline (~> 1.6, >= 1.6.9)
|
11
10
|
mixlib-authentication (~> 1.3)
|
12
11
|
mixlib-cli (~> 1.4)
|
@@ -18,18 +17,9 @@ GEM
|
|
18
17
|
ohai (~> 8.0)
|
19
18
|
plist (~> 3.1.0)
|
20
19
|
pry (~> 0.9)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
rspec_junit_formatter (~> 0.2.0)
|
25
|
-
serverspec (~> 2.7)
|
26
|
-
specinfra (~> 2.10)
|
27
|
-
chef-config (12.8.1)
|
28
|
-
mixlib-config (~> 2.0)
|
29
|
-
mixlib-shellout (~> 2.0)
|
30
|
-
chef-zero (4.5.0)
|
31
|
-
ffi-yajl (~> 2.2)
|
32
|
-
hashie (>= 2.0, < 4.0)
|
20
|
+
chef-zero (3.2.1)
|
21
|
+
ffi-yajl (~> 1.1)
|
22
|
+
hashie (~> 2.0)
|
33
23
|
mixlib-log (~> 1.3)
|
34
24
|
rack
|
35
25
|
uuidtools (~> 2.1)
|
@@ -37,42 +27,40 @@ GEM
|
|
37
27
|
diff-lcs (1.2.5)
|
38
28
|
erubis (2.7.0)
|
39
29
|
ffi (1.9.10)
|
40
|
-
ffi-yajl (
|
30
|
+
ffi-yajl (1.4.0)
|
31
|
+
ffi (~> 1.5)
|
41
32
|
libyajl2 (~> 1.2)
|
42
|
-
hashie (
|
33
|
+
hashie (2.1.2)
|
43
34
|
highline (1.7.8)
|
44
35
|
ipaddress (0.8.3)
|
45
36
|
libyajl2 (1.2.0)
|
46
37
|
method_source (0.8.2)
|
38
|
+
mime-types (2.99.1)
|
47
39
|
mixlib-authentication (1.4.0)
|
48
40
|
mixlib-log
|
49
41
|
rspec-core (~> 3.2)
|
50
42
|
rspec-expectations (~> 3.2)
|
51
43
|
rspec-mocks (~> 3.2)
|
52
|
-
mixlib-cli (1.
|
44
|
+
mixlib-cli (1.6.0)
|
53
45
|
mixlib-config (2.2.1)
|
54
46
|
mixlib-log (1.6.0)
|
55
47
|
mixlib-shellout (2.2.6)
|
56
|
-
multi_json (1.11.2)
|
57
|
-
net-scp (1.2.1)
|
58
|
-
net-ssh (>= 2.6.5)
|
59
48
|
net-ssh (2.9.4)
|
60
49
|
net-ssh-gateway (1.2.0)
|
61
50
|
net-ssh (>= 2.6.5)
|
62
51
|
net-ssh-multi (1.2.1)
|
63
52
|
net-ssh (>= 2.6.5)
|
64
53
|
net-ssh-gateway (>= 1.2.0)
|
65
|
-
|
66
|
-
ohai (8.12.1)
|
67
|
-
chef-config (>= 12.5.0.alpha.1, < 13)
|
54
|
+
ohai (8.4.0)
|
68
55
|
ffi (~> 1.9)
|
69
|
-
ffi-yajl (
|
56
|
+
ffi-yajl (>= 1.1, < 3.0)
|
70
57
|
ipaddress
|
58
|
+
mime-types (~> 2.0)
|
71
59
|
mixlib-cli
|
72
60
|
mixlib-config (~> 2.0)
|
73
61
|
mixlib-log
|
74
62
|
mixlib-shellout (~> 2.0)
|
75
|
-
|
63
|
+
rake (~> 10.1)
|
76
64
|
systemu (~> 2.6.4)
|
77
65
|
wmi-lite (~> 1.0)
|
78
66
|
plist (3.1.0)
|
@@ -81,37 +69,17 @@ GEM
|
|
81
69
|
method_source (~> 0.8.1)
|
82
70
|
slop (~> 3.4)
|
83
71
|
rack (1.6.4)
|
84
|
-
|
85
|
-
rspec-core (~> 3.4.0)
|
86
|
-
rspec-expectations (~> 3.4.0)
|
87
|
-
rspec-mocks (~> 3.4.0)
|
72
|
+
rake (10.5.0)
|
88
73
|
rspec-core (3.4.4)
|
89
74
|
rspec-support (~> 3.4.0)
|
90
75
|
rspec-expectations (3.4.0)
|
91
76
|
diff-lcs (>= 1.2.0, < 2.0)
|
92
77
|
rspec-support (~> 3.4.0)
|
93
|
-
rspec-its (1.2.0)
|
94
|
-
rspec-core (>= 3.0.0)
|
95
|
-
rspec-expectations (>= 3.0.0)
|
96
78
|
rspec-mocks (3.4.1)
|
97
79
|
diff-lcs (>= 1.2.0, < 2.0)
|
98
80
|
rspec-support (~> 3.4.0)
|
99
81
|
rspec-support (3.4.1)
|
100
|
-
rspec_junit_formatter (0.2.3)
|
101
|
-
builder (< 4)
|
102
|
-
rspec-core (>= 2, < 4, != 2.12.0)
|
103
|
-
serverspec (2.31.0)
|
104
|
-
multi_json
|
105
|
-
rspec (~> 3.0)
|
106
|
-
rspec-its
|
107
|
-
specinfra (~> 2.53)
|
108
|
-
sfl (2.2)
|
109
82
|
slop (3.6.0)
|
110
|
-
specinfra (2.54.1)
|
111
|
-
net-scp
|
112
|
-
net-ssh (>= 2.7, < 3.1)
|
113
|
-
net-telnet
|
114
|
-
sfl
|
115
83
|
systemu (2.6.5)
|
116
84
|
uuidtools (2.1.5)
|
117
85
|
wmi-lite (1.0.0)
|
@@ -120,7 +88,7 @@ PLATFORMS
|
|
120
88
|
ruby
|
121
89
|
|
122
90
|
DEPENDENCIES
|
123
|
-
chef (~> 12.
|
91
|
+
chef (~> 12.0.0)
|
124
92
|
|
125
93
|
BUNDLED WITH
|
126
|
-
1.
|
94
|
+
1.12.1
|
data/files/spec/data/config.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: compat_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Keiser
|
8
8
|
autorequire:
|
9
9
|
bindir: files/bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -94,9 +94,13 @@ files:
|
|
94
94
|
- files/lib/chef_compat/copied_from_chef.rb
|
95
95
|
- files/lib/chef_compat/copied_from_chef/chef/constants.rb
|
96
96
|
- files/lib/chef_compat/copied_from_chef/chef/delayed_evaluator.rb
|
97
|
+
- files/lib/chef_compat/copied_from_chef/chef/dsl/core.rb
|
97
98
|
- files/lib/chef_compat/copied_from_chef/chef/dsl/declare_resource.rb
|
98
99
|
- files/lib/chef_compat/copied_from_chef/chef/dsl/recipe.rb
|
100
|
+
- files/lib/chef_compat/copied_from_chef/chef/mixin/lazy_module_include.rb
|
101
|
+
- files/lib/chef_compat/copied_from_chef/chef/mixin/notifying_block.rb
|
99
102
|
- files/lib/chef_compat/copied_from_chef/chef/mixin/params_validate.rb
|
103
|
+
- files/lib/chef_compat/copied_from_chef/chef/mixin/powershell_out.rb
|
100
104
|
- files/lib/chef_compat/copied_from_chef/chef/mixin/properties.rb
|
101
105
|
- files/lib/chef_compat/copied_from_chef/chef/property.rb
|
102
106
|
- files/lib/chef_compat/copied_from_chef/chef/provider.rb
|
@@ -114,7 +118,11 @@ files:
|
|
114
118
|
- files/lib/chef_compat/monkeypatches/chef/recipe.rb
|
115
119
|
- files/lib/chef_compat/monkeypatches/chef/resource.rb
|
116
120
|
- files/lib/chef_compat/monkeypatches/chef/resource/lwrp_base.rb
|
121
|
+
- files/lib/chef_compat/monkeypatches/chef/resource_collection.rb
|
122
|
+
- files/lib/chef_compat/monkeypatches/chef/resource_collection/resource_list.rb
|
123
|
+
- files/lib/chef_compat/monkeypatches/chef/resource_collection/resource_set.rb
|
117
124
|
- files/lib/chef_compat/monkeypatches/chef/run_context.rb
|
125
|
+
- files/lib/chef_compat/monkeypatches/chef/runner.rb
|
118
126
|
- files/lib/chef_compat/property.rb
|
119
127
|
- files/lib/chef_compat/recipe.rb
|
120
128
|
- files/lib/chef_compat/resource.rb
|
@@ -123,6 +131,7 @@ files:
|
|
123
131
|
- files/lib/compat_resource/gemspec.rb
|
124
132
|
- files/lib/compat_resource/version.rb
|
125
133
|
- files/spec/cookbook_spec.rb
|
134
|
+
- files/spec/data/.bundle/config
|
126
135
|
- files/spec/data/Gemfile
|
127
136
|
- files/spec/data/Gemfile.lock
|
128
137
|
- files/spec/data/config.rb
|
@@ -141,6 +150,9 @@ files:
|
|
141
150
|
- files/spec/data/cookbooks/normal/providers/resource.rb
|
142
151
|
- files/spec/data/cookbooks/normal/recipes/declare_resource.rb
|
143
152
|
- files/spec/data/cookbooks/normal/resources/resource.rb
|
153
|
+
- files/spec/data/cookbooks/notifications/metadata.rb
|
154
|
+
- files/spec/data/cookbooks/notifications/recipes/default.rb
|
155
|
+
- files/spec/data/cookbooks/notifications/resources/resource.rb
|
144
156
|
- files/spec/data/cookbooks/test/metadata.rb
|
145
157
|
- files/spec/data/cookbooks/test/recipes/default.rb
|
146
158
|
- files/spec/data/cookbooks/test/recipes/test.rb
|
@@ -166,7 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
178
|
version: '0'
|
167
179
|
requirements: []
|
168
180
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.
|
181
|
+
rubygems_version: 2.4.8
|
170
182
|
signing_key:
|
171
183
|
specification_version: 4
|
172
184
|
summary: Bring some new features of Chef 12.5 to previous 12.X releases
|