from __future__ import unicode_literals
class WinRMError(Exception):
""""Generic WinRM error"""
code = 500
class WinRMTransportError(Exception):
"""WinRM errors specific to transport-level problems (unexpcted HTTP error codes, etc)"""
@property
def protocol(self):
return self.args[0]
@property
def code(self):
return self.args[1]
@property
def message(self):
return 'Bad HTTP response returned from server. Code {0}'.format(self.code)
@property
def response_text(self):
return self.args[2]
def __str__(self):
return self.message
class WinRMOperationTimeoutError(Exception):
"""
Raised when a WinRM-level operation timeout (not a connection-level timeout) has occurred. This is
considered a normal error that should be retried transparently by the client when waiting for output from
a long-running process.
"""
code = 500
class AuthenticationError(WinRMError):
"""Authorization Error"""
code = 401
class BasicAuthDisabledError(AuthenticationError):
message = 'WinRM/HTTP Basic authentication is not enabled on remote host'
class InvalidCredentialsError(AuthenticationError):
pass