chef 12.4.3 → 12.5.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -2
  3. data/lib/chef.rb +1 -1
  4. data/lib/chef/application/solo.rb +1 -1
  5. data/lib/chef/application/windows_service_manager.rb +17 -12
  6. data/lib/chef/chef_class.rb +7 -0
  7. data/lib/chef/chef_fs/config.rb +22 -24
  8. data/lib/chef/chef_fs/file_pattern.rb +4 -15
  9. data/lib/chef/chef_fs/file_system/cookbook_dir.rb +1 -0
  10. data/lib/chef/chef_fs/knife.rb +35 -7
  11. data/lib/chef/chef_fs/path_utils.rb +65 -34
  12. data/lib/chef/constants.rb +27 -0
  13. data/lib/chef/delayed_evaluator.rb +21 -0
  14. data/lib/chef/dsl/recipe.rb +20 -2
  15. data/lib/chef/event_dispatch/base.rb +40 -16
  16. data/lib/chef/event_dispatch/dsl.rb +64 -0
  17. data/lib/chef/exceptions.rb +6 -1
  18. data/lib/chef/formatters/doc.rb +3 -1
  19. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -1
  20. data/lib/chef/http/http_request.rb +1 -1
  21. data/lib/chef/knife/bootstrap/templates/chef-full.erb +1 -1
  22. data/lib/chef/knife/ssl_check.rb +3 -2
  23. data/lib/chef/knife/user_edit.rb +1 -2
  24. data/lib/chef/mixin/params_validate.rb +362 -135
  25. data/lib/chef/node.rb +19 -0
  26. data/lib/chef/platform/handler_map.rb +0 -5
  27. data/lib/chef/platform/rebooter.rb +1 -1
  28. data/lib/chef/property.rb +539 -0
  29. data/lib/chef/provider.rb +129 -12
  30. data/lib/chef/provider/deploy.rb +3 -5
  31. data/lib/chef/provider/lwrp_base.rb +1 -75
  32. data/lib/chef/provider/package.rb +1 -1
  33. data/lib/chef/provider/powershell_script.rb +32 -19
  34. data/lib/chef/provider/registry_key.rb +5 -5
  35. data/lib/chef/provider/service/macosx.rb +5 -1
  36. data/lib/chef/recipe.rb +1 -8
  37. data/lib/chef/resource.rb +499 -84
  38. data/lib/chef/resource/file/verification.rb +7 -1
  39. data/lib/chef/resource/lwrp_base.rb +1 -7
  40. data/lib/chef/run_context.rb +404 -83
  41. data/lib/chef/version.rb +1 -1
  42. data/lib/chef/win32/registry.rb +10 -2
  43. data/lib/chef/workstation_config_loader.rb +3 -158
  44. data/spec/data/run_context/cookbooks/include/recipes/default.rb +24 -0
  45. data/spec/data/run_context/cookbooks/include/recipes/includee.rb +3 -0
  46. data/spec/functional/rebooter_spec.rb +1 -1
  47. data/spec/functional/resource/{powershell_spec.rb → powershell_script_spec.rb} +3 -3
  48. data/spec/functional/win32/registry_helper_spec.rb +12 -0
  49. data/spec/functional/win32/service_manager_spec.rb +2 -2
  50. data/spec/integration/knife/chef_repo_path_spec.rb +13 -11
  51. data/spec/integration/recipes/recipe_dsl_spec.rb +0 -15
  52. data/spec/integration/recipes/resource_action_spec.rb +343 -0
  53. data/spec/spec_helper.rb +1 -0
  54. data/spec/support/shared/functional/win32_service.rb +2 -1
  55. data/spec/unit/application/solo_spec.rb +4 -3
  56. data/spec/unit/chef_class_spec.rb +23 -0
  57. data/spec/unit/chef_fs/path_util_spec.rb +108 -0
  58. data/spec/unit/event_dispatch/dsl_spec.rb +87 -0
  59. data/spec/unit/json_compat_spec.rb +4 -3
  60. data/spec/unit/knife/ssl_check_spec.rb +4 -0
  61. data/spec/unit/mixin/params_validate_spec.rb +4 -2
  62. data/spec/unit/node_spec.rb +7 -0
  63. data/spec/unit/property/state_spec.rb +506 -0
  64. data/spec/unit/property/validation_spec.rb +658 -0
  65. data/spec/unit/property_spec.rb +968 -0
  66. data/spec/unit/provider/{powershell_spec.rb → powershell_script_spec.rb} +0 -0
  67. data/spec/unit/provider/registry_key_spec.rb +12 -0
  68. data/spec/unit/provider/service/macosx_spec.rb +4 -4
  69. data/spec/unit/provider_spec.rb +1 -3
  70. data/spec/unit/recipe_spec.rb +0 -4
  71. data/spec/unit/registry_helper_spec.rb +15 -1
  72. data/spec/unit/resource/file/verification_spec.rb +33 -5
  73. data/spec/unit/resource/{powershell_spec.rb → powershell_script_spec.rb} +0 -0
  74. data/spec/unit/resource_spec.rb +2 -2
  75. data/spec/unit/run_context/child_run_context_spec.rb +133 -0
  76. data/spec/unit/run_context_spec.rb +7 -0
  77. metadata +25 -25
  78. data/spec/unit/workstation_config_loader_spec.rb +0 -283
@@ -77,6 +77,18 @@ shared_examples_for "a registry key" do
77
77
  end
78
78
 
79
79
  describe "action_create" do
80
+ context "when a case insensitive match for the key exists" do
81
+ before(:each) do
82
+ expect(@double_registry).to receive(:key_exists?).twice.with(keyname.downcase).and_return(true)
83
+ end
84
+ it "should do nothing if the if a case insensitive key and the value both exist" do
85
+ @provider.new_resource.key(keyname.downcase)
86
+ expect(@double_registry).to receive(:get_values).with(keyname.downcase).and_return( testval1 )
87
+ expect(@double_registry).not_to receive(:set_value)
88
+ @provider.load_current_resource
89
+ @provider.action_create
90
+ end
91
+ end
80
92
  context "when the key exists" do
81
93
  before(:each) do
82
94
  expect(@double_registry).to receive(:key_exists?).twice.with(keyname).and_return(true)
@@ -60,15 +60,15 @@ XML
60
60
 
61
61
  ["Daemon", "Agent"].each do |service_type|
62
62
  ["redis-server", "io.redis.redis-server"].each do |service_name|
63
- ["10.9", "10.10"].each do |platform_version|
63
+ ["10.9", "10.10", "10.11"].each do |platform_version|
64
64
  let(:plist) {'/Library/LaunchDaemons/io.redis.redis-server.plist'}
65
65
  let(:session) { StringIO.new }
66
66
  if service_type == 'Agent'
67
67
  let(:plist) {'/Library/LaunchAgents/io.redis.redis-server.plist'}
68
68
  let(:session) {'-S Aqua '}
69
- let(:su_cmd) {'su igor -c'}
70
- if platform_version != "10.10"
71
- let(:su_cmd) {'su -l igor -c'}
69
+ let(:su_cmd) {'su -l igor -c'}
70
+ if platform_version == "10.9"
71
+ let(:su_cmd) {'su igor -c'}
72
72
  end
73
73
  end
74
74
  let(:service_label) {'io.redis.redis-server'}
@@ -114,9 +114,7 @@ describe Chef::Provider do
114
114
  end
115
115
 
116
116
  it "does not re-load recipes when creating the temporary run context" do
117
- # we actually want to test that RunContext#load is never called, but we
118
- # can't stub all instances of an object with rspec's mocks. :/
119
- allow(Chef::RunContext).to receive(:new).and_raise("not supposed to happen")
117
+ expect_any_instance_of(Chef::RunContext).not_to receive(:load)
120
118
  snitch = Proc.new {temporary_collection = @run_context.resource_collection}
121
119
  @provider.send(:recipe_eval, &snitch)
122
120
  end
@@ -154,8 +154,6 @@ describe Chef::Recipe do
154
154
  end
155
155
 
156
156
  it "selects the first one alphabetically" do
157
- expect(Chef::Log).to receive(:warn).with("You declared a new resource TottenhamHotspur for resource football, but it comes alphabetically after Sounders and has the same filters ({:platform=>\"nbc_sports\"}), so it will not be used. Use override: true if you want to use it for football.")
158
-
159
157
  Sounders.provides :football, platform: "nbc_sports"
160
158
  TottenhamHotspur.provides :football, platform: "nbc_sports"
161
159
 
@@ -165,8 +163,6 @@ describe Chef::Recipe do
165
163
  end
166
164
 
167
165
  it "selects the first one alphabetically even if the declaration order is reversed" do
168
- expect(Chef::Log).to receive(:warn).with("You are overriding football2 on {:platform=>\"nbc_sports\"} with Sounders: used to be TottenhamHotspur. Use override: true if this is what you intended.")
169
-
170
166
  TottenhamHotspur.provides :football2, platform: "nbc_sports"
171
167
  Sounders.provides :football2, platform: "nbc_sports"
172
168
 
@@ -21,6 +21,7 @@ require 'spec_helper'
21
21
  describe Chef::Provider::RegistryKey do
22
22
 
23
23
  let(:value1) { { :name => "one", :type => :string, :data => "1" } }
24
+ let(:value1_upcase_name) { {:name => "ONE", :type => :string, :data => "1"} }
24
25
  let(:key_path) { 'HKCU\Software\OpscodeNumbers' }
25
26
  let(:key) { 'Software\OpscodeNumbers' }
26
27
  let(:key_parent) { 'Software' }
@@ -71,7 +72,20 @@ describe Chef::Provider::RegistryKey do
71
72
  expect(@registry).to receive(:data_exists?).with(key_path, value1).and_return(true)
72
73
  @registry.set_value(key_path, value1)
73
74
  end
74
-
75
+ it "does nothing if case insensitive key and hive and value exist" do
76
+ expect(@registry).to receive(:key_exists!).with(key_path.downcase).and_return(true)
77
+ expect(@registry).to receive(:get_hive_and_key).with(key_path.downcase).and_return([@hive_mock, key])
78
+ expect(@registry).to receive(:value_exists?).with(key_path.downcase, value1).and_return(true)
79
+ expect(@registry).to receive(:data_exists?).with(key_path.downcase, value1).and_return(true)
80
+ @registry.set_value(key_path.downcase, value1)
81
+ end
82
+ it "does nothing if key and hive and value with a case insensitive name exist" do
83
+ expect(@registry).to receive(:key_exists!).with(key_path.downcase).and_return(true)
84
+ expect(@registry).to receive(:get_hive_and_key).with(key_path.downcase).and_return([@hive_mock, key])
85
+ expect(@registry).to receive(:value_exists?).with(key_path.downcase, value1_upcase_name).and_return(true)
86
+ expect(@registry).to receive(:data_exists?).with(key_path.downcase, value1_upcase_name).and_return(true)
87
+ @registry.set_value(key_path.downcase, value1_upcase_name)
88
+ end
75
89
  it "updates value if key and hive and value exist, but data is different" do
76
90
  expect(@registry).to receive(:key_exists!).with(key_path).and_return(true)
77
91
  expect(@registry).to receive(:get_hive_and_key).with(key_path).and_return([@hive_mock, key])
@@ -69,12 +69,40 @@ describe Chef::Resource::File::Verification do
69
69
  end
70
70
 
71
71
  context "with a verification command(String)" do
72
+ before(:each) do
73
+ allow(Chef::Log).to receive(:deprecation).and_return(nil)
74
+ end
75
+
76
+ def platform_specific_verify_command(variable_name)
77
+ if windows?
78
+ "if \"#{temp_path}\" == \"%{#{variable_name}}\" (exit 0) else (exit 1)"
79
+ else
80
+ "test #{temp_path} = %{#{variable_name}}"
81
+ end
82
+ end
83
+
72
84
  it "substitutes \%{file} with the path" do
73
- test_command = if windows?
74
- "if \"#{temp_path}\" == \"%{file}\" (exit 0) else (exit 1)"
75
- else
76
- "test #{temp_path} = %{file}"
77
- end
85
+ test_command = platform_specific_verify_command('file')
86
+ v = Chef::Resource::File::Verification.new(parent_resource, test_command, {})
87
+ expect(v.verify(temp_path)).to eq(true)
88
+ end
89
+
90
+ it "warns about deprecation when \%{file} is used" do
91
+ expect(Chef::Log).to receive(:deprecation).with(/%{file} is deprecated/)
92
+ test_command = platform_specific_verify_command('file')
93
+ Chef::Resource::File::Verification.new(parent_resource, test_command, {})
94
+ .verify(temp_path)
95
+ end
96
+
97
+ it "does not warn about deprecation when \%{file} is not used" do
98
+ expect(Chef::Log).to_not receive(:deprecation)
99
+ test_command = platform_specific_verify_command('path')
100
+ Chef::Resource::File::Verification.new(parent_resource, test_command, {})
101
+ .verify(temp_path)
102
+ end
103
+
104
+ it "substitutes \%{path} with the path" do
105
+ test_command = platform_specific_verify_command('path')
78
106
  v = Chef::Resource::File::Verification.new(parent_resource, test_command, {})
79
107
  expect(v.verify(temp_path)).to eq(true)
80
108
  end
@@ -59,8 +59,8 @@ describe Chef::Resource do
59
59
  end
60
60
 
61
61
  describe "when declaring the identity attribute" do
62
- it "has no identity attribute by default" do
63
- expect(Chef::Resource.identity_attr).to be_nil
62
+ it "has :name as identity attribute by default" do
63
+ expect(Chef::Resource.identity_attr).to eq(:name)
64
64
  end
65
65
 
66
66
  it "sets an identity attribute" do
@@ -0,0 +1,133 @@
1
+ #
2
+ # Author:: Adam Jacob (<adam@opscode.com>)
3
+ # Author:: Tim Hinderliter (<tim@opscode.com>)
4
+ # Author:: Christopher Walters (<cw@opscode.com>)
5
+ # Copyright:: Copyright (c) 2008, 2010 Opscode, 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
+ require 'spec_helper'
22
+ require 'support/lib/library_load_order'
23
+
24
+ describe Chef::RunContext::ChildRunContext do
25
+ context "with a run context with stuff in it" do
26
+ let(:chef_repo_path) { File.expand_path(File.join(CHEF_SPEC_DATA, "run_context", "cookbooks")) }
27
+ let(:cookbook_collection) {
28
+ cl = Chef::CookbookLoader.new(chef_repo_path)
29
+ cl.load_cookbooks
30
+ Chef::CookbookCollection.new(cl)
31
+ }
32
+ let(:node) {
33
+ node = Chef::Node.new
34
+ node.run_list << "test" << "test::one" << "test::two"
35
+ node
36
+ }
37
+ let(:events) { Chef::EventDispatch::Dispatcher.new }
38
+ let(:run_context) { Chef::RunContext.new(node, cookbook_collection, events) }
39
+
40
+ context "and a child run context" do
41
+ let(:child) { run_context.create_child }
42
+
43
+ it "parent_run_context is set to the parent" do
44
+ expect(child.parent_run_context).to eq run_context
45
+ end
46
+
47
+ it "audits is not the same as the parent" do
48
+ expect(child.audits.object_id).not_to eq run_context.audits.object_id
49
+ child.audits['hi'] = 'lo'
50
+ expect(child.audits['hi']).to eq('lo')
51
+ expect(run_context.audits['hi']).not_to eq('lo')
52
+ end
53
+
54
+ it "resource_collection is not the same as the parent" do
55
+ expect(child.resource_collection.object_id).not_to eq run_context.resource_collection.object_id
56
+ f = Chef::Resource::File.new('hi', child)
57
+ child.resource_collection.insert(f)
58
+ expect(child.resource_collection).to include f
59
+ expect(run_context.resource_collection).not_to include f
60
+ end
61
+
62
+ it "immediate_notification_collection is not the same as the parent" do
63
+ expect(child.immediate_notification_collection.object_id).not_to eq run_context.immediate_notification_collection.object_id
64
+ src = Chef::Resource::File.new('hi', child)
65
+ dest = Chef::Resource::File.new('argh', child)
66
+ notification = Chef::Resource::Notification.new(dest, :create, src)
67
+ child.notifies_immediately(notification)
68
+ expect(child.immediate_notification_collection['file[hi]']).to eq([notification])
69
+ expect(run_context.immediate_notification_collection['file[hi]']).not_to eq([notification])
70
+ end
71
+
72
+ it "immediate_notifications is not the same as the parent" do
73
+ src = Chef::Resource::File.new('hi', child)
74
+ dest = Chef::Resource::File.new('argh', child)
75
+ notification = Chef::Resource::Notification.new(dest, :create, src)
76
+ child.notifies_immediately(notification)
77
+ expect(child.immediate_notifications(src)).to eq([notification])
78
+ expect(run_context.immediate_notifications(src)).not_to eq([notification])
79
+ end
80
+
81
+ it "delayed_notification_collection is not the same as the parent" do
82
+ expect(child.delayed_notification_collection.object_id).not_to eq run_context.delayed_notification_collection.object_id
83
+ src = Chef::Resource::File.new('hi', child)
84
+ dest = Chef::Resource::File.new('argh', child)
85
+ notification = Chef::Resource::Notification.new(dest, :create, src)
86
+ child.notifies_delayed(notification)
87
+ expect(child.delayed_notification_collection['file[hi]']).to eq([notification])
88
+ expect(run_context.delayed_notification_collection['file[hi]']).not_to eq([notification])
89
+ end
90
+
91
+ it "delayed_notifications is not the same as the parent" do
92
+ src = Chef::Resource::File.new('hi', child)
93
+ dest = Chef::Resource::File.new('argh', child)
94
+ notification = Chef::Resource::Notification.new(dest, :create, src)
95
+ child.notifies_delayed(notification)
96
+ expect(child.delayed_notifications(src)).to eq([notification])
97
+ expect(run_context.delayed_notifications(src)).not_to eq([notification])
98
+ end
99
+
100
+ it "create_child creates a child-of-child" do
101
+ c = child.create_child
102
+ expect(c.parent_run_context).to eq child
103
+ end
104
+
105
+ context "after load('include::default')" do
106
+ before do
107
+ run_list = Chef::RunList.new('include::default').expand('_default')
108
+ # TODO not sure why we had to do this to get everything to work ...
109
+ node.automatic_attrs[:recipes] = []
110
+ child.load(run_list)
111
+ end
112
+
113
+ it "load_recipe loads into the child" do
114
+ expect(child.resource_collection).to be_empty
115
+ child.load_recipe("include::includee")
116
+ expect(child.resource_collection).not_to be_empty
117
+ end
118
+
119
+ it "include_recipe loads into the child" do
120
+ expect(child.resource_collection).to be_empty
121
+ child.include_recipe("include::includee")
122
+ expect(child.resource_collection).not_to be_empty
123
+ end
124
+
125
+ it "load_recipe_file loads into the child" do
126
+ expect(child.resource_collection).to be_empty
127
+ child.load_recipe_file(File.expand_path("include/recipes/includee.rb", chef_repo_path))
128
+ expect(child.resource_collection).not_to be_empty
129
+ end
130
+ end
131
+ end
132
+ end
133
+ end
@@ -68,6 +68,9 @@ describe Chef::RunContext do
68
68
  "dependency2" => {
69
69
  "version" => "0.0.0",
70
70
  },
71
+ "include" => {
72
+ "version" => "0.0.0",
73
+ },
71
74
  "no-default-attr" => {
72
75
  "version" => "0.0.0",
73
76
  },
@@ -84,6 +87,10 @@ describe Chef::RunContext do
84
87
  )
85
88
  end
86
89
 
90
+ it "has a nil parent_run_context" do
91
+ expect(run_context.parent_run_context).to be_nil
92
+ end
93
+
87
94
  describe "loading cookbooks for a run list" do
88
95
  before do
89
96
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.4.3
4
+ version: 12.5.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-23 00:00:00.000000000 Z
11
+ date: 2015-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-config
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 12.4.3
19
+ version: 12.5.0.alpha.1
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: 12.4.3
26
+ version: 12.5.0.alpha.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mixlib-cli
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -75,7 +75,7 @@ dependencies:
75
75
  version: 2.0.0.rc.0
76
76
  - - "<"
77
77
  - !ruby/object:Gem::Version
78
- version: '2.2'
78
+ version: '3.0'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,7 +85,7 @@ dependencies:
85
85
  version: 2.0.0.rc.0
86
86
  - - "<"
87
87
  - !ruby/object:Gem::Version
88
- version: '2.2'
88
+ version: '3.0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: ohai
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -93,9 +93,6 @@ dependencies:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '8.0'
96
- - - "<"
97
- - !ruby/object:Gem::Version
98
- version: '8.6'
99
96
  type: :runtime
100
97
  prerelease: false
101
98
  version_requirements: !ruby/object:Gem::Requirement
@@ -103,9 +100,6 @@ dependencies:
103
100
  - - "~>"
104
101
  - !ruby/object:Gem::Version
105
102
  version: '8.0'
106
- - - "<"
107
- - !ruby/object:Gem::Version
108
- version: '8.6'
109
103
  - !ruby/object:Gem::Dependency
110
104
  name: ffi-yajl
111
105
  requirement: !ruby/object:Gem::Requirement
@@ -212,9 +206,6 @@ dependencies:
212
206
  - - ">="
213
207
  - !ruby/object:Gem::Version
214
208
  version: 4.2.2
215
- - - "<"
216
- - !ruby/object:Gem::Version
217
- version: 4.3.0
218
209
  type: :runtime
219
210
  prerelease: false
220
211
  version_requirements: !ruby/object:Gem::Requirement
@@ -225,9 +216,6 @@ dependencies:
225
216
  - - ">="
226
217
  - !ruby/object:Gem::Version
227
218
  version: 4.2.2
228
- - - "<"
229
- - !ruby/object:Gem::Version
230
- version: 4.3.0
231
219
  - !ruby/object:Gem::Dependency
232
220
  name: pry
233
221
  requirement: !ruby/object:Gem::Requirement
@@ -675,6 +663,7 @@ files:
675
663
  - lib/chef/client.rb
676
664
  - lib/chef/config.rb
677
665
  - lib/chef/config_fetcher.rb
666
+ - lib/chef/constants.rb
678
667
  - lib/chef/cookbook/chefignore.rb
679
668
  - lib/chef/cookbook/cookbook_collection.rb
680
669
  - lib/chef/cookbook/cookbook_version_loader.rb
@@ -692,6 +681,7 @@ files:
692
681
  - lib/chef/daemon.rb
693
682
  - lib/chef/data_bag.rb
694
683
  - lib/chef/data_bag_item.rb
684
+ - lib/chef/delayed_evaluator.rb
695
685
  - lib/chef/deprecation/mixin/template.rb
696
686
  - lib/chef/deprecation/provider/cookbook_file.rb
697
687
  - lib/chef/deprecation/provider/file.rb
@@ -725,6 +715,7 @@ files:
725
715
  - lib/chef/environment.rb
726
716
  - lib/chef/event_dispatch/base.rb
727
717
  - lib/chef/event_dispatch/dispatcher.rb
718
+ - lib/chef/event_dispatch/dsl.rb
728
719
  - lib/chef/event_dispatch/events_output_stream.rb
729
720
  - lib/chef/event_loggers/base.rb
730
721
  - lib/chef/event_loggers/windows_eventlog.rb
@@ -985,6 +976,7 @@ files:
985
976
  - lib/chef/policy_builder.rb
986
977
  - lib/chef/policy_builder/expand_node_object.rb
987
978
  - lib/chef/policy_builder/policyfile.rb
979
+ - lib/chef/property.rb
988
980
  - lib/chef/provider.rb
989
981
  - lib/chef/provider/batch.rb
990
982
  - lib/chef/provider/breakpoint.rb
@@ -1503,6 +1495,8 @@ files:
1503
1495
  - spec/data/run_context/cookbooks/dependency2/providers/provider.rb
1504
1496
  - spec/data/run_context/cookbooks/dependency2/recipes/default.rb
1505
1497
  - spec/data/run_context/cookbooks/dependency2/resources/resource.rb
1498
+ - spec/data/run_context/cookbooks/include/recipes/default.rb
1499
+ - spec/data/run_context/cookbooks/include/recipes/includee.rb
1506
1500
  - spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb
1507
1501
  - spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb
1508
1502
  - spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb
@@ -1600,7 +1594,7 @@ files:
1600
1594
  - spec/functional/resource/mount_spec.rb
1601
1595
  - spec/functional/resource/ohai_spec.rb
1602
1596
  - spec/functional/resource/package_spec.rb
1603
- - spec/functional/resource/powershell_spec.rb
1597
+ - spec/functional/resource/powershell_script_spec.rb
1604
1598
  - spec/functional/resource/reboot_spec.rb
1605
1599
  - spec/functional/resource/registry_spec.rb
1606
1600
  - spec/functional/resource/remote_directory_spec.rb
@@ -1646,6 +1640,7 @@ files:
1646
1640
  - spec/integration/recipes/lwrp_spec.rb
1647
1641
  - spec/integration/recipes/provider_choice.rb
1648
1642
  - spec/integration/recipes/recipe_dsl_spec.rb
1643
+ - spec/integration/recipes/resource_action_spec.rb
1649
1644
  - spec/integration/solo/solo_spec.rb
1650
1645
  - spec/rcov.opts
1651
1646
  - spec/scripts/ssl-serve.rb
@@ -1731,6 +1726,7 @@ files:
1731
1726
  - spec/unit/chef_fs/file_system/operation_failed_error_spec.rb
1732
1727
  - spec/unit/chef_fs/file_system_spec.rb
1733
1728
  - spec/unit/chef_fs/parallelizer.rb
1729
+ - spec/unit/chef_fs/path_util_spec.rb
1734
1730
  - spec/unit/chef_spec.rb
1735
1731
  - spec/unit/client_spec.rb
1736
1732
  - spec/unit/config_fetcher_spec.rb
@@ -1763,6 +1759,7 @@ files:
1763
1759
  - spec/unit/encrypted_data_bag_item_spec.rb
1764
1760
  - spec/unit/environment_spec.rb
1765
1761
  - spec/unit/event_dispatch/dispatcher_spec.rb
1762
+ - spec/unit/event_dispatch/dsl_spec.rb
1766
1763
  - spec/unit/exceptions_spec.rb
1767
1764
  - spec/unit/file_access_control_spec.rb
1768
1765
  - spec/unit/file_cache_spec.rb
@@ -1929,6 +1926,9 @@ files:
1929
1926
  - spec/unit/policy_builder/expand_node_object_spec.rb
1930
1927
  - spec/unit/policy_builder/policyfile_spec.rb
1931
1928
  - spec/unit/policy_builder_spec.rb
1929
+ - spec/unit/property/state_spec.rb
1930
+ - spec/unit/property/validation_spec.rb
1931
+ - spec/unit/property_spec.rb
1932
1932
  - spec/unit/provider/breakpoint_spec.rb
1933
1933
  - spec/unit/provider/cookbook_file/content_spec.rb
1934
1934
  - spec/unit/provider/cookbook_file_spec.rb
@@ -1993,7 +1993,7 @@ files:
1993
1993
  - spec/unit/provider/package/zypper_spec.rb
1994
1994
  - spec/unit/provider/package_spec.rb
1995
1995
  - spec/unit/provider/package_spec.rbe
1996
- - spec/unit/provider/powershell_spec.rb
1996
+ - spec/unit/provider/powershell_script_spec.rb
1997
1997
  - spec/unit/provider/registry_key_spec.rb
1998
1998
  - spec/unit/provider/remote_directory_spec.rb
1999
1999
  - spec/unit/provider/remote_file/cache_control_data_spec.rb
@@ -2081,7 +2081,7 @@ files:
2081
2081
  - spec/unit/resource/pacman_package_spec.rb
2082
2082
  - spec/unit/resource/perl_spec.rb
2083
2083
  - spec/unit/resource/portage_package_spec.rb
2084
- - spec/unit/resource/powershell_spec.rb
2084
+ - spec/unit/resource/powershell_script_spec.rb
2085
2085
  - spec/unit/resource/python_spec.rb
2086
2086
  - spec/unit/resource/registry_key_spec.rb
2087
2087
  - spec/unit/resource/remote_directory_spec.rb
@@ -2115,6 +2115,7 @@ files:
2115
2115
  - spec/unit/rest/auth_credentials_spec.rb
2116
2116
  - spec/unit/rest_spec.rb
2117
2117
  - spec/unit/role_spec.rb
2118
+ - spec/unit/run_context/child_run_context_spec.rb
2118
2119
  - spec/unit/run_context/cookbook_compiler_spec.rb
2119
2120
  - spec/unit/run_context_spec.rb
2120
2121
  - spec/unit/run_list/run_list_expansion_spec.rb
@@ -2150,7 +2151,6 @@ files:
2150
2151
  - spec/unit/version_constraint/platform_spec.rb
2151
2152
  - spec/unit/version_constraint_spec.rb
2152
2153
  - spec/unit/windows_service_spec.rb
2153
- - spec/unit/workstation_config_loader_spec.rb
2154
2154
  - tasks/external_tests.rb
2155
2155
  - tasks/maintainers.rb
2156
2156
  - tasks/rspec.rb
@@ -2169,12 +2169,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
2169
2169
  version: 2.0.0
2170
2170
  required_rubygems_version: !ruby/object:Gem::Requirement
2171
2171
  requirements:
2172
- - - ">="
2172
+ - - ">"
2173
2173
  - !ruby/object:Gem::Version
2174
- version: '0'
2174
+ version: 1.3.1
2175
2175
  requirements: []
2176
2176
  rubyforge_project:
2177
- rubygems_version: 2.4.5
2177
+ rubygems_version: 2.4.4
2178
2178
  signing_key:
2179
2179
  specification_version: 4
2180
2180
  summary: A systems integration framework, built to bring the benefits of configuration