chef 13.3.42 → 13.4.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/lib/chef/knife/core/ui.rb +1 -1
- data/lib/chef/mash.rb +6 -0
- data/lib/chef/mixin/deep_merge.rb +1 -1
- data/lib/chef/mixin/user_context.rb +52 -0
- data/lib/chef/node/attribute.rb +80 -14
- data/lib/chef/node/immutable_collections.rb +16 -19
- data/lib/chef/provider/apt_repository.rb +12 -10
- data/lib/chef/provider/git.rb +20 -3
- data/lib/chef/provider/ifconfig/redhat.rb +4 -0
- data/lib/chef/provider/launchd.rb +20 -0
- data/lib/chef/provider/package/dnf.rb +3 -1
- data/lib/chef/provider/remote_file.rb +19 -0
- data/lib/chef/provider/remote_file/fetcher.rb +3 -0
- data/lib/chef/provider/remote_file/network_file.rb +18 -5
- data/lib/chef/provider/service/macosx.rb +4 -3
- data/lib/chef/provider/windows_path.rb +62 -0
- data/lib/chef/provider/zypper_repository.rb +1 -1
- data/lib/chef/providers.rb +1 -0
- data/lib/chef/resource.rb +5 -1
- data/lib/chef/resource/apt_repository.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +36 -0
- data/lib/chef/resource/remote_file.rb +60 -0
- data/lib/chef/resource/windows_path.rb +41 -0
- data/lib/chef/resource/zypper_repository.rb +1 -0
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/shell.rb +1 -0
- data/lib/chef/shell/shell_session.rb +4 -4
- data/lib/chef/util/windows/logon_session.rb +126 -0
- data/lib/chef/version.rb +4 -3
- data/lib/chef/win32/api/security.rb +2 -0
- data/spec/functional/mixin/user_context_spec.rb +117 -0
- data/spec/functional/resource/remote_file_spec.rb +171 -0
- data/spec/functional/resource/windows_path_spec.rb +64 -0
- data/spec/unit/knife/client_delete_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +109 -0
- data/spec/unit/node/immutable_collections_spec.rb +12 -4
- data/spec/unit/node_spec.rb +7 -0
- data/spec/unit/provider/git_spec.rb +55 -0
- data/spec/unit/provider/ifconfig/redhat_spec.rb +8 -0
- data/spec/unit/provider/remote_file/fetcher_spec.rb +1 -0
- data/spec/unit/provider/remote_file/network_file_spec.rb +7 -2
- data/spec/unit/provider/service/macosx_spec.rb +4 -1
- data/spec/unit/provider/windows_path_spec.rb +65 -0
- data/spec/unit/resource/windows_path_spec.rb +38 -0
- data/spec/unit/resource_spec.rb +8 -0
- data/spec/unit/shell/shell_session_spec.rb +82 -58
- data/spec/unit/util/windows/logon_session_spec.rb +284 -0
- data/tasks/maintainers.rb +3 -3
- metadata +15 -5
@@ -0,0 +1,284 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Edwards (<adamed@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) 2015 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 "spec_helper"
|
20
|
+
require "chef/util/windows/logon_session"
|
21
|
+
|
22
|
+
describe ::Chef::Util::Windows::LogonSession do
|
23
|
+
before do
|
24
|
+
stub_const("Chef::ReservedNames::Win32::API::Security", Class.new)
|
25
|
+
stub_const("Chef::ReservedNames::Win32::API::Security::LOGON32_LOGON_NEW_CREDENTIALS", 314)
|
26
|
+
stub_const("Chef::ReservedNames::Win32::API::Security::LOGON32_PROVIDER_DEFAULT", 159)
|
27
|
+
stub_const("Chef::ReservedNames::Win32::API::System", Class.new )
|
28
|
+
end
|
29
|
+
|
30
|
+
let(:session) { ::Chef::Util::Windows::LogonSession.new(session_user, password, session_domain) }
|
31
|
+
|
32
|
+
shared_examples_for "it received syntactically invalid credentials" do
|
33
|
+
it "does not raisees an exception when it is initialized" do
|
34
|
+
expect { session }.to raise_error(ArgumentError)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
shared_examples_for "it received an incorrect username and password combination" do
|
39
|
+
before do
|
40
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:LogonUserW).and_return(false)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "raises a Chef::Exceptions::Win32APIError exception when the open method is called" do
|
44
|
+
expect { session.open }.to raise_error(Chef::Exceptions::Win32APIError)
|
45
|
+
expect(session).not_to receive(:close)
|
46
|
+
expect(Chef::ReservedNames::Win32::API::System).not_to receive(:CloseHandle)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
shared_examples_for "it received valid credentials" do
|
51
|
+
it "does not raise an exception when the open method is called" do
|
52
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:LogonUserW).and_return(true)
|
53
|
+
expect { session.open }.not_to raise_error
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
shared_examples_for "the session is not open" do
|
58
|
+
it "does not raise an exception when #open is called" do
|
59
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:LogonUserW).and_return(true)
|
60
|
+
expect { session.open }.not_to raise_error
|
61
|
+
end
|
62
|
+
|
63
|
+
it "raises an exception if #close is called" do
|
64
|
+
expect { session.close }.to raise_error(RuntimeError)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "raises an exception if #restore_user_context is called" do
|
68
|
+
expect { session.restore_user_context }.to raise_error(RuntimeError)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
shared_examples_for "the session is open" do
|
73
|
+
before do
|
74
|
+
allow(Chef::ReservedNames::Win32::API::System).to receive(:CloseHandle)
|
75
|
+
end
|
76
|
+
it "does not result in an exception when #restore_user_context is called" do
|
77
|
+
expect { session.restore_user_context }.not_to raise_error
|
78
|
+
end
|
79
|
+
|
80
|
+
it "does not result in an exception when #close is called" do
|
81
|
+
expect { session.close }.not_to raise_error
|
82
|
+
end
|
83
|
+
|
84
|
+
it "does close the operating system handle when #close is called" do
|
85
|
+
expect(Chef::ReservedNames::Win32::API::System).not_to receive(:CloseHandle)
|
86
|
+
expect { session.restore_user_context }.not_to raise_error
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
context "when the session is initialized with a nil user" do
|
91
|
+
context "when the password, and domain are all nil" do
|
92
|
+
let(:session_user) { nil }
|
93
|
+
let(:session_domain) { nil }
|
94
|
+
let(:password) { nil }
|
95
|
+
it_behaves_like "it received syntactically invalid credentials"
|
96
|
+
end
|
97
|
+
|
98
|
+
context "when the password is non-nil password, and the domain is nil" do
|
99
|
+
let(:session_user) { nil }
|
100
|
+
let(:password) { "ponies" }
|
101
|
+
let(:session_domain) { nil }
|
102
|
+
it_behaves_like "it received syntactically invalid credentials"
|
103
|
+
end
|
104
|
+
|
105
|
+
context "when the password is nil and the domain is non-nil" do
|
106
|
+
let(:session_user) { nil }
|
107
|
+
let(:password) { nil }
|
108
|
+
let(:session_domain) { "fairyland" }
|
109
|
+
it_behaves_like "it received syntactically invalid credentials"
|
110
|
+
end
|
111
|
+
|
112
|
+
context "when the password and domain are non-nil" do
|
113
|
+
let(:session_user) { nil }
|
114
|
+
let(:password) { "ponies" }
|
115
|
+
let(:session_domain) { "fairyland" }
|
116
|
+
it_behaves_like "it received syntactically invalid credentials"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
context "when the session is initialized with a valid user" do
|
121
|
+
let(:session_user) { "chalena" }
|
122
|
+
|
123
|
+
context "when the password is nil" do
|
124
|
+
let(:password) { nil }
|
125
|
+
context "when the domain is non-nil" do
|
126
|
+
let(:session_domain) { "fairyland" }
|
127
|
+
it_behaves_like "it received syntactically invalid credentials"
|
128
|
+
end
|
129
|
+
|
130
|
+
context "when the domain is nil" do
|
131
|
+
context "when the domain is non-nil" do
|
132
|
+
let(:session_domain) { nil }
|
133
|
+
it_behaves_like "it received syntactically invalid credentials"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
context "when a syntactically valid username and password are supplied" do
|
139
|
+
context "when the password is non-nil and the domain is nil" do
|
140
|
+
let(:password) { "ponies" }
|
141
|
+
let(:session_domain) { nil }
|
142
|
+
it "does not raise an exception if it is initialized with a non-nil username, non-nil password, and a nil domain" do
|
143
|
+
expect { session }.not_to raise_error
|
144
|
+
end
|
145
|
+
|
146
|
+
it_behaves_like "it received valid credentials"
|
147
|
+
it_behaves_like "it received an incorrect username and password combination"
|
148
|
+
end
|
149
|
+
|
150
|
+
context "when the password and domain are non-nil" do
|
151
|
+
let(:password) { "ponies" }
|
152
|
+
let(:session_domain) { "fairyland" }
|
153
|
+
it "does not raise an exception if it is initialized with a non-nil username, non-nil password, and non-nil domain" do
|
154
|
+
expect { session }.not_to raise_error
|
155
|
+
end
|
156
|
+
|
157
|
+
it_behaves_like "it received valid credentials"
|
158
|
+
it_behaves_like "it received an incorrect username and password combination"
|
159
|
+
end
|
160
|
+
|
161
|
+
context "when the #open method has not been called" do
|
162
|
+
let(:password) { "ponies" }
|
163
|
+
let(:session_domain) { "fairyland" }
|
164
|
+
it_behaves_like "the session is not open"
|
165
|
+
end
|
166
|
+
|
167
|
+
context "when the session was opened" do
|
168
|
+
let(:password) { "ponies" }
|
169
|
+
let(:session_domain) { "fairyland" }
|
170
|
+
|
171
|
+
before do
|
172
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:LogonUserW).and_return(true)
|
173
|
+
expect { session.open }.not_to raise_error
|
174
|
+
end
|
175
|
+
|
176
|
+
it "raises an exception if #open is called" do
|
177
|
+
expect { session.open }.to raise_error(RuntimeError)
|
178
|
+
end
|
179
|
+
|
180
|
+
context "when the session was opened and then closed with the #close method" do
|
181
|
+
before do
|
182
|
+
expect(Chef::ReservedNames::Win32::API::System).to receive(:CloseHandle)
|
183
|
+
expect { session.close }.not_to raise_error
|
184
|
+
end
|
185
|
+
it_behaves_like "the session is not open"
|
186
|
+
end
|
187
|
+
|
188
|
+
it "can be closed and close the operating system handle" do
|
189
|
+
expect(Chef::ReservedNames::Win32::API::System).to receive(:CloseHandle)
|
190
|
+
expect { session.close }.not_to raise_error
|
191
|
+
end
|
192
|
+
|
193
|
+
it "can impersonate the user" do
|
194
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:ImpersonateLoggedOnUser).and_return(true)
|
195
|
+
expect { session.set_user_context }.not_to raise_error
|
196
|
+
end
|
197
|
+
|
198
|
+
context "when #set_user_context fails due to low resources causing a failure to impersonate" do
|
199
|
+
before do
|
200
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:ImpersonateLoggedOnUser).and_return(false)
|
201
|
+
end
|
202
|
+
|
203
|
+
it "raises an exception when #set_user_context fails because impersonation failed" do
|
204
|
+
expect { session.set_user_context }.to raise_error(Chef::Exceptions::Win32APIError)
|
205
|
+
end
|
206
|
+
|
207
|
+
context "when calling subsequent methods" do
|
208
|
+
before do
|
209
|
+
expect { session.set_user_context }.to raise_error(Chef::Exceptions::Win32APIError)
|
210
|
+
expect(Chef::ReservedNames::Win32::API::Security).not_to receive(:RevertToSelf)
|
211
|
+
end
|
212
|
+
|
213
|
+
it_behaves_like "the session is open"
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
context "when #set_user_context successfully impersonates the user" do
|
218
|
+
before do
|
219
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:ImpersonateLoggedOnUser).and_return(true)
|
220
|
+
expect { session.set_user_context }.not_to raise_error
|
221
|
+
end
|
222
|
+
|
223
|
+
context "when attempting to impersonate while already impersonating" do
|
224
|
+
it "raises an error if the #set_user_context is called again" do
|
225
|
+
expect { session.set_user_context }.to raise_error(RuntimeError)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
describe "the impersonation will be reverted" do
|
230
|
+
before do
|
231
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:RevertToSelf).and_return(true)
|
232
|
+
end
|
233
|
+
it_behaves_like "the session is open"
|
234
|
+
end
|
235
|
+
|
236
|
+
context "when the attempt to revert impersonation fails" do
|
237
|
+
before do
|
238
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:RevertToSelf).and_return(false)
|
239
|
+
end
|
240
|
+
|
241
|
+
it "raises an exception when #restore_user_context is called" do
|
242
|
+
expect { session.restore_user_context }.to raise_error(Chef::Exceptions::Win32APIError)
|
243
|
+
end
|
244
|
+
|
245
|
+
it "raises an exception when #close is called and impersonation fails" do
|
246
|
+
expect { session.close }.to raise_error(Chef::Exceptions::Win32APIError)
|
247
|
+
end
|
248
|
+
|
249
|
+
context "when calling methods after revert fails in #restore_user_context" do
|
250
|
+
before do
|
251
|
+
expect { session.restore_user_context }.to raise_error(Chef::Exceptions::Win32APIError)
|
252
|
+
end
|
253
|
+
|
254
|
+
context "when revert continues to fail" do
|
255
|
+
before do
|
256
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:RevertToSelf).and_return(false)
|
257
|
+
end
|
258
|
+
it "raises an exception when #close is called and impersonation fails" do
|
259
|
+
expect { session.close }.to raise_error(Chef::Exceptions::Win32APIError)
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
context "when revert stops failing and succeeds" do
|
264
|
+
before do
|
265
|
+
expect(Chef::ReservedNames::Win32::API::Security).to receive(:RevertToSelf).and_return(true)
|
266
|
+
end
|
267
|
+
|
268
|
+
it "does not raise an exception when #restore_user_context is called" do
|
269
|
+
expect { session.restore_user_context }.not_to raise_error
|
270
|
+
end
|
271
|
+
|
272
|
+
it "does not raise an exception when #close is called" do
|
273
|
+
expect(Chef::ReservedNames::Win32::API::System).to receive(:CloseHandle)
|
274
|
+
expect { session.close }.not_to raise_error
|
275
|
+
end
|
276
|
+
end
|
277
|
+
end
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|
data/tasks/maintainers.rb
CHANGED
@@ -21,7 +21,7 @@ SOURCE = File.join(File.dirname(__FILE__), "..", "MAINTAINERS.toml")
|
|
21
21
|
TARGET = File.join(File.dirname(__FILE__), "..", "MAINTAINERS.md")
|
22
22
|
|
23
23
|
# The list of repositories that teams should own
|
24
|
-
REPOSITORIES = ["chef/chef", "chef/chef-census", "chef/chef-repo",
|
24
|
+
REPOSITORIES = ["chef/chef", "chef/chef-dk", "chef/chef-census", "chef/chef-repo",
|
25
25
|
"chef/client-docs", "chef/ffi-yajl", "chef/libyajl2-gem",
|
26
26
|
"chef/mixlib-authentication", "chef/mixlib-cli",
|
27
27
|
"chef/mixlib-config", "chef/mixlib-install", "chef/mixlib-log",
|
@@ -139,8 +139,8 @@ begin
|
|
139
139
|
update_team_privacy(team)
|
140
140
|
add_team_members(team, additions)
|
141
141
|
remove_team_members(team, deletions)
|
142
|
-
rescue
|
143
|
-
puts "failed for #{team}"
|
142
|
+
rescue => e
|
143
|
+
puts "failed for #{team}: #{e.message}"
|
144
144
|
end
|
145
145
|
|
146
146
|
def update_team_privacy(team)
|
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: 13.
|
4
|
+
version: 13.4.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-11 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: 13.
|
19
|
+
version: 13.4.19
|
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: 13.
|
26
|
+
version: 13.4.19
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mixlib-cli
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1146,6 +1146,7 @@ files:
|
|
1146
1146
|
- lib/chef/mixin/template.rb
|
1147
1147
|
- lib/chef/mixin/unformatter.rb
|
1148
1148
|
- lib/chef/mixin/uris.rb
|
1149
|
+
- lib/chef/mixin/user_context.rb
|
1149
1150
|
- lib/chef/mixin/versioned_api.rb
|
1150
1151
|
- lib/chef/mixin/which.rb
|
1151
1152
|
- lib/chef/mixin/why_run.rb
|
@@ -1325,6 +1326,7 @@ files:
|
|
1325
1326
|
- lib/chef/provider/user/useradd.rb
|
1326
1327
|
- lib/chef/provider/user/windows.rb
|
1327
1328
|
- lib/chef/provider/whyrun_safe_ruby_block.rb
|
1329
|
+
- lib/chef/provider/windows_path.rb
|
1328
1330
|
- lib/chef/provider/windows_script.rb
|
1329
1331
|
- lib/chef/provider/windows_task.rb
|
1330
1332
|
- lib/chef/provider/yum_repository.rb
|
@@ -1421,6 +1423,7 @@ files:
|
|
1421
1423
|
- lib/chef/resource/user/windows_user.rb
|
1422
1424
|
- lib/chef/resource/whyrun_safe_ruby_block.rb
|
1423
1425
|
- lib/chef/resource/windows_package.rb
|
1426
|
+
- lib/chef/resource/windows_path.rb
|
1424
1427
|
- lib/chef/resource/windows_script.rb
|
1425
1428
|
- lib/chef/resource/windows_service.rb
|
1426
1429
|
- lib/chef/resource/windows_task.rb
|
@@ -1476,6 +1479,7 @@ files:
|
|
1476
1479
|
- lib/chef/util/selinux.rb
|
1477
1480
|
- lib/chef/util/threaded_job_queue.rb
|
1478
1481
|
- lib/chef/util/windows.rb
|
1482
|
+
- lib/chef/util/windows/logon_session.rb
|
1479
1483
|
- lib/chef/util/windows/net_group.rb
|
1480
1484
|
- lib/chef/util/windows/net_use.rb
|
1481
1485
|
- lib/chef/util/windows/net_user.rb
|
@@ -1902,6 +1906,7 @@ files:
|
|
1902
1906
|
- spec/functional/knife/ssh_spec.rb
|
1903
1907
|
- spec/functional/mixin/powershell_out_spec.rb
|
1904
1908
|
- spec/functional/mixin/shell_out_spec.rb
|
1909
|
+
- spec/functional/mixin/user_context_spec.rb
|
1905
1910
|
- spec/functional/notifications_spec.rb
|
1906
1911
|
- spec/functional/provider/remote_file/cache_control_data_spec.rb
|
1907
1912
|
- spec/functional/provider/whyrun_safe_ruby_block_spec.rb
|
@@ -1943,6 +1948,7 @@ files:
|
|
1943
1948
|
- spec/functional/resource/user/useradd_spec.rb
|
1944
1949
|
- spec/functional/resource/user/windows_spec.rb
|
1945
1950
|
- spec/functional/resource/windows_package_spec.rb
|
1951
|
+
- spec/functional/resource/windows_path_spec.rb
|
1946
1952
|
- spec/functional/resource/windows_service_spec.rb
|
1947
1953
|
- spec/functional/resource/windows_task_spec.rb
|
1948
1954
|
- spec/functional/root_alias_spec.rb
|
@@ -2329,6 +2335,7 @@ files:
|
|
2329
2335
|
- spec/unit/mixin/template_spec.rb
|
2330
2336
|
- spec/unit/mixin/unformatter_spec.rb
|
2331
2337
|
- spec/unit/mixin/uris_spec.rb
|
2338
|
+
- spec/unit/mixin/user_context_spec.rb
|
2332
2339
|
- spec/unit/mixin/versioned_api_spec.rb
|
2333
2340
|
- spec/unit/mixin/which.rb
|
2334
2341
|
- spec/unit/mixin/windows_architecture_helper_spec.rb
|
@@ -2469,6 +2476,7 @@ files:
|
|
2469
2476
|
- spec/unit/provider/user/windows_spec.rb
|
2470
2477
|
- spec/unit/provider/user_spec.rb
|
2471
2478
|
- spec/unit/provider/whyrun_safe_ruby_block_spec.rb
|
2479
|
+
- spec/unit/provider/windows_path_spec.rb
|
2472
2480
|
- spec/unit/provider/windows_task_spec.rb
|
2473
2481
|
- spec/unit/provider/yum_repository_spec.rb
|
2474
2482
|
- spec/unit/provider_resolver_spec.rb
|
@@ -2548,6 +2556,7 @@ files:
|
|
2548
2556
|
- spec/unit/resource/timestamped_deploy_spec.rb
|
2549
2557
|
- spec/unit/resource/user_spec.rb
|
2550
2558
|
- spec/unit/resource/windows_package_spec.rb
|
2559
|
+
- spec/unit/resource/windows_path_spec.rb
|
2551
2560
|
- spec/unit/resource/windows_service_spec.rb
|
2552
2561
|
- spec/unit/resource/windows_task_spec.rb
|
2553
2562
|
- spec/unit/resource/yum_package_spec.rb
|
@@ -2595,6 +2604,7 @@ files:
|
|
2595
2604
|
- spec/unit/util/powershell/ps_credential_spec.rb
|
2596
2605
|
- spec/unit/util/selinux_spec.rb
|
2597
2606
|
- spec/unit/util/threaded_job_queue_spec.rb
|
2607
|
+
- spec/unit/util/windows/logon_session_spec.rb
|
2598
2608
|
- spec/unit/version/platform_spec.rb
|
2599
2609
|
- spec/unit/version_class_spec.rb
|
2600
2610
|
- spec/unit/version_constraint/platform_spec.rb
|
@@ -2633,7 +2643,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
2633
2643
|
version: '0'
|
2634
2644
|
requirements: []
|
2635
2645
|
rubyforge_project:
|
2636
|
-
rubygems_version: 2.6.
|
2646
|
+
rubygems_version: 2.6.13
|
2637
2647
|
signing_key:
|
2638
2648
|
specification_version: 4
|
2639
2649
|
summary: A systems integration framework, built to bring the benefits of configuration
|