SfaFaults use GENI error codes
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Tue, 22 Nov 2011 20:45:08 +0000 (15:45 -0500)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Tue, 22 Nov 2011 20:45:08 +0000 (15:45 -0500)
sfa/util/faults.py

index 91e5300..4a1a5e4 100644 (file)
@@ -3,6 +3,7 @@
 #
 
 import xmlrpclib
+from sfa.util.genicode import GENICODE
 
 class SfaFault(xmlrpclib.Fault):
     def __init__(self, faultCode, faultString, extra = None):
@@ -15,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):
@@ -25,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):
@@ -33,40 +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, interface=None, extra = None):
         faultString = "Not implemented"
         if interface:
             faultString += " at interface " + interface 
-        SfaFault.__init__(self, 109, faultString, extra)
+        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)
 
@@ -74,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)
 
@@ -82,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)
 
@@ -90,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)
 
@@ -125,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)
 
@@ -133,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)
 
@@ -141,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)
 
@@ -149,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)
 
@@ -157,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)
 
@@ -165,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)
 
@@ -173,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)
 
@@ -181,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)
 
@@ -189,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)
 
@@ -197,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)
 
@@ -205,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)
 
@@ -213,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)
     
@@ -221,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)
         
@@ -229,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)
 
@@ -237,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)
 
@@ -258,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)
 
@@ -266,7 +251,7 @@ 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)
 
@@ -274,7 +259,7 @@ class InvalidRSpecElement(SfaFault):
     def __init__(self, value, extra = None):
         self.value = value
         faultString = "Invalid RSpec Element: %(value)s" % locals()
-        SfaFault.__init__(self, 108, faultString, extra)
+        SfaFault.__init__(self, GENICODE.ERROR, faultString, extra)
     def __str__(self):
         return repr(self.value)
 
@@ -282,22 +267,14 @@ class InvalidXML(SfaFault):
     def __init__(self, value, extra = None):
         self.value = value
         faultString = "Invalid XML Document: %(value)s" % locals()
-        SfaFault.__init__(self, 108, faultString, extra)
-    def __str__(self):
-        return repr(self.value)
-
-class InvalidXMLElement(SfaFault):
-    def __init__(self, value, extra = None):
-        self.value = value
-        faultString = "Invalid XML Element: %(value)s" % locals()
-        SfaFault.__init__(self, 108, faultString, extra)
+        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)
 
@@ -305,7 +282,7 @@ 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)
 
@@ -313,5 +290,5 @@ class CertExpired(SfaFault):
     def __init__(self, value, extra=None):
         self.value = value
         faultString = "%s cert is expired" % value
-        SfaFault.__init__(self, 102, faultString, extra)
+        SfaFault.__init__(self, GENICODE.ERROR, faultString, extra)