ó  c‰`c@sàdZddddgZddlZddlZddlZddlmZddlmZdd lm Z dd l m Z dd lm Z dd l mZdejfd „ƒYZed„ƒZed„ƒZd„ZdS(s>This module contains decorators for use with and without D-BustFirewallDBusExceptionthandle_exceptionstdbus_handle_exceptionstdbus_service_methodiÿÿÿÿN(t DBusException(t decorator(tconfig(t FirewallError(terrors(tlogcBseZdZdejjZRS(Rs %s.Exception(t__name__t __module__t__doc__RtdbustDBUS_INTERFACEt_dbus_error_name(((s>/usr/lib/python2.7/site-packages/firewall/server/decorators.pyR+scOsxy|||ŽSWn`tk rF}tjtjƒƒtj|ƒn.tk rstjtjƒƒtjƒnXdS(sTDecorator to handle exceptions and log them. Used if not conneced to D-Bus. N(RR tdebug1t tracebackt format_excterrort Exceptiont exception(tfunctargstkwargsR((s>/usr/lib/python2.7/site-packages/firewall/server/decorators.pyR/s cOs y|||ŽSWnótk r­}tjt|ƒƒ}|tjtjtjtjgkrrtj t|ƒƒn&tj t j ƒƒtj t|ƒƒtt|ƒƒ‚nZtk rÅ}|‚nBtk r}tj t j ƒƒtjƒtt|ƒƒ‚nXdS(s‚Decorator to handle exceptions, log and report them into D-Bus :Raises DBusException: on a firewall error code problems. N(Rtget_codetstrRtALREADY_ENABLEDt NOT_ENABLEDtZONE_ALREADY_SETt ALREADY_SETR twarningRRRRRRRR(RRRRtcodetex((s>/usr/lib/python2.7/site-packages/firewall/server/decorators.pyR=s   cOs#|jddƒtjj||ŽS(sAdd sender argument for D-Bustsender_keywordtsender(t setdefaultR tservicetmethod(RR((s>/usr/lib/python2.7/site-packages/firewall/server/decorators.pyRVs(R t__all__R t dbus.serviceRtdbus.exceptionsRRtfirewallRtfirewall.errorsRRtfirewall.core.loggerR RRRR(((s>/usr/lib/python2.7/site-packages/firewall/server/decorators.pyts