Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
python3-dmapi / usr / lib / python3 / dist-packages / dmapi / __pycache__ / exception_wrapper.cpython-35.pyc
Size: Mime:


‹
×]­ã@sîddlZddlZddlmZddlZddlmZddlmZddl	m
Z
ddlmZddlmZej
jZdd	„Zejd
d„ƒZdd
„Zddddd„Zdd„Zdd„ZdS)éN)Úexcutils)Úbase)Ú	exception)Úfields)Úrpc)Ú
safe_utilscCs*t|||||ƒt|||ƒdS)N)Ú#_emit_legacy_exception_notificationÚ&_emit_versioned_exception_notification)ÚnotifierÚcontextÚexÚ
function_nameÚargsÚsource©rú9/usr/lib/python3/dist-packages/dmapi/exception_wrapper.pyÚ_emit_exception_notificationsrc	Cs†tjj|ƒ}tjdtjd|ƒ}tjdddtj	j
ƒ}tjd|d|dtjj
d	|ƒ}|j|ƒdS)
NÚhostrÚobjectZcomputeÚactionÚ	publisherÚ
event_typeZpriorityÚpayload)rZExceptionPayloadÚfrom_exceptionrZNotificationPublisherÚCONFrZ	EventTyperZNotificationActionZ	EXCEPTIONZExceptionNotificationZNotificationPriorityÚERRORÚemit)rrrZversioned_exception_payloadrrZnotificationrrrr	s			r	cCs,td|d|ƒ}|j|||ƒdS)Nrr)ÚdictÚerror)r
rrr
rrrrrr*srcs‡‡‡fdd†}|S)zšThis decorator wraps a method to catch any exceptions that may
    get thrown. It also optionally sends the exception to the notification
    system.
    cs.‡‡‡‡fdd†}tjˆƒ|ƒS)Ncs¦yˆ||||ŽSWnˆtk
r¡}zhtjƒTˆsEˆrˆtˆ||||Ž}ˆj}tˆpuˆƒ||||ˆƒWdQRXWYdd}~XnXdS)N)Ú	ExceptionrZsave_and_reraise_exceptionÚ_get_call_dictÚ__name__r)ÚselfrrÚkwÚeÚ	call_dictr
)ÚbinaryÚfÚget_notifierr
rrÚwrapped6s
	z.wrap_exception.<locals>.inner.<locals>.wrapped)Ú	functoolsÚwraps)r'r))r&r(r
)r'rÚinner5szwrap_exception.<locals>.innerr)r
r(r&r,r)r&r(r
rÚwrap_exception0sr-cOsTtj|ƒ}tj|||||Ž}|jddƒ|jddƒt|ƒS)Nr"r)rZget_wrapped_functionÚinspectÚgetcallargsÚpopÚ
_cleanse_dict)Úfunctionr"rrr#Zwrapped_funcr%rrrr Isr cCsdd„t|jƒƒDƒS)zAStrip all admin_password, new_pass, rescue_pass keys from a dict.cSs+i|]!\}}d|kr||“qS)Z_passr)Ú.0ÚkÚvrrrú
<dictcomp>Ys	z!_cleanse_dict.<locals>.<dictcomp>)ÚlistÚitems)Úoriginalrrrr1Wsr1)r*r.Z
oslo_utilsrZ
dmapi.confÚdmapiZdmapi.notifications.objectsrrZ
dmapi.objectsrrrÚconfrrZif_notifications_enabledr	rr-r r1rrrrÚ<module>s