X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Futil%2Ffaults.py;h=702b685dd134805544ac70fdd49b4f31abbc62e6;hb=93a10471fd19e79b977b7655acac2fac9bd5e5fe;hp=1dd8131b9ec41b786b2a650db41b6dbfc9c4735b;hpb=031e5c50de5860921dfada9a3d54a9242339836e;p=sfa.git diff --git a/sfa/util/faults.py b/sfa/util/faults.py index 1dd8131b..702b685d 100644 --- a/sfa/util/faults.py +++ b/sfa/util/faults.py @@ -24,14 +24,30 @@ # SFA API faults # -import xmlrpclib from sfa.util.genicode import GENICODE +from sfa.util.py23 import xmlrpc_client -class SfaFault(xmlrpclib.Fault): +class SfaFault(xmlrpc_client.Fault): def __init__(self, faultCode, faultString, extra = None): if extra: faultString += ": " + str(extra) - xmlrpclib.Fault.__init__(self, faultCode, faultString) + xmlrpc_client.Fault.__init__(self, faultCode, faultString) + +class Forbidden(SfaFault): + def __init__(self, extra = None): + faultString = "FORBIDDEN" + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) + +class BadArgs(SfaFault): + def __init__(self, extra = None): + faultString = "BADARGS" + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) + + +class CredentialMismatch(SfaFault): + def __init__(self, extra = None): + faultString = "Credential mismatch" + SfaFault.__init__(self, GENICODE.CREDENTIAL_MISMATCH, faultString, extra) class SfaInvalidAPIMethod(SfaFault): def __init__(self, method, interface = None, extra = None): @@ -82,7 +98,7 @@ class SfaNotImplemented(SfaFault): class SfaAPIError(SfaFault): def __init__(self, extra = None): - faultString = "Internal API error" + faultString = "Internal SFA API error" SfaFault.__init__(self, GENICODE.SERVERERROR, faultString, extra) class MalformedHrnException(SfaFault): @@ -101,6 +117,14 @@ class TreeException(SfaFault): def __str__(self): return repr(self.value) +class SearchFailed(SfaFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "%s does not exist here " % self.value + SfaFault.__init__(self, GENICODE.SEARCHFAILED, faultString, extra) + def __str__(self): + return repr(self.value) + class NonExistingRecord(SfaFault): def __init__(self, value, extra = None): self.value = value @@ -248,10 +272,10 @@ class SliverDoesNotExist(SfaFault): def __str__(self): return repr(self.value) -class BadRequestHash(xmlrpclib.Fault): +class BadRequestHash(xmlrpc_client.Fault): def __init__(self, hash = None, extra = None): faultString = "bad request hash: " + str(hash) - xmlrpclib.Fault.__init__(self, GENICODE.ERROR, faultString) + xmlrpc_client.Fault.__init__(self, GENICODE.ERROR, faultString) class MissingTrustedRoots(SfaFault): def __init__(self, value, extra = None): @@ -305,7 +329,7 @@ class InvalidXML(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid XML Document: %(value)s" % locals() - SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) def __str__(self): return repr(self.value) @@ -317,10 +341,13 @@ class AccountNotEnabled(SfaFault): return repr(self.value) class CredentialNotVerifiable(SfaFault): - def __init__(self, value, extra = None): + def __init__(self, value=None, extra = None): self.value = value - faultString = "Unable to verify credential: %(value)s, " %locals() - SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) + faultString = "Unable to verify credential" %locals() + if value: + faultString += ": %s" % value + faultString += ", " + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) def __str__(self): return repr(self.value) @@ -329,4 +356,16 @@ class CertExpired(SfaFault): self.value = value faultString = "%s cert is expired" % value SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) - + +class SfatablesRejected(SfaFault): + def __init__(self, value, extra=None): + self.value =value + faultString = "%s rejected by sfatables" + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) + +class UnsupportedOperation(SfaFault): + def __init__(self, value, extra=None): + self.value = value + faultString = "Unsupported operation: %s" % value + SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra) +