+#----------------------------------------------------------------------
+# Copyright (c) 2008 Board of Trustees, Princeton University
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and/or hardware specification (the "Work") to
+# deal in the Work without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Work, and to permit persons to whom the Work
+# is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Work.
+#
+# THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
+# IN THE WORK.
+#----------------------------------------------------------------------
#
# SFA API faults
#
faultString += ": " + str(extra)
xmlrpclib.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):
faultString = "Invalid method " + method
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):
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
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
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)
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)
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)
+