Class: WinRM::Shells::Base
- Inherits:
-
Object
- Object
- WinRM::Shells::Base
- Includes:
- Retryable
- Defined in:
- lib/winrm/shells/base.rb
Overview
Base class for remote shell
Direct Known Subclasses
Constant Summary collapse
- TOO_MANY_COMMANDS =
'2150859174'.freeze
- ERROR_OPERATION_ABORTED =
'995'.freeze
- FAULTS_FOR_RESET =
[ '2150858843', # Shell has been closed '2147943418', # Error reading registry key TOO_MANY_COMMANDS, # Maximum commands per user exceeded ].freeze
Constants included from Retryable
Retryable::RETRYABLE_EXCEPTIONS
Instance Attribute Summary collapse
-
#connection_opts ⇒ ConnectionOpts
readonly
Connection options of the shell.
-
#logger ⇒ Logger
readonly
Logger used for diagnostic messages.
-
#shell_id ⇒ String
readonly
Shell id of the currently opn shell or nil if shell is closed.
-
#shell_uri ⇒ String
readonly
Uri that SOAP calls use to identify shell type.
-
#transport ⇒ WinRM::HTTP::HttpTransport
readonly
Transport used to talk with endpoint.
Instance Method Summary collapse
-
#close ⇒ Object
Closes the shell if one is open.
-
#initialize(connection_opts, transport, logger) ⇒ Base
constructor
Create a new Cmd shell.
-
#run(command, arguments = [], &block) {|standard, standard| ... } ⇒ Object
Runs the specified command with optional arguments.
Methods included from Retryable
Constructor Details
#initialize(connection_opts, transport, logger) ⇒ Base
Create a new Cmd shell
46 47 48 49 50 |
# File 'lib/winrm/shells/base.rb', line 46 def initialize(connection_opts, transport, logger) @connection_opts = connection_opts @transport = transport @logger = logger end |
Instance Attribute Details
#connection_opts ⇒ ConnectionOpts (readonly)
Returns connection options of the shell.
59 60 61 |
# File 'lib/winrm/shells/base.rb', line 59 def connection_opts @connection_opts end |
#logger ⇒ Logger (readonly)
Returns logger used for diagnostic messages.
65 66 67 |
# File 'lib/winrm/shells/base.rb', line 65 def logger @logger end |
#shell_id ⇒ String (readonly)
Returns shell id of the currently opn shell or nil if shell is closed.
53 54 55 |
# File 'lib/winrm/shells/base.rb', line 53 def shell_id @shell_id end |
#shell_uri ⇒ String (readonly)
Returns uri that SOAP calls use to identify shell type.
56 57 58 |
# File 'lib/winrm/shells/base.rb', line 56 def shell_uri @shell_uri end |
#transport ⇒ WinRM::HTTP::HttpTransport (readonly)
Returns transport used to talk with endpoint.
62 63 64 |
# File 'lib/winrm/shells/base.rb', line 62 def transport @transport end |
Instance Method Details
#close ⇒ Object
Closes the shell if one is open
81 82 83 84 85 86 |
# File 'lib/winrm/shells/base.rb', line 81 def close return unless shell_id self.class.close_shell(connection_opts, transport, shell_id) remove_finalizer @shell_id = nil end |
#run(command, arguments = [], &block) {|standard, standard| ... } ⇒ Object
Runs the specified command with optional arguments
74 75 76 77 78 |
# File 'lib/winrm/shells/base.rb', line 74 def run(command, arguments = [], &block) with_command_shell(command, arguments) do |shell, cmd| response_reader.read_output((shell, cmd), &block) end end |