From ddd2e121589311c536bb0636e0474db593d93fd0 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Thu, 2 Jul 2009 23:46:48 +0000 Subject: [PATCH] oops, somehow this one got lost --- geni/util/faults.py | 236 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 geni/util/faults.py diff --git a/geni/util/faults.py b/geni/util/faults.py new file mode 100644 index 00000000..7eec1166 --- /dev/null +++ b/geni/util/faults.py @@ -0,0 +1,236 @@ +# +# GeniAPI XML-RPC faults +# +# + +### $Id$ +### $URL$ + +import xmlrpclib + +class GeniFault(xmlrpclib.Fault): + def __init__(self, faultCode, faultString, extra = None): + if extra: + faultString += ": " + extra + xmlrpclib.Fault.__init__(self, faultCode, faultString) + +class GeniInvalidAPIMethod(GeniFault): + def __init__(self, method, interface = None, extra = None): + faultString = "Invalid method " + method + if interface: + faultString += " for interface " + interface + GeniFault.__init__(self, 100, faultString, extra) + +class GeniInvalidArgumentCount(GeniFault): + def __init__(self, got, min, max = min, extra = None): + if min != max: + expected = "%d-%d" % (min, max) + else: + expected = "%d" % min + faultString = "Expected %s arguments, got %d" % \ + (expected, got) + GeniFault.__init__(self, 101, faultString, extra) + +class GeniInvalidArgument(GeniFault): + def __init__(self, extra = None, name = None): + if name is not None: + faultString = "Invalid %s value" % name + else: + faultString = "Invalid argument" + GeniFault.__init__(self, 102, faultString, extra) + +class GeniAuthenticationFailure(GeniFault): + def __init__(self, extra = None): + faultString = "Failed to authenticate call" + GeniFault.__init__(self, 103, faultString, extra) + +class GeniDBError(GeniFault): + def __init__(self, extra = None): + faultString = "Database error" + GeniFault.__init__(self, 106, faultString, extra) + +class GeniPermissionDenied(GeniFault): + def __init__(self, extra = None): + faultString = "Permission denied" + GeniFault.__init__(self, 108, faultString, extra) + +class GeniNotImplemented(GeniFault): + def __init__(self, extra = None): + faultString = "Not fully implemented" + GeniFault.__init__(self, 109, faultString, extra) + +class GeniAPIError(GeniFault): + def __init__(self, extra = None): + faultString = "Internal API error" + GeniFault.__init__(self, 111, faultString, extra) + +class MalformedHrnException(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Malformed HRN: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class TreeException(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Tree Exception: %(value)s, " % locals() + GeniFault.__init__(self, 111, faultString, extra) + def __str__(self): + return repr(self.value) + +class NonexistingRecord(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Non exsiting record %(value)s, " % locals() + GeniFault.__init__(self, 111, faultString, extra) + def __str__(self): + return repr(self.value) + +class ExistingRecord(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Existing record: %(value)s, " % locals() + GeniFault.__init__(self, 111, faultString, extra) + def __str__(self): + return repr(self.value) + +class NonexistingCredType(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Non existing record: %(value)s, " % locals() + GeniFault.__init__(self, 111, faultString, extra) + def __str__(self): + return repr(self.value) + +class NonexistingFile(GeniFault): + def __init__(self, value): + self.value = value + faultString = "Non existing file: %(value)s, " % locals() + GeniFault.__init__(self, 111, faultString, extra) + def __str__(self): + return repr(self.value) + +class InvalidRPCParams(GeniFault): + def __init__(self, value): + self.value = value + faultString = "Invalid RPC Params: %(value)s, " % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +# SMBAKER exceptions follow + +class ConnectionKeyGIDMismatch(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Connection Key GID mismatch: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class MissingCallerGID(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Missing Caller GID: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class RecordNotFound(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Record not found: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + #def __str__(self): + # return repr(self.value) + +class UnknownGeniType(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Unknown Geni Type: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class MissingAuthority(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Missing authority: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class PlanetLabRecordDoesNotExist(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "PlanetLab record does not exist : %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class PermissionError(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Permission error: %(value)s" % locals() + GeniFault.__init__(self, 108, faultString, extra) + def __str__(self): + return repr(self.value) + +class InsufficientRights(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Insufficient rights: %(value)s" % locals() + GeniFault.__init__(self, 108, faultString, extra) + def __str__(self): + return repr(self.value) + +class MissingDelegateBit(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Missing delegate bit: %(value)s" % locals() + GeniFault.__init__(self, 108, faultString, extra) + def __str__(self): + return repr(self.value) + +class ChildRightsNotSubsetOfParent(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Child rights not subset of parent: %(value)s" % locals() + GeniFault.__init__(self, 103, faultString, extra) + def __str__(self): + return repr(self.value) + +class CertMissingParent(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Cert missing parent: %(value)s" % locals() + GeniFault.__init__(self, 103, faultString, extra) + def __str__(self): + return repr(self.value) + +class CertNotSignedByParent(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Cert not signed by parent: %(value)s" % locals() + GeniFault.__init__(self, 103, faultString, extra) + def __str__(self): + return repr(self.value) + +class GidInvalidParentHrn(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "GID invalid parent hrn: %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + +class SliverDoesNotExist(GeniFault): + def __init__(self, value, extra = None): + self.value = value + faultString = "Sliver does not exist : %(value)s" % locals() + GeniFault.__init__(self, 102, faultString, extra) + def __str__(self): + return repr(self.value) + -- 2.43.0