X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/python-afs.git/blobdiff_plain/562c4cd06e8c80fe088658a91dd63a3cb9e1fa8b..2592f714b7bf436892c330063f8ae197b4662d0b:/afs/afs.pyx diff --git a/afs/afs.pyx b/afs/afs.pyx new file mode 100644 index 0000000..a54a1c9 --- /dev/null +++ b/afs/afs.pyx @@ -0,0 +1,32 @@ +""" +General PyAFS utilities, such as error handling +""" + +import sys + +cdef int _init = 0 + +class AFSException(Exception): + def __init__(self, errno, message): + self.errno = errno + self.strerror = afs_error_message(errno) + self.message = message + + def __repr__(self): + return "AFSException(%s, %s)" % (self.errno, self.message) + + def __str__(self): + return "[%s] (%s) while %s" % (self.errno, self.strerror, self.message) + +def pyafs_error(code, msg): + if not _init: + initialize_ACFG_error_table() + initialize_KTC_error_table() + initialize_PT_error_table() + initialize_RXK_error_table() + initialize_U_error_table() + + _init = 1 + + if code != 0: + raise AFSException(code, msg)