chef-winrm 2.3.11 → 2.3.12

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chef-winrm/connection.rb +6 -6
  3. data/lib/chef-winrm/connection_opts.rb +7 -7
  4. data/lib/chef-winrm/exceptions.rb +1 -1
  5. data/lib/chef-winrm/http/response_handler.rb +3 -3
  6. data/lib/chef-winrm/http/transport.rb +47 -47
  7. data/lib/chef-winrm/http/transport_factory.rb +4 -4
  8. data/lib/chef-winrm/psrp/fragment.rb +10 -9
  9. data/lib/chef-winrm/psrp/message.rb +7 -7
  10. data/lib/chef-winrm/psrp/message_data/base.rb +1 -1
  11. data/lib/chef-winrm/psrp/message_data/error_record.rb +10 -10
  12. data/lib/chef-winrm/psrp/message_data/pipeline_output.rb +6 -6
  13. data/lib/chef-winrm/psrp/message_data/session_capability.rb +3 -3
  14. data/lib/chef-winrm/psrp/message_data.rb +9 -9
  15. data/lib/chef-winrm/psrp/message_defragmenter.rb +13 -13
  16. data/lib/chef-winrm/psrp/message_factory.rb +5 -5
  17. data/lib/chef-winrm/psrp/message_fragmenter.rb +9 -6
  18. data/lib/chef-winrm/psrp/powershell_output_decoder.rb +25 -29
  19. data/lib/chef-winrm/psrp/receive_response_reader.rb +5 -5
  20. data/lib/chef-winrm/shells/base.rb +17 -16
  21. data/lib/chef-winrm/shells/cmd.rb +2 -2
  22. data/lib/chef-winrm/shells/power_shell.rb +18 -18
  23. data/lib/chef-winrm/shells/retryable.rb +1 -1
  24. data/lib/chef-winrm/shells/shell_factory.rb +5 -5
  25. data/lib/chef-winrm/version.rb +1 -1
  26. data/lib/chef-winrm/wsmv/base.rb +7 -7
  27. data/lib/chef-winrm/wsmv/cleanup_command.rb +8 -8
  28. data/lib/chef-winrm/wsmv/close_shell.rb +5 -5
  29. data/lib/chef-winrm/wsmv/command.rb +15 -15
  30. data/lib/chef-winrm/wsmv/command_output.rb +15 -15
  31. data/lib/chef-winrm/wsmv/command_output_decoder.rb +4 -4
  32. data/lib/chef-winrm/wsmv/configuration.rb +3 -3
  33. data/lib/chef-winrm/wsmv/create_pipeline.rb +8 -8
  34. data/lib/chef-winrm/wsmv/create_shell.rb +19 -19
  35. data/lib/chef-winrm/wsmv/header.rb +56 -56
  36. data/lib/chef-winrm/wsmv/init_runspace_pool.rb +22 -22
  37. data/lib/chef-winrm/wsmv/iso8601_duration.rb +2 -2
  38. data/lib/chef-winrm/wsmv/keep_alive.rb +11 -11
  39. data/lib/chef-winrm/wsmv/receive_response_reader.rb +9 -9
  40. data/lib/chef-winrm/wsmv/send_data.rb +5 -5
  41. data/lib/chef-winrm/wsmv/soap.rb +22 -22
  42. data/lib/chef-winrm/wsmv/wql_pull.rb +4 -4
  43. data/lib/chef-winrm/wsmv/wql_query.rb +6 -6
  44. data/lib/chef-winrm/wsmv/write_stdin.rb +18 -18
  45. data/lib/chef-winrm.rb +10 -10
  46. metadata +96 -14
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'fragment'
15
+ require_relative "fragment"
16
16
 
17
17
  module WinRM
18
18
  # PowerShell Remoting Protcol module
@@ -26,35 +26,35 @@ module WinRM
26
26
  def defragment(base64_bytes)
27
27
  fragment = fragment_from(Base64.decode64(base64_bytes))
28
28
 
29
- @messages[fragment.object_id] ||= []
30
- @messages[fragment.object_id].push fragment
29
+ @messages[fragment.psrp_object_id] ||= []
30
+ @messages[fragment.psrp_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.object_id).each { |frag| blob += frag.blob }
36
- return message_from(blob.pack('C*'))
35
+ @messages.delete(fragment.psrp_object_id).each { |frag| blob += frag.blob }
36
+ message_from(blob.pack("C*"))
37
37
  end
38
38
  # rubocop:enable Style/GuardClause
39
39
  end
40
40
 
41
41
  def fragment_from(byte_string)
42
42
  Fragment.new(
43
- byte_string[0..7].reverse.unpack('Q')[0],
43
+ byte_string[0..7].reverse.unpack("Q")[0],
44
44
  byte_string[21..-1].bytes,
45
- byte_string[8..15].reverse.unpack('Q')[0],
46
- byte_string[16].unpack('C')[0][0] == 1,
47
- byte_string[16].unpack('C')[0][1] == 1
45
+ byte_string[8..15].reverse.unpack("Q")[0],
46
+ byte_string[16].unpack("C")[0][0] == 1,
47
+ byte_string[16].unpack("C")[0][1] == 1
48
48
  )
49
49
  end
50
50
 
51
51
  def message_from(byte_string)
52
52
  Message.new(
53
- '00000000-0000-0000-0000-000000000000',
54
- byte_string[4..7].unpack('V')[0],
53
+ "00000000-0000-0000-0000-000000000000",
54
+ byte_string[4..7].unpack("V")[0],
55
55
  byte_string[40..-1],
56
- '00000000-0000-0000-0000-000000000000',
57
- byte_string[0..3].unpack('V')[0]
56
+ "00000000-0000-0000-0000-000000000000",
57
+ byte_string[0..3].unpack("V")[0]
58
58
  )
59
59
  end
60
60
  end
@@ -12,8 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'erubi'
16
- require_relative 'message'
15
+ require "erubi"
16
+ require_relative "message"
17
17
 
18
18
  module WinRM
19
19
  module PSRP
@@ -26,7 +26,7 @@ module WinRM
26
26
  Message.new(
27
27
  runspace_pool_id,
28
28
  Message::MESSAGE_TYPES[:session_capability],
29
- render('session_capability')
29
+ render("session_capability")
30
30
  )
31
31
  end
32
32
 
@@ -36,7 +36,7 @@ module WinRM
36
36
  Message.new(
37
37
  runspace_pool_id,
38
38
  Message::MESSAGE_TYPES[:init_runspacepool],
39
- render('init_runspace_pool')
39
+ render("init_runspace_pool")
40
40
  )
41
41
  end
42
42
 
@@ -49,7 +49,7 @@ module WinRM
49
49
  Message.new(
50
50
  runspace_pool_id,
51
51
  Message::MESSAGE_TYPES[:create_pipeline],
52
- render('create_pipeline', command: command.encode(xml: :text)),
52
+ render("create_pipeline", command: command.encode(xml: :text)),
53
53
  pipeline_id
54
54
  )
55
55
  end
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'fragment'
15
+ require_relative "fragment"
16
16
 
17
17
  module WinRM
18
18
  # PowerShell Remoting Protcol module
@@ -22,15 +22,14 @@ module WinRM
22
22
  DEFAULT_BLOB_LENGTH = 32_768
23
23
 
24
24
  def initialize(max_blob_length = DEFAULT_BLOB_LENGTH)
25
- @object_id = 0
25
+ @custom_object_id = 0
26
26
  @max_blob_length = max_blob_length || DEFAULT_BLOB_LENGTH
27
27
  end
28
28
 
29
- attr_reader :object_id
30
29
  attr_accessor :max_blob_length
31
30
 
32
31
  def fragment(message)
33
- @object_id += 1
32
+ @custom_object_id += 1
34
33
  message_bytes = message.bytes
35
34
  bytes_fragmented = 0
36
35
  fragment_id = 0
@@ -40,10 +39,10 @@ module WinRM
40
39
  last_byte = bytes_fragmented + max_blob_length
41
40
  last_byte = message_bytes.length if last_byte > message_bytes.length
42
41
  fragment = Fragment.new(
43
- object_id,
42
+ custom_object_id,
44
43
  message.bytes[bytes_fragmented..last_byte - 1],
45
44
  fragment_id,
46
- bytes_fragmented.zero?,
45
+ bytes_fragmented == 0,
47
46
  last_byte == message_bytes.length
48
47
  )
49
48
  fragment_id += 1
@@ -53,6 +52,10 @@ module WinRM
53
52
 
54
53
  fragment
55
54
  end
55
+
56
+ private
57
+
58
+ attr_reader :custom_object_id
56
59
  end
57
60
  end
58
61
  end
@@ -12,9 +12,9 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'base64' unless defined?(Base64)
16
- require_relative 'message'
17
- require_relative 'message_data/pipeline_state'
15
+ require "base64" unless defined?(Base64)
16
+ require_relative "message"
17
+ require_relative "message_data/pipeline_state"
18
18
 
19
19
  module WinRM
20
20
  module PSRP
@@ -50,42 +50,38 @@ module WinRM
50
50
  end
51
51
 
52
52
  def decode_host_call(message)
53
- text = begin
54
- case message.parsed_data.method_identifier
55
- when /WriteLine/, 'WriteErrorLine'
53
+ text = case message.parsed_data.method_identifier
54
+ when /WriteLine/, "WriteErrorLine"
56
55
  "#{message.parsed_data.method_parameters[:s]}\r\n"
57
- when 'WriteDebugLine'
56
+ when "WriteDebugLine"
58
57
  "Debug: #{message.parsed_data.method_parameters[:s]}\r\n"
59
- when 'WriteWarningLine'
58
+ when "WriteWarningLine"
60
59
  "Warning: #{message.parsed_data.method_parameters[:s]}\r\n"
61
- when 'WriteVerboseLine'
60
+ when "WriteVerboseLine"
62
61
  "Verbose: #{message.parsed_data.method_parameters[:s]}\r\n"
63
62
  when /Write[1-2]/
64
63
  message.parsed_data.method_parameters[:s]
65
- end
66
- end
64
+ end
67
65
 
68
66
  hex_decode(text)
69
67
  end
70
68
 
71
69
  def decode_error_record(message)
72
70
  parsed = message.parsed_data
73
- text = begin
74
- if message.type == WinRM::PSRP::Message::MESSAGE_TYPES[:pipeline_state]
75
- render_exception_as_error_record(parsed.exception_as_error_record)
76
- else
77
- case parsed.fully_qualified_error_id
78
- when 'Microsoft.PowerShell.Commands.WriteErrorException'
79
- render_write_error_exception(parsed)
80
- when 'NativeCommandError'
81
- render_native_command_error(parsed)
82
- when 'NativeCommandErrorMessage'
83
- parsed.exception[:message]
84
- else
85
- render_exception(parsed)
86
- end
87
- end
88
- end
71
+ text = if message.type == WinRM::PSRP::Message::MESSAGE_TYPES[:pipeline_state]
72
+ render_exception_as_error_record(parsed.exception_as_error_record)
73
+ else
74
+ case parsed.fully_qualified_error_id
75
+ when "Microsoft.PowerShell.Commands.WriteErrorException"
76
+ render_write_error_exception(parsed)
77
+ when "NativeCommandError"
78
+ render_native_command_error(parsed)
79
+ when "NativeCommandErrorMessage"
80
+ parsed.exception[:message]
81
+ else
82
+ render_exception(parsed)
83
+ end
84
+ end
89
85
 
90
86
  hex_decode(text)
91
87
  end
@@ -129,11 +125,11 @@ EOH
129
125
  return unless text
130
126
 
131
127
  text.gsub(/_x(\h\h\h\h)_/) do
132
- decoded_text = Regexp.last_match[1].hex.chr.force_encoding('utf-8')
128
+ decoded_text = Regexp.last_match[1].hex.chr.force_encoding("utf-8")
133
129
  if decoded_text.respond_to?(:scrub)
134
130
  decoded_text.scrub
135
131
  else
136
- decoded_text.encode('utf-16', invalid: :replace, undef: :replace).encode('utf-8')
132
+ decoded_text.encode("utf-16", invalid: :replace, undef: :replace).encode("utf-8")
137
133
  end
138
134
  end
139
135
  end
@@ -12,9 +12,9 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'nori'
16
- require_relative 'powershell_output_decoder'
17
- require_relative 'message_defragmenter'
15
+ require "nori"
16
+ require_relative "powershell_output_decoder"
17
+ require_relative "message_defragmenter"
18
18
 
19
19
  module WinRM
20
20
  module PSRP
@@ -77,7 +77,7 @@ module WinRM
77
77
  when WinRM::PSRP::Message::MESSAGE_TYPES[:error_record]
78
78
  type = :stderr
79
79
  when WinRM::PSRP::Message::MESSAGE_TYPES[:pipeline_host_call]
80
- type = :stderr if message.data.include?('WriteError')
80
+ type = :stderr if message.data.include?("WriteError")
81
81
  when WinRM::PSRP::Message::MESSAGE_TYPES[:pipeline_state]
82
82
  type = :stderr if message.parsed_data.pipeline_state == WinRM::PSRP::MessageData::PipelineState::FAILED
83
83
  end
@@ -88,7 +88,7 @@ module WinRM
88
88
  parsed = message.parsed_data
89
89
  return nil unless parsed.is_a?(MessageData::PipelineHostCall)
90
90
 
91
- parsed.method_parameters[:i32].to_i if parsed.method_identifier == 'SetShouldExit'
91
+ parsed.method_parameters[:i32].to_i if parsed.method_identifier == "SetShouldExit"
92
92
  end
93
93
  end
94
94
  end
@@ -12,27 +12,27 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'retryable'
16
- require_relative '../http/transport'
17
- require_relative '../wsmv/cleanup_command'
18
- require_relative '../wsmv/close_shell'
19
- require_relative '../wsmv/command'
20
- require_relative '../wsmv/command_output'
21
- require_relative '../wsmv/receive_response_reader'
22
- require_relative '../wsmv/create_shell'
23
- require_relative '../wsmv/soap'
15
+ require_relative "retryable"
16
+ require_relative "../http/transport"
17
+ require_relative "../wsmv/cleanup_command"
18
+ require_relative "../wsmv/close_shell"
19
+ require_relative "../wsmv/command"
20
+ require_relative "../wsmv/command_output"
21
+ require_relative "../wsmv/receive_response_reader"
22
+ require_relative "../wsmv/create_shell"
23
+ require_relative "../wsmv/soap"
24
24
 
25
25
  module WinRM
26
26
  module Shells
27
27
  # Base class for remote shell
28
28
  class Base
29
- TOO_MANY_COMMANDS = '2150859174'.freeze
30
- ERROR_OPERATION_ABORTED = '995'.freeze
31
- SHELL_NOT_FOUND = '2150858843'.freeze
29
+ TOO_MANY_COMMANDS = "2150859174".freeze
30
+ ERROR_OPERATION_ABORTED = "995".freeze
31
+ SHELL_NOT_FOUND = "2150858843".freeze
32
32
 
33
33
  FAULTS_FOR_RESET = [
34
- '2150858843', # Shell has been closed
35
- '2147943418', # Error reading registry key
34
+ "2150858843", # Shell has been closed
35
+ "2147943418", # Error reading registry key
36
36
  TOO_MANY_COMMANDS, # Maximum commands per user exceeded
37
37
  ].freeze
38
38
 
@@ -121,7 +121,7 @@ module WinRM
121
121
  shell_id: shell_id,
122
122
  command_id: command_id,
123
123
  shell_uri: shell_uri,
124
- out_streams: out_streams
124
+ out_streams: out_streams,
125
125
  }
126
126
  WinRM::WSMV::CommandOutput.new(connection_opts, cmd_out_opts)
127
127
  end
@@ -146,12 +146,13 @@ module WinRM
146
146
 
147
147
  def reset_on_error(error)
148
148
  close if error.fault_code == TOO_MANY_COMMANDS
149
- logger.debug('[WinRM] opening new shell since the current one was deleted')
149
+ logger.debug("[WinRM] opening new shell since the current one was deleted")
150
150
  @shell_id = nil
151
151
  end
152
152
 
153
153
  def cleanup_command(command_id)
154
154
  return unless shell_id
155
+
155
156
  logger.debug("[WinRM] cleaning up command_id: #{command_id} on shell_id #{shell_id}")
156
157
  cleanup_msg = WinRM::WSMV::CleanupCommand.new(
157
158
  connection_opts,
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'base'
15
+ require_relative "base"
16
16
 
17
17
  module WinRM
18
18
  module Shells
@@ -52,7 +52,7 @@ module WinRM
52
52
  end
53
53
 
54
54
  def out_streams
55
- %w[stdout stderr]
55
+ %w{stdout stderr}
56
56
  end
57
57
  end
58
58
  end
@@ -12,15 +12,15 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'securerandom' unless defined?(SecureRandom)
16
- require_relative 'base'
17
- require_relative '../psrp/message_fragmenter'
18
- require_relative '../psrp/receive_response_reader'
19
- require_relative '../wsmv/configuration'
20
- require_relative '../wsmv/create_pipeline'
21
- require_relative '../wsmv/send_data'
22
- require_relative '../wsmv/init_runspace_pool'
23
- require_relative '../wsmv/keep_alive'
15
+ require "securerandom" unless defined?(SecureRandom)
16
+ require_relative "base"
17
+ require_relative "../psrp/message_fragmenter"
18
+ require_relative "../psrp/receive_response_reader"
19
+ require_relative "../wsmv/configuration"
20
+ require_relative "../wsmv/create_pipeline"
21
+ require_relative "../wsmv/send_data"
22
+ require_relative "../wsmv/init_runspace_pool"
23
+ require_relative "../wsmv/keep_alive"
24
24
 
25
25
  module WinRM
26
26
  module Shells
@@ -78,7 +78,7 @@ module WinRM
78
78
  # error attempting to query winrm configuration.
79
79
  # we will assin a small default and adjust to a protocol
80
80
  # appropriate max length when that info is available
81
- raise unless e.fault_code == '5'
81
+ raise unless e.fault_code == "5"
82
82
 
83
83
  WinRM::PSRP::MessageFragmenter::DEFAULT_BLOB_LENGTH
84
84
  rescue WinRMSoapFault
@@ -125,7 +125,7 @@ module WinRM
125
125
  end
126
126
 
127
127
  def out_streams
128
- %w[stdout]
128
+ %w{stdout}
129
129
  end
130
130
 
131
131
  private
@@ -137,8 +137,8 @@ module WinRM
137
137
  def empty_pipeline_envelope
138
138
  WinRM::WSMV::CreatePipeline.new(
139
139
  connection_opts,
140
- '00000000-0000-0000-0000-000000000000',
141
- '00000000-0000-0000-0000-000000000000'
140
+ "00000000-0000-0000-0000-000000000000",
141
+ "00000000-0000-0000-0000-000000000000"
142
142
  ).build
143
143
  end
144
144
 
@@ -148,16 +148,16 @@ module WinRM
148
148
  msg = config_msg.build
149
149
  resp_doc = transport.send_request(msg)
150
150
  REXML::XPath.first(resp_doc, "//*[local-name() = 'MaxEnvelopeSizekb']").text.to_i
151
- rescue REXML::ParseException
152
- logger.debug("[WinRM] Endpoint doesn't support config request for MaxEnvelopeSizekb")
153
- raise
151
+ rescue REXML::ParseException
152
+ logger.debug("[WinRM] Endpoint doesn't support config request for MaxEnvelopeSizekb")
153
+ raise
154
154
  end
155
155
  end
156
156
 
157
157
  def open_shell_payload(shell_id)
158
158
  [
159
159
  WinRM::PSRP::MessageFactory.session_capability_message(shell_id),
160
- WinRM::PSRP::MessageFactory.init_runspace_pool_message(shell_id)
160
+ WinRM::PSRP::MessageFactory.init_runspace_pool_message(shell_id),
161
161
  ].map do |message|
162
162
  fragmenter.fragment(message).bytes
163
163
  end.flatten
@@ -191,7 +191,7 @@ module WinRM
191
191
  # which defaults to a 150 MaxEnvelopeSizeKB
192
192
  # later versions default to 500
193
193
  def default_protocol_envelope_size(protocol_version)
194
- protocol_version > '2.1' ? 512000 : 153600
194
+ protocol_version > "2.1" ? 512000 : 153600
195
195
  end
196
196
 
197
197
  def fragmenter
@@ -13,7 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- require_relative '../exceptions'
16
+ require_relative "../exceptions"
17
17
 
18
18
  module WinRM
19
19
  module Shells
@@ -12,9 +12,9 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'base'
16
- require_relative 'cmd'
17
- require_relative 'power_shell'
15
+ require_relative "base"
16
+ require_relative "cmd"
17
+ require_relative "power_shell"
18
18
 
19
19
  module WinRM
20
20
  module Shells
@@ -39,7 +39,7 @@ module WinRM
39
39
  args = [
40
40
  @connection_opts,
41
41
  @transport,
42
- @logger
42
+ @logger,
43
43
  ]
44
44
  # winrm-elevated has an initializer with no shell_opts so don't break it
45
45
  args << shell_opts unless shell_opts.nil? || shell_opts.empty?
@@ -47,7 +47,7 @@ module WinRM
47
47
  WinRM::Shells.const_get(type).new(*args)
48
48
  else
49
49
  message = "#{type} is not a valid WinRM shell type. " \
50
- 'Expected either :cmd, :powershell or pluggable shell.'
50
+ "Expected either :cmd, :powershell or pluggable shell."
51
51
  raise WinRM::InvalidShellError, message
52
52
  end
53
53
  end
@@ -1,5 +1,5 @@
1
1
  # WinRM module
2
2
  module WinRM
3
3
  # The version of the WinRM library
4
- VERSION = '2.3.11'.freeze
4
+ VERSION = "2.3.12".freeze
5
5
  end
@@ -12,11 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'base64'
16
- require 'builder'
17
- require 'gyoku'
18
- require_relative 'soap'
19
- require_relative 'header'
15
+ require "base64" unless defined?(Base64)
16
+ require "builder"
17
+ require "chef-gyoku"
18
+ require_relative "soap"
19
+ require_relative "header"
20
20
 
21
21
  module WinRM
22
22
  module WSMV
@@ -28,7 +28,7 @@ module WinRM
28
28
  # Builds the WSMV message XML payload
29
29
  def build
30
30
  builder = Builder::XmlMarkup.new
31
- builder.instruct!(:xml, encoding: 'UTF-8')
31
+ builder.instruct!(:xml, encoding: "UTF-8")
32
32
  builder.tag! :env, :Envelope, namespaces do |env|
33
33
  env.tag!(:env, :Header) do |env_header|
34
34
  create_header(env_header)
@@ -50,7 +50,7 @@ module WinRM
50
50
  end
51
51
 
52
52
  def encode_bytes(bytes)
53
- Base64.strict_encode64(bytes.pack('C*'))
53
+ Base64.strict_encode64(bytes.pack("C*"))
54
54
  end
55
55
  end
56
56
  end
@@ -12,15 +12,15 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'base'
15
+ require_relative "base"
16
16
 
17
17
  module WinRM
18
18
  module WSMV
19
19
  # WSMV message to execute a command inside a remote shell
20
20
  class CleanupCommand < Base
21
21
  def initialize(session_opts, opts)
22
- raise 'opts[:shell_id] is required' unless opts[:shell_id]
23
- raise 'opts[:command_id] is required' unless opts[:command_id]
22
+ raise "opts[:shell_id] is required" unless opts[:shell_id]
23
+ raise "opts[:command_id] is required" unless opts[:command_id]
24
24
 
25
25
  @session_opts = session_opts
26
26
  @shell_id = opts[:shell_id]
@@ -35,7 +35,7 @@ module WinRM
35
35
  end
36
36
 
37
37
  def create_body(body)
38
- body.tag!("#{NS_WIN_SHELL}:Signal", 'CommandId' => @command_id) do |cl|
38
+ body.tag!("#{NS_WIN_SHELL}:Signal", "CommandId" => @command_id) do |cl|
39
39
  cl << Gyoku.xml(cleanup_body)
40
40
  end
41
41
  end
@@ -44,15 +44,15 @@ module WinRM
44
44
 
45
45
  def cleanup_header
46
46
  merge_headers(shared_headers(@session_opts),
47
- resource_uri_shell(@shell_uri),
48
- action_signal,
49
- selector_shell_id(@shell_id))
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
53
53
  {
54
54
  "#{NS_WIN_SHELL}:Code" =>
55
- 'http://schemas.microsoft.com/wbem/wsman/1/windows/shell/signal/terminate'
55
+ "http://schemas.microsoft.com/wbem/wsman/1/windows/shell/signal/terminate",
56
56
  }
57
57
  end
58
58
  end
@@ -12,14 +12,14 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require_relative 'base'
15
+ require_relative "base"
16
16
 
17
17
  module WinRM
18
18
  module WSMV
19
19
  # WSMV message to close a remote shell
20
20
  class CloseShell < Base
21
21
  def initialize(session_opts, shell_opts)
22
- raise 'shell_opts[:shell_id] is required' unless shell_opts[:shell_id]
22
+ raise "shell_opts[:shell_id] is required" unless shell_opts[:shell_id]
23
23
 
24
24
  @session_opts = session_opts
25
25
  @shell_id = shell_opts[:shell_id]
@@ -40,9 +40,9 @@ module WinRM
40
40
 
41
41
  def close_header
42
42
  merge_headers(shared_headers(@session_opts),
43
- resource_uri_shell(@shell_uri),
44
- action_delete,
45
- selector_shell_id(@shell_id))
43
+ resource_uri_shell(@shell_uri),
44
+ action_delete,
45
+ selector_shell_id(@shell_id))
46
46
  end
47
47
  end
48
48
  end