File Manager
Viewing File: exceptions.rb
# Copyright 2010 Dan Wanek <dan.wanek@gmail.com>
#
# 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 contains Code, SubCode and Reason
class WinRMSoapFault < WinRMError
attr_reader :code
attr_reader :subcode
attr_reader :reason
def initialize(code, subcode, reason)
@code = code
@subcode = subcode
@reason = reason
super("[SOAP ERROR CODE: #{code} (#{subcode})]: #{reason}")
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