# encoding: UTF-8 # # Copyright 2010 Dan Wanek # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. module WinRM # WinRM base class for errors class WinRMError < StandardError; end # Authorization Error class WinRMAuthorizationError < WinRMError; end # Shell creation error class InvalidShellError < WinRMError; end # Exitcode error class InvalidExitCode < WinRMError; end # Shell creation error class InvalidTransportError < WinRMError attr_reader :invalid_transport def initialize(invalid_transport, valid_transports) @invalid_transport = invalid_transport super( "Invalid transport '#{invalid_transport}' specified" \ ", expected: #{valid_transports.join(', ')}." ) end end # A Fault returned in the SOAP response. The XML node is a WSManFault class WinRMWSManFault < WinRMError attr_reader :fault_code attr_reader :fault_description def initialize(fault_description, fault_code) @fault_description = fault_description @fault_code = fault_code super("[WSMAN ERROR CODE: #{fault_code}]: #{fault_description}") end end # A Fault returned in the SOAP response. The XML node is a MSFT_WmiError class WinRMWMIError < WinRMError attr_reader :error_code attr_reader :error def initialize(error, error_code) @error = error @error_code = error_code super("[WMI ERROR CODE: #{error_code}]: #{error}") end end # non-200 response without a SOAP fault class WinRMHTTPTransportError < WinRMError attr_reader :status_code def initialize(msg, status_code = nil) @status_code = status_code super(msg + " (#{status_code}).") end end end