X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Futil%2Ffaults.py;h=ef277ffcb739e5ae2aa72b2ac56a2b7a494b4350;hb=5dd712d2c54e90dcdff9bcacef7a12cb817aad44;hp=5880fd905ba096b2a2f4d6c47793d4c6d3fdcd34;hpb=952322d76247f8991f3c2688ed7e1f5a22ca4572;p=sfa.git diff --git a/sfa/util/faults.py b/sfa/util/faults.py index 5880fd90..ef277ffc 100644 --- a/sfa/util/faults.py +++ b/sfa/util/faults.py @@ -1,12 +1,9 @@ # # SFA API faults # -# - -### $Id$ -### $URL$ import xmlrpclib +from sfa.util.genicode import GENICODE class SfaFault(xmlrpclib.Fault): def __init__(self, faultCode, faultString, extra = None): @@ -19,7 +16,7 @@ class SfaInvalidAPIMethod(SfaFault): faultString = "Invalid method " + method if interface: faultString += " for interface " + interface - SfaFault.__init__(self, 100, faultString, extra) + SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra) class SfaInvalidArgumentCount(SfaFault): def __init__(self, got, min, max = min, extra = None): @@ -29,7 +26,7 @@ class SfaInvalidArgumentCount(SfaFault): expected = "%d" % min faultString = "Expected %s arguments, got %d" % \ (expected, got) - SfaFault.__init__(self, 101, faultString, extra) + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) class SfaInvalidArgument(SfaFault): def __init__(self, extra = None, name = None): @@ -37,38 +34,40 @@ class SfaInvalidArgument(SfaFault): faultString = "Invalid %s value" % name else: faultString = "Invalid argument" - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.BADARGS, faultString, extra) class SfaAuthenticationFailure(SfaFault): def __init__(self, extra = None): faultString = "Failed to authenticate call" - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) class SfaDBError(SfaFault): def __init__(self, extra = None): faultString = "Database error" - SfaFault.__init__(self, 106, faultString, extra) + SfaFault.__init__(self, GENICODE.DBERROR, faultString, extra) class SfaPermissionDenied(SfaFault): def __init__(self, extra = None): faultString = "Permission denied" - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) class SfaNotImplemented(SfaFault): - def __init__(self, extra = None): - faultString = "Not fully implemented" - SfaFault.__init__(self, 109, faultString, extra) + def __init__(self, interface=None, extra = None): + faultString = "Not implemented" + if interface: + faultString += " at interface " + interface + SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra) class SfaAPIError(SfaFault): def __init__(self, extra = None): faultString = "Internal API error" - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.SERVERERROR, faultString, extra) class MalformedHrnException(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Malformed HRN: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, extra) def __str__(self): return repr(self.value) @@ -76,7 +75,7 @@ class TreeException(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Tree Exception: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -84,7 +83,7 @@ class NonExistingRecord(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Non exsiting record %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.SEARCHFAILED, faultString, extra) def __str__(self): return repr(self.value) @@ -92,32 +91,16 @@ class ExistingRecord(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Existing record: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) + SfaFault.__init__(self, GENICODE.REFUSED, faultString, extra) def __str__(self): return repr(self.value) -class NonexistingCredType(SfaFault): - def __init__(self, value, extra = None): - self.value = value - faultString = "Non existing record: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) - def __str__(self): - return repr(self.value) - -class NonexistingFile(SfaFault): - def __init__(self, value, extra = None): - self.value = value - faultString = "Non existing file: %(value)s, " % locals() - SfaFault.__init__(self, 111, faultString, extra) - def __str__(self): - return repr(self.value) - class InvalidRPCParams(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid RPC Params: %(value)s, " % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.RPCERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -127,7 +110,7 @@ class ConnectionKeyGIDMismatch(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Connection Key GID mismatch: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -135,7 +118,7 @@ class MissingCallerGID(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing Caller GID: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -143,7 +126,7 @@ class RecordNotFound(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Record not found: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -151,7 +134,7 @@ class UnknownSfaType(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Unknown SFA Type: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -159,7 +142,7 @@ class MissingAuthority(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing authority: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -167,7 +150,7 @@ class PlanetLabRecordDoesNotExist(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "PlanetLab record does not exist : %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -175,7 +158,7 @@ class PermissionError(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Permission error: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -183,7 +166,7 @@ class InsufficientRights(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Insufficient rights: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -191,7 +174,7 @@ class MissingDelegateBit(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing delegate bit: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -199,7 +182,7 @@ class ChildRightsNotSubsetOfParent(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Child rights not subset of parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.FORBIDDEN, faultString, extra) def __str__(self): return repr(self.value) @@ -207,7 +190,7 @@ class CertMissingParent(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Cert missing parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -215,7 +198,7 @@ class CertNotSignedByParent(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Cert not signed by parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -223,7 +206,7 @@ class GidParentHrn(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Cert URN is not an extension of its parent: %(value)s" % locals() - SfaFault.__init__(self, 103, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -231,7 +214,7 @@ class GidInvalidParentHrn(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "GID invalid parent hrn: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -239,20 +222,20 @@ class SliverDoesNotExist(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Sliver does not exist : %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) class BadRequestHash(xmlrpclib.Fault): def __init__(self, hash = None, extra = None): faultString = "bad request hash: " + str(hash) - xmlrpclib.Fault.__init__(self, 902, faultString) + xmlrpclib.Fault.__init__(self, GENICODE.ERROR, faultString) class MissingTrustedRoots(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Trusted root directory does not exist: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.SERVERERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -260,7 +243,7 @@ class MissingSfaInfo(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Missing information: %(value)s" % locals() - SfaFault.__init__(self, 102, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -268,14 +251,46 @@ class InvalidRSpec(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Invalid RSpec: %(value)s" % locals() - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) + def __str__(self): + return repr(self.value) + +class InvalidRSpecVersion(SfaFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Invalid RSpec version: %(value)s" % locals() + SfaFault.__init__(self, GENICODE.BADVERSION, faultString, extra) + def __str__(self): + return repr(self.value) + +class UnsupportedRSpecVersion(SfaFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Unsupported RSpec version: %(value)s" % locals() + SfaFault.__init__(self, GENICODE.UNSUPPORTED, faultString, extra) + def __str__(self): + return repr(self.value) + +class InvalidRSpecElement(SfaFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Invalid RSpec Element: %(value)s" % locals() + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) + def __str__(self): + return repr(self.value) + +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) def __str__(self): return repr(self.value) class AccountNotEnabled(SfaFault): def __init__(self, extra = None): faultString = "Account Disabled" - SfaFault.__init__(self, 108, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) @@ -283,6 +298,13 @@ class CredentialNotVerifiable(SfaFault): def __init__(self, value, extra = None): self.value = value faultString = "Unable to verify credential: %(value)s, " %locals() - SfaFault.__init__(self, 115, faultString, extra) + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) def __str__(self): return repr(self.value) + +class CertExpired(SfaFault): + def __init__(self, value, extra=None): + self.value = value + faultString = "%s cert is expired" % value + SfaFault.__init__(self, GENICODE.ERROR, faultString, extra) +