chef-winrm 2.3.12 → 2.4.1
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.
Potentially problematic release.
This version of chef-winrm might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/chef-winrm/http/transport.rb +1 -1
- data/lib/chef-winrm/http/transport_factory.rb +1 -1
- data/lib/chef-winrm/psrp/fragment.rb +6 -7
- data/lib/chef-winrm/psrp/message_data/error_record.rb +1 -1
- data/lib/chef-winrm/psrp/message_defragmenter.rb +3 -3
- data/lib/chef-winrm/psrp/message_fragmenter.rb +4 -4
- data/lib/chef-winrm/version.rb +1 -1
- data/lib/chef-winrm/wsmv/base.rb +1 -1
- data/lib/chef-winrm/wsmv/cleanup_command.rb +3 -3
- data/lib/chef-winrm/wsmv/close_shell.rb +3 -3
- data/lib/chef-winrm/wsmv/command.rb +5 -5
- data/lib/chef-winrm/wsmv/command_output.rb +4 -4
- data/lib/chef-winrm/wsmv/configuration.rb +2 -2
- data/lib/chef-winrm/wsmv/create_pipeline.rb +3 -3
- data/lib/chef-winrm/wsmv/create_shell.rb +3 -3
- data/lib/chef-winrm/wsmv/init_runspace_pool.rb +3 -3
- data/lib/chef-winrm/wsmv/keep_alive.rb +4 -4
- data/lib/chef-winrm/wsmv/write_stdin.rb +3 -3
- metadata +22 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bc4820534032552cebcd83d4b2fbd9348e9891e7d450c6c9cd48b6f6bb3fa66
|
4
|
+
data.tar.gz: 103f82a90a1a678f72bf21d51f25c0ad6d8d50f2541f28086a3f9b6def62b414
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 663ba8a47fb6e4390054539ba6af856d896ca60c10b412d28bf50bda6bbb677e7089bd43351536dbc3df7a855bdb03981774dc29e092dda6f43ac255e9884c0c
|
7
|
+
data.tar.gz: b8ba5b4623a68f42ff9208c04d0570d413c654be479308d2a95438c513fa84e845c49839642ef05659882800a65e52efdd1f73325d89eb890e94d1b2d50f7829
|
@@ -46,7 +46,7 @@ module WinRM
|
|
46
46
|
HTTP::BasicAuthSSL.new(opts[:endpoint], opts[:user], opts[:password], opts)
|
47
47
|
elsif opts[:client_cert]
|
48
48
|
HTTP::ClientCertAuthSSL.new(opts[:endpoint], opts[:client_cert],
|
49
|
-
|
49
|
+
opts[:client_key], opts[:key_pass], opts)
|
50
50
|
else
|
51
51
|
HTTP::HttpNegotiate.new(opts[:endpoint], opts[:user], opts[:password], opts)
|
52
52
|
end
|
@@ -18,29 +18,28 @@ module WinRM
|
|
18
18
|
module PSRP
|
19
19
|
# PowerShell Remoting Protocol message fragment.
|
20
20
|
class Fragment
|
21
|
-
|
22
|
-
attr_reader :psrp_object_id, :fragment_id, :end_fragment, :start_fragment, :blob
|
23
|
-
|
24
21
|
# Creates a new PSRP message fragment
|
25
|
-
# @param
|
22
|
+
# @param object_id [Integer] The id of the fragmented message.
|
26
23
|
# @param blob [Array] Array of fragmented bytes.
|
27
24
|
# @param fragment_id [Integer] The id of this fragment
|
28
25
|
# @param start_fragment [Boolean] If the fragment is the first fragment
|
29
26
|
# @param end_fragment [Boolean] If the fragment is the last fragment
|
30
|
-
def initialize(
|
31
|
-
@
|
27
|
+
def initialize(object_id, blob, fragment_id = 0, start_fragment = true, end_fragment = true)
|
28
|
+
@object_id = object_id
|
32
29
|
@blob = blob
|
33
30
|
@fragment_id = fragment_id
|
34
31
|
@start_fragment = start_fragment
|
35
32
|
@end_fragment = end_fragment
|
36
33
|
end
|
37
34
|
|
35
|
+
attr_reader :object_id, :fragment_id, :end_fragment, :start_fragment, :blob
|
36
|
+
|
38
37
|
# Returns the raw PSRP message bytes ready for transfer to Windows inside a
|
39
38
|
# WinRM message.
|
40
39
|
# @return [Array<Byte>] Unencoded raw byte array of the PSRP message.
|
41
40
|
def bytes
|
42
41
|
[
|
43
|
-
int64be(
|
42
|
+
int64be(object_id),
|
44
43
|
int64be(fragment_id),
|
45
44
|
end_start_fragment,
|
46
45
|
int16be(blob.length),
|
@@ -26,13 +26,13 @@ module WinRM
|
|
26
26
|
def defragment(base64_bytes)
|
27
27
|
fragment = fragment_from(Base64.decode64(base64_bytes))
|
28
28
|
|
29
|
-
@messages[fragment.
|
30
|
-
@messages[fragment.
|
29
|
+
@messages[fragment.object_id] ||= []
|
30
|
+
@messages[fragment.object_id].push fragment
|
31
31
|
|
32
32
|
# rubocop:disable Style/GuardClause
|
33
33
|
if fragment.end_fragment
|
34
34
|
blob = []
|
35
|
-
@messages.delete(fragment.
|
35
|
+
@messages.delete(fragment.object_id).each { |frag| blob += frag.blob }
|
36
36
|
message_from(blob.pack("C*"))
|
37
37
|
end
|
38
38
|
# rubocop:enable Style/GuardClause
|
@@ -22,14 +22,14 @@ module WinRM
|
|
22
22
|
DEFAULT_BLOB_LENGTH = 32_768
|
23
23
|
|
24
24
|
def initialize(max_blob_length = DEFAULT_BLOB_LENGTH)
|
25
|
-
@
|
25
|
+
@object_id = 0
|
26
26
|
@max_blob_length = max_blob_length || DEFAULT_BLOB_LENGTH
|
27
27
|
end
|
28
28
|
|
29
29
|
attr_accessor :max_blob_length
|
30
30
|
|
31
31
|
def fragment(message)
|
32
|
-
@
|
32
|
+
@object_id += 1
|
33
33
|
message_bytes = message.bytes
|
34
34
|
bytes_fragmented = 0
|
35
35
|
fragment_id = 0
|
@@ -39,7 +39,7 @@ module WinRM
|
|
39
39
|
last_byte = bytes_fragmented + max_blob_length
|
40
40
|
last_byte = message_bytes.length if last_byte > message_bytes.length
|
41
41
|
fragment = Fragment.new(
|
42
|
-
|
42
|
+
object_id,
|
43
43
|
message.bytes[bytes_fragmented..last_byte - 1],
|
44
44
|
fragment_id,
|
45
45
|
bytes_fragmented == 0,
|
@@ -55,7 +55,7 @@ module WinRM
|
|
55
55
|
|
56
56
|
private
|
57
57
|
|
58
|
-
attr_reader :
|
58
|
+
attr_reader :object_id
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
data/lib/chef-winrm/version.rb
CHANGED
data/lib/chef-winrm/wsmv/base.rb
CHANGED
@@ -44,9 +44,9 @@ module WinRM
|
|
44
44
|
|
45
45
|
def cleanup_header
|
46
46
|
merge_headers(shared_headers(@session_opts),
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
resource_uri_shell(@shell_uri),
|
48
|
+
action_signal,
|
49
|
+
selector_shell_id(@shell_id))
|
50
50
|
end
|
51
51
|
|
52
52
|
def cleanup_body
|
@@ -40,9 +40,9 @@ module WinRM
|
|
40
40
|
|
41
41
|
def close_header
|
42
42
|
merge_headers(shared_headers(@session_opts),
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
resource_uri_shell(@shell_uri),
|
44
|
+
action_delete,
|
45
|
+
selector_shell_id(@shell_id))
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -63,7 +63,7 @@ module WinRM
|
|
63
63
|
|
64
64
|
def issue69_unescape_single_quotes(xml)
|
65
65
|
escaped_cmd = %r{<#{NS_WIN_SHELL}:Command>(.+)<\/#{NS_WIN_SHELL}:Command>}m.match(xml)[1]
|
66
|
-
xml[escaped_cmd] = escaped_cmd.gsub(
|
66
|
+
xml[escaped_cmd] = escaped_cmd.gsub(/'/, "'")
|
67
67
|
xml
|
68
68
|
end
|
69
69
|
|
@@ -75,10 +75,10 @@ module WinRM
|
|
75
75
|
|
76
76
|
def command_headers
|
77
77
|
merge_headers(shared_headers(@session_opts),
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
78
|
+
resource_uri_shell(@shell_uri),
|
79
|
+
action_command,
|
80
|
+
command_header_opts,
|
81
|
+
selector_shell_id(@shell_id))
|
82
82
|
end
|
83
83
|
|
84
84
|
def command_header_opts
|
@@ -43,10 +43,10 @@ module WinRM
|
|
43
43
|
|
44
44
|
def output_header
|
45
45
|
merge_headers(shared_headers(@session_opts),
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
resource_uri_shell(@shell_uri),
|
47
|
+
action_receive,
|
48
|
+
header_opts,
|
49
|
+
selector_shell_id(@shell_id))
|
50
50
|
end
|
51
51
|
|
52
52
|
def header_opts
|
@@ -36,8 +36,8 @@ module WinRM
|
|
36
36
|
|
37
37
|
def configuration_headers
|
38
38
|
merge_headers(shared_headers(@session_opts),
|
39
|
-
|
40
|
-
|
39
|
+
resource_uri_shell("http://schemas.microsoft.com/wbem/wsman/1/config"),
|
40
|
+
action_get)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -51,9 +51,9 @@ module WinRM
|
|
51
51
|
|
52
52
|
def command_headers
|
53
53
|
merge_headers(shared_headers(@session_opts),
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
resource_uri_shell(RESOURCE_URI_POWERSHELL),
|
55
|
+
action_command,
|
56
|
+
selector_shell_id(shell_id))
|
57
57
|
end
|
58
58
|
|
59
59
|
def arguments
|
@@ -83,9 +83,9 @@ module WinRM
|
|
83
83
|
|
84
84
|
def shell_headers
|
85
85
|
merge_headers(shared_headers(@session_opts),
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
resource_uri_shell(@shell_uri),
|
87
|
+
action_create,
|
88
|
+
header_opts)
|
89
89
|
end
|
90
90
|
|
91
91
|
def action_create
|
@@ -57,9 +57,9 @@ module WinRM
|
|
57
57
|
|
58
58
|
def shell_headers
|
59
59
|
merge_headers(shared_headers(@session_opts),
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
resource_uri_shell(RESOURCE_URI_POWERSHELL),
|
61
|
+
action_create,
|
62
|
+
header_opts)
|
63
63
|
end
|
64
64
|
|
65
65
|
def action_create
|
@@ -43,10 +43,10 @@ module WinRM
|
|
43
43
|
|
44
44
|
def keep_alive_headers
|
45
45
|
merge_headers(shared_headers(@session_opts),
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
resource_uri_shell(RESOURCE_URI_POWERSHELL),
|
47
|
+
action_receive,
|
48
|
+
header_opts,
|
49
|
+
selector_shell_id(shell_id))
|
50
50
|
end
|
51
51
|
|
52
52
|
def header_opts
|
@@ -53,9 +53,9 @@ module WinRM
|
|
53
53
|
|
54
54
|
def stdin_headers
|
55
55
|
merge_headers(shared_headers(@session_opts),
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
resource_uri_shell(@shell_uri),
|
57
|
+
action_send,
|
58
|
+
selector_shell_id(@shell_id))
|
59
59
|
end
|
60
60
|
|
61
61
|
def action_send
|
metadata
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-winrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Wanek
|
8
8
|
- Paul Morton
|
9
9
|
- Matt Wrock
|
10
10
|
- Shawn Neal
|
11
|
-
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2025-04-
|
13
|
+
date: 2025-04-22 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: builder
|
@@ -31,22 +30,16 @@ dependencies:
|
|
31
30
|
name: chef-gyoku
|
32
31
|
requirement: !ruby/object:Gem::Requirement
|
33
32
|
requirements:
|
34
|
-
- - "
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 1.4.0
|
37
|
-
- - "<="
|
33
|
+
- - ">="
|
38
34
|
- !ruby/object:Gem::Version
|
39
|
-
version: 1.4.
|
35
|
+
version: 1.4.1
|
40
36
|
type: :runtime
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
39
|
requirements:
|
44
|
-
- - "
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 1.4.0
|
47
|
-
- - "<="
|
40
|
+
- - ">="
|
48
41
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.4.
|
42
|
+
version: 1.4.1
|
50
43
|
- !ruby/object:Gem::Dependency
|
51
44
|
name: erubi
|
52
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,26 +136,6 @@ dependencies:
|
|
143
136
|
- - "~>"
|
144
137
|
- !ruby/object:Gem::Version
|
145
138
|
version: '3.3'
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
|
-
name: ffi
|
148
|
-
requirement: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: 1.15.5
|
153
|
-
- - "<"
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
version: 1.17.0
|
156
|
-
type: :runtime
|
157
|
-
prerelease: false
|
158
|
-
version_requirements: !ruby/object:Gem::Requirement
|
159
|
-
requirements:
|
160
|
-
- - ">="
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
version: 1.15.5
|
163
|
-
- - "<"
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: 1.17.0
|
166
139
|
- !ruby/object:Gem::Dependency
|
167
140
|
name: pry
|
168
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,47 +227,47 @@ dependencies:
|
|
254
227
|
- !ruby/object:Gem::Version
|
255
228
|
version: '0'
|
256
229
|
- !ruby/object:Gem::Dependency
|
257
|
-
name:
|
230
|
+
name: rspec
|
258
231
|
requirement: !ruby/object:Gem::Requirement
|
259
232
|
requirements:
|
260
|
-
- - "
|
233
|
+
- - "~>"
|
261
234
|
- !ruby/object:Gem::Version
|
262
|
-
version: '
|
235
|
+
version: '3.2'
|
263
236
|
type: :development
|
264
237
|
prerelease: false
|
265
238
|
version_requirements: !ruby/object:Gem::Requirement
|
266
239
|
requirements:
|
267
|
-
- - "
|
240
|
+
- - "~>"
|
268
241
|
- !ruby/object:Gem::Version
|
269
|
-
version: '
|
242
|
+
version: '3.2'
|
270
243
|
- !ruby/object:Gem::Dependency
|
271
|
-
name:
|
244
|
+
name: rubocop
|
272
245
|
requirement: !ruby/object:Gem::Requirement
|
273
246
|
requirements:
|
274
247
|
- - "~>"
|
275
248
|
- !ruby/object:Gem::Version
|
276
|
-
version:
|
249
|
+
version: 1.25.1
|
277
250
|
type: :development
|
278
251
|
prerelease: false
|
279
252
|
version_requirements: !ruby/object:Gem::Requirement
|
280
253
|
requirements:
|
281
254
|
- - "~>"
|
282
255
|
- !ruby/object:Gem::Version
|
283
|
-
version:
|
256
|
+
version: 1.25.1
|
284
257
|
- !ruby/object:Gem::Dependency
|
285
258
|
name: cookstyle
|
286
259
|
requirement: !ruby/object:Gem::Requirement
|
287
260
|
requirements:
|
288
|
-
- - "
|
261
|
+
- - ">="
|
289
262
|
- !ruby/object:Gem::Version
|
290
|
-
version:
|
263
|
+
version: 7.32.8
|
291
264
|
type: :development
|
292
265
|
prerelease: false
|
293
266
|
version_requirements: !ruby/object:Gem::Requirement
|
294
267
|
requirements:
|
295
|
-
- - "
|
268
|
+
- - ">="
|
296
269
|
- !ruby/object:Gem::Version
|
297
|
-
version:
|
270
|
+
version: 7.32.8
|
298
271
|
- !ruby/object:Gem::Dependency
|
299
272
|
name: rubyntlm
|
300
273
|
requirement: !ruby/object:Gem::Requirement
|
@@ -325,8 +298,8 @@ executables:
|
|
325
298
|
- rwinrm
|
326
299
|
extensions: []
|
327
300
|
extra_rdoc_files:
|
328
|
-
- README.md
|
329
301
|
- LICENSE
|
302
|
+
- README.md
|
330
303
|
files:
|
331
304
|
- LICENSE
|
332
305
|
- README.md
|
@@ -389,7 +362,6 @@ licenses:
|
|
389
362
|
- Apache-2.0
|
390
363
|
metadata:
|
391
364
|
rubygems_mfa_required: 'true'
|
392
|
-
post_install_message:
|
393
365
|
rdoc_options:
|
394
366
|
- "-x"
|
395
367
|
- test/
|
@@ -399,17 +371,16 @@ require_paths:
|
|
399
371
|
- lib
|
400
372
|
required_ruby_version: !ruby/object:Gem::Requirement
|
401
373
|
requirements:
|
402
|
-
- - "
|
374
|
+
- - ">="
|
403
375
|
- !ruby/object:Gem::Version
|
404
|
-
version: '3.
|
376
|
+
version: '3.1'
|
405
377
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
406
378
|
requirements:
|
407
379
|
- - ">="
|
408
380
|
- !ruby/object:Gem::Version
|
409
381
|
version: '0'
|
410
382
|
requirements: []
|
411
|
-
rubygems_version: 3.
|
412
|
-
signing_key:
|
383
|
+
rubygems_version: 3.6.8
|
413
384
|
specification_version: 4
|
414
385
|
summary: Ruby library for Windows Remote Management
|
415
386
|
test_files: []
|