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-el9 / usr / lib / python3.9 / site-packages / dmapi / __pycache__ / rpc.cpython-39.pyc
Size: Mime:
a

úàÊgˆ3ã@s gd¢ZddlZddlmZddlZddlmZddl	m
Z
ddlmZm
Z
ddlZddlZddlmZddlmZdd	lmZejjZe e¡ZdadadadaejjgZ gZ!d
ddd
œZ"dd„Z#ddl$m%Z%dd„Z&dd„Z'dd„Z(dd„Z)dd„Z*dd„Z+Gdd„dej,ƒZ-Gdd „d ej.ƒZ/d5d!d"„Z0d6d#d$„Z1d7d%d&„Z2d8d'd(„Z3d)d*„Z4d+d,„Z5Gd-d.„d.e6ƒZ7Gd/d0„d0e6ƒZ8Gd1d2„d2e
j9ƒZ:Gd3d4„d4ƒZ;dS)9)ÚinitÚcleanupÚset_defaultsÚadd_extra_exmodsÚclear_extra_exmodsÚget_allowed_exmodsÚRequestContextSerializerÚ
get_clientÚ
get_serverÚget_notifierÚTRANSPORT_ALIASESéN)Úlog)Ú	jsonutils)Ú
periodic_task)Ú	timeutilsÚ	uuidutils)Ú_)Údb)Úget_admin_contextZrabbitZqpidZzmq)zdmapi.rpc.impl_kombuzdmapi.rpc.impl_qpidzdmapi.rpc.impl_zmqcCst |¡dS©N)Ú	messagingZset_transport_defaults)Zcontrol_exchange©rú-/usr/lib/python3.9/site-packages/dmapi/rpc.pyr8sr)ÚcfgcCs8tjdgd¢ddddtjddd	g}|}| |¡dS)
NÚnotification_format)ÚunversionedZ	versionedÚbothrZDEFAULTÚ)ÚchoicesÚdefaultZdeprecated_groupÚhelpÚhostz   )r )rZStrOptZHostAddressOptÚ
register_opts)ÚconfZnotification_optsZALL_OPTSrrrr">sûÿø
r"cCs°t|ƒtƒ}tj||datj||dattƒƒ}|j	dkr^tj
t|datj
t|ddanN|j	dkrŠtj
t|datj
t|dgdan"tj
t|ddatj
t|dgdadS)	N©Úallowed_remote_exmodsr)Ú
serializerZnoop)r&ZdriverrZversioned_notifications)r&Ztopics)
r"rrÚ
get_transportÚ	TRANSPORTZget_notification_transportÚNOTIFICATION_TRANSPORTrÚJsonPayloadSerializerrÚNotifierÚLEGACY_NOTIFIERÚNOTIFIER)r#Úexmodsr&rrrrPs<ÿ

ÿÿ
ÿþþþrcCsTtdusJ‚tdusJ‚tdus$J‚tdus0J‚t ¡t ¡daaaadSr)r(r)r,r-rrrrrrmsrcGst |¡dSr)ÚEXTRA_EXMODSÚextend)Úargsrrrr{srcCstdd…=dSr)r/rrrrrsrcCsttSr)ÚALLOWED_EXMODSr/rrrrrƒsrc@seZdZedd„ƒZdS)r*cCstj|ddS)NT)Zconvert_instances)rZto_primitive)ÚcontextÚentityrrrÚserialize_entityˆsz&JsonPayloadSerializer.serialize_entityN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr5rrrrr*‡sr*c@s4eZdZdd„Zdd„Zdd„Zdd„Zd	d
„ZdS)rcCs
||_dSr)Ú_base)ÚselfÚbaserrrÚ__init__sz!RequestContextSerializer.__init__cCs|js
|S|j ||¡Sr)r:r5©r;r3r4rrrr5’sz)RequestContextSerializer.serialize_entitycCs|js
|S|j ||¡Sr)r:Údeserialize_entityr>rrrr?—sz+RequestContextSerializer.deserialize_entitycCs| ¡Sr)Zto_dict©r;r3rrrÚserialize_contextœsz*RequestContextSerializer.serialize_contextcCstjj |¡Sr)Údmapir3ÚRequestContextZ	from_dictr@rrrÚdeserialize_contextŸsz,RequestContextSerializer.deserialize_contextN)r6r7r8r=r5r?rArDrrrrrs
rcCstj t|t¡Sr)rZTransportURLÚparseÚCONFr)Zurl_strrrrÚget_transport_url£srGcCsJtjj}tjjgg}tj||d}|dus0J‚t|ƒ}tj||||dS)Nr$©Úversion_capr&)	rBr#rFÚ	exceptionr6rr'rÚ	RPCClient)ÚtargetrIr&r#r.r(rrrr§sýrcCs(tdusJ‚t|ƒ}tjt||d|dS)NZeventlet)Úexecutorr&)r(rrÚget_rpc_server)rLÚ	endpointsr&rrrr	´sür	cCs2tdusJ‚|s"d||ptjf}ttj|dƒS)Nz%s.%s©Úpublisher_id)r,rFr!ÚLegacyValidatingNotifierÚprepare)Zservicer!rQrrrr
¾s
ÿr
cCstdusJ‚tj|dS)NrP)r-rSrPrrrÚget_versioned_notifierÆsrTcCstƒ}tjt||dS)N)Úurlr%)rrr'rF)rUr.rrrÚcreate_transportËs
þrVc@s:eZdZdZdZdgZedƒZdd„Zdd„Z	d	d
„Z
dS)rRzDWraps an oslo.messaging Notifier and checks for allowed event_types.Fzaggregate.addhost.endze%(event_type)s is not a versioned notification and not whitelisted. See ./doc/source/notification.rstcCs*||_dD]}t||t |j|¡ƒq
dS)N)ÚdebugÚinfoÚwarnÚerrorZcritical)ÚnotifierÚsetattrÚ	functoolsÚpartialÚ_notify)r;r[Úpriorityrrrr=æs
ÿz!LegacyValidatingNotifier.__init__cCsddht| ¡ƒkS)NrJr1)ÚsetÚkeys)r;ÚpayloadrrrÚ_is_wrap_exception_notificationìsz8LegacyValidatingNotifier._is_wrap_exception_notificationcCsX||jvr@| |¡s@|jr.t|jd|iƒ‚nt |jd|i¡t|j|ƒ|||ƒdS)NÚ
event_type)	Ú'allowed_legacy_notification_event_typesrdÚfatalÚAssertionErrorÚmessageÚLOGZwarningÚgetattrr[)r;r`Úctxtrercrrrr_õs
ÿz LegacyValidatingNotifier._notifyN)r6r7r8Ú__doc__rgrfrrir=rdr_rrrrrRÒsÿ	rRc@s eZdZdd„Zedd„ƒZdS)Ú
ClientWrappercCs||_t ¡|_dSr)Ú_clientrÚutcnowÚlast_access_time)r;Úclientrrrr=szClientWrapper.__init__cCst ¡|_|jSr)rrprqro)r;rrrrrs
zClientWrapper.clientN)r6r7r8r=Úpropertyrrrrrrrnsrncs8eZdZdZ‡fdd„Zd	dd„Zejdd„ƒZ‡ZS)
ÚClientRouterzËCreates and caches RPC clients that route to cells or the default.

    The default client connects to the API cell message queue. The rest of the
    clients connect to compute cell message queues.
    csZtt|ƒ t¡i|_t|ƒ|jd<|j|_|j|_t|ddƒ|_	| 
tjj
dd¡dS)Nrr&F)Z	overwrite)Úsuperrtr=rFÚclientsrnrLrIrkr&Zrun_periodic_tasksrBr3rC)r;Zdefault_client©Ú	__class__rrr=szClientRouter.__init__Nc	Csh|r|j}nd}z|j|j}WnBtybt|jƒ}tj||j|j	|j
d}t|ƒ|j|<Yn0|S)NrrH)ÚuuidrvrrÚKeyErrorrVZ
transport_urlrrKrLrIr&rn)r;r3Zcell_mappingÚ	client_idrrÚ	transportrrrros

þzClientRouter._clientcsLd‰‡fdd„}t|j ¡ƒ}|D]$\}}|dkr"|||jƒr"|j|=q"dS)Né<cs"t |ˆ¡rt d||¡dSdS)Nz;Removing stale RPC client: %s as it was last accessed at %sTF)rZ
is_older_thanrjrW)r{rq©ÚtimeoutrrÚstale3sÿz1ClientRouter._remove_stale_clients.<locals>.staler)ÚlistrvÚitemsrq)r;r3r€Z
items_copyr{Zclient_wrapperrr~rÚ_remove_stale_clients/s
ÿz"ClientRouter._remove_stale_clients)N)	r6r7r8rmr=rorrƒÚ
__classcell__rrrwrrts

rtc@s$eZdZdd„Zdd„Zdd„ZdS)Ú	RPCServercCs4d}tj|||d|_t t¡|_t |j¡|_dS)NrB)ÚtopicZexchangeÚserver)rZTargetrLr'rFr|r+r[)r;r†r!Zdmapi_exchangerrrr=UsÿzRPCServer.__init__cCsâz>tƒ}t ||d|d¡}|jd|d<t ||j|¡Wnžtjjy zt	 
¡|d<t ||¡}Wn.tjjtjj
fyšt d |¡¡Yn0Yn>tyÜ}z&t |¡t d |¡¡WYd}~n
d}~00dS)Nr!ZbinaryéÚreport_countryz#service with data {} already existsz)Failed to handle report_state of data: {})rrZservice_get_by_host_and_binaryr‰Zservice_updateÚidrBrJZHostBinaryNotFoundrZ
generate_uuidZservice_createZServiceBinaryExistsZServiceTopicExistsrjÚformatÚ	ExceptionrZ)r;r3ÚdatarlZservice_refÚexrrrÚreport_state\s
zRPCServer.report_statecCs$|g}t |j|j|¡}| ¡dSr)rrNr|rLÚstart)r;rOr‡rrrrmszRPCServer.startN)r6r7r8r=rrrrrrr…Tsr…)N)NN)N)NN)<Ú__all__r]Zoslo_logr
ZloggingZoslo_messagingrZoslo_serializationrZoslo_servicerZ
oslo_utilsrrZ
dmapi.confrBZdmapi.exceptionZ
dmapi.i18nrrZ
dmapi.contextrr#rFZ	getLoggerr6rjr(r,r)r-rJr2r/rrZoslo_configrr"rrrrrZNoOpSerializerr*Z
SerializerrrGrr	r
rTrVÚobjectrRrnZ
PeriodicTasksrtr…rrrrÚ<module>sV

ý




.I