def wrapper(*args, **kwds): try: return func(*args, **kwds) except XenAPIPlugin.Failure: # pass through what was already handled raise except EnvironmentError as e: message = e.strerror if e.strerror is not None else str(e.args) raise XenAPIPlugin.Failure( str(e.errno), [message, str(e.filename), traceback.format_exc()]) except Exception as e: raise_plugin_error('-1', str(e), backtrace=traceback.format_exc())
def raise_plugin_error(code, message, details='', backtrace=''): raise XenAPIPlugin.Failure(code, [message, details, backtrace])