12345678910111213141516171819202122232425262728293031323334353637383940 |
- ''' Core exceptions raised by the ONVIF Client '''
- #from suds import WebFault, MethodNotFound, PortNotFound, \
- # ServiceNotFound, TypeNotFound, BuildError, \
- # SoapHeadersNotPermitted
- #TODO: Translate these errors into ONVIFError instances, mimicking the original 'suds' behaviour
- #from zeep.exceptions import XMLSyntaxError, XMLParseError, UnexpectedElementError, \
- # WsdlSyntaxError, TransportError, LookupError, NamespaceError, Fault, ValidationError, \
- # SignatureVerificationFailed, IncompleteMessage, IncompleteOperation
- # Error codes setting
- # Error unknown, e.g, HTTP errors
- ERR_ONVIF_UNKNOWN = 1
- # Protocol error returned by WebService,
- # e.g:DataEncodingUnknown, MissingAttr, InvalidArgs, ...
- ERR_ONVIF_PROTOCOL = 2
- # Error about WSDL instance
- ERR_ONVIF_WSDL = 3
- # Error about Build
- ERR_ONVIF_BUILD = 4
- class ONVIFError(Exception):
- def __init__(self, err):
- # if isinstance(err, (WebFault, SoapHeadersNotPermitted) if with_soap_exc else WebFault):
- # self.reason = err.fault.Reason.Text
- # self.fault = err.fault
- # self.code = ERR_ONVIF_PROTOCOL
- # elif isinstance(err, (ServiceNotFound, PortNotFound,
- # MethodNotFound, TypeNotFound)):
- # self.reason = str(err)
- # self.code = ERR_ONVIF_PROTOCOL
- # elif isinstance(err, BuildError):
- # self.reason = str(err)
- # self.code = ERR_ONVIF_BUILD
- # else:
- self.reason = 'Unknown error: ' + str(err)
- self.code = ERR_ONVIF_UNKNOWN
- def __str__(self):
- return self.reason
|