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    
Size: Mime:
a

)^eà5ã@sðddlmZddlmZddlmZddlmZddlm	Z	ddl
mZddl
mZddlm
Z
dd	lmZddlmZdd
lmZe e¡ZejZddifZGd
d„dƒZejjGdd„dejejejƒƒZejjGdd„dejejƒƒZ dS)é)Úlog)Úversionutils)Ú	uuidutils)Ú	exception)Ú_LW)Úbase)Úfields)Údb)Úversion)ÚserviceZcontego_rpcú1.0c@s$eZdZdZiZdZdZdd„ZdS)ÚServicerFgð?cOs d|vrtjddd‚t|_dS©Nr
ÚinitzVersion field is immutable©ÚactionÚreason)rÚObjectActionErrorÚSERVICE_VERSIONr
©ÚselfÚargsÚkwargs©rú;/usr/lib/python3.9/site-packages/contego/objects/service.pyÚ__init__*sþúService.__init__N)Ú__name__Ú
__module__Ú__qualname__ÚVERSIONÚ_MIN_VERSION_CACHEÚ_SERVICE_VERSION_CACHINGrrrrrrr
 s
r
cs²eZdZdZejdde ¡ejddejddejdde ¡e ¡ejddejdde 	d¡ej
dde ¡e ¡dœ
ZiZdZ‡fdd	„Z
‡fd
d„Zdd
„Zedd„ƒZdd„Zejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZeejd4dd„ƒƒZejd5dd„ƒZejdd„ƒZejd d!„ƒZejd"d#„ƒZ d$d%„Z!d&d'„Z"ejd(d)„ƒZ#e$d*d+„ƒZ%e$d,d-„ƒZ&eejd6d.d/„ƒƒZ'ejd7d0d1„ƒZ(ejd8d2d3„ƒZ)‡Z*S)9r
rT)Z	read_only)ZnullableÚComputeNode)
ÚidÚuuidÚhostÚbinaryÚtopicZreport_countÚdisabledÚdisabled_reasonÚavailability_zoneÚcompute_nodeÚlast_seen_upÚforced_downr
Fcs6d|vrtjddd‚tt|ƒj|i|¤Žt|_dSr)rrÚsuperr
rrr
r©Ú	__class__rrrLs
þrcs’tt|ƒ |||¡t |¡}|dkr4d|vr4|d=|dkrJd|vrJ|d=|dkr`d|vr`|d=|dkrvd|vrv|d=|d	krŽ| |j||¡dS)
N)éér%)r2ér
)r2ér.)r2é
r-)r2é
)r/r
Ú!obj_make_compatible_from_manifestrZconvert_version_to_tupleÚ_do_compute_nodeÚ_context)rÚ	primitiveÚtarget_versionÚversion_manifestZ_target_versionr0rrr8^s 
ÿ

ÿz)Service.obj_make_compatible_from_manifestcCsNz"|d}tj ||d¡d}Wnty6YdS0|j||d|d<dS)Nr#r&r)r<r=r,)ÚobjectsÚComputeNodeListÚget_all_by_hostÚ	ExceptionZobj_to_primitive)rÚcontextr;r=r<Zcomputerrrr9qsÿÿþzService._do_compute_nodecCs‚d}|jD]d}||vr ||vr q
|dkr,q
q
|dkrLt|t |¡||ƒq
|dkrb| |¡sbq
q
||||<q
||_| ¡|S)N)r+r,r
r%)rÚsetattrrZget_attrnameÚgetr:Zobj_reset_changes)rBrÚ
db_serviceZ
allow_missingÚkeyrrrÚ_from_db_objects
zService._from_db_objectcCs†|jstjd| ¡d‚t d|| ¡|jdœ¡|dkrLtjdd|d‚|jdkrjt	j
 |j|j¡}ntj
|jd	‚|d
|_dS)NÚ
obj_load_attr)ÚmethodZobjtypez-Lazy-loading '%(attr)s' on %(name)s id %(id)s)ÚattrÚnamer$r,zattribute %s not lazy-loadablerztvault-contego)Ú
service_idr)r:rZOrphanedObjectErrorZobj_nameÚLOGÚdebugr$rr'r>r?r@r&ZServiceNotFoundr,)rÚattrnameZ
compute_nodesrrrrH˜s*ÿþÿþ
ÿzService.obj_load_attrcCst ||¡}| ||ƒ|¡S©N)r	Zservice_getrG)ÚclsrBrLrErrrÚ	get_by_id°szService.get_by_idcCst ||¡}| ||ƒ|¡SrP)r	Zservice_get_by_uuidrG)rQrBZservice_uuidrErrrÚget_by_uuidµszService.get_by_uuidcCst |||¡}| ||ƒ|¡SrP)r	Zservice_get_by_host_and_topicrG)rQrBr&r(rErrrÚget_by_host_and_topicºszService.get_by_host_and_topiccCs:zt |||¡}Wntjy(YdS0| ||ƒ|¡SrP)r	Úservice_get_by_host_and_binaryrZHostBinaryNotFoundrG©rQrBr&r'rErrrÚget_by_host_and_binary¿sÿzService.get_by_host_and_binarycCst ||¡SrP)r	Zservice_get_by_compute_host)rBr&Ú	use_slaverrrÚ_db_service_get_by_compute_hostÈsz'Service._db_service_get_by_compute_hostcCs |j|||d}| ||ƒ|¡S©N©rX)rYrG)rQrBr&rXrErrrÚget_by_compute_hostÍsÿzService.get_by_compute_hostcCst |||¡}| ||ƒ|¡SrP)r	rUrGrVrrrÚget_by_argsÓszService.get_by_argscCsn| d¡rtjddd‚| ¡}d|vr>t ¡|d<|d|_t |j	|¡}| 
|j	||¡| tj
j¡dS)Nr$Úcreatezalready createdrr%)Zobj_attr_is_setrrÚobj_get_changesrZ
generate_uuidr%r	Zservice_creater:rGÚ_send_notificationrÚNotificationActionZCREATE©rÚupdatesrErrrr^Øs
ÿ
zService.createcCsD| ¡}| dd¡t |j|j|¡}| |j||¡| |¡dS)Nr$)r_Úpopr	Zservice_updater:r$rGÚ _send_status_update_notificationrbrrrÚsaveçs
zService.savecCs(t| ¡ƒ hd£¡r$| tjj¡dS)N>r*r)r.)ÚsetÚkeysÚintersectionr`rraZUPDATE)rrcrrrreðsÿz(Service._send_status_update_notificationcCs>t |¡}tjtj |¡tjd|dtjj	|d 
|j¡dS)Nr)Úobjectr)Z	publisherZ
event_typeÚpriorityÚpayload)Úservice_notificationZServiceStatusPayloadZServiceStatusNotificationÚnotificationZNotificationPublisherZfrom_service_objZ	EventTyperZNotificationPriorityÚINFOÚemitr:)rrrlrrrr`õs
ÿþùùzService._send_notificationcCs"t |j|j¡| tjj¡dSrP)r	Zservice_destroyr:r$r`rraZDELETE)rrrrÚdestroyszService.destroycCs| ¡d|_dS)NT)Úclear_min_version_cacher"©rQrrrÚenable_min_version_cachesz Service.enable_min_version_cachecCs
i|_dSrP©r!rsrrrrr
szService.clear_min_version_cachecCst ||¡SrP)r	Zservice_get_minimum_version)rBÚbinariesrXrrrÚ_db_service_get_minimum_versionsz'Service._db_service_get_minimum_versioncs„ˆjrt‡fdd„|DƒƒrPˆj|||d}|rbdd„| ¡Dƒ}ˆj |¡n‡fdd„|Dƒ}|rtt| ¡ƒ}nd}t|ƒ}|S)Nc3s|]}|ˆjvVqdSrPru©Ú.0r'rsrrÚ	<genexpr>sÿz4Service.get_minimum_version_multi.<locals>.<genexpr>r[cSsi|]\}}||pd“qS)rr)ryr'r
rrrÚ
<dictcomp>sÿz5Service.get_minimum_version_multi.<locals>.<dictcomp>csi|]}|ˆj|“qSrrurxrsrrr{!sÿr)	r"ÚanyrwÚitemsr!ÚupdateÚminÚvaluesÚint)rQrBrvrXZmin_versionsr
rrsrÚget_minimum_version_multis*ÿÿÿþ
ÿz!Service.get_minimum_version_multicCs|j||g|dSrZ)r‚)rQrBr'rXrrrÚget_minimum_version.s
ÿzService.get_minimum_version)F)F)F)F)F)+rrrr rZIntegerFieldZ	UUIDFieldZStringFieldZBooleanFieldZObjectFieldZ
DateTimeFieldr!r"rr8r9ÚstaticmethodrGrHrÚremotable_classmethodrRrSrTrWr	Zselect_db_reader_moderYr\r]Z	remotabler^rfrer`rqÚclassmethodrtrrrwr‚rƒÚ
__classcell__rrr0rr
4sr






ó










c@sheZdZdZde d¡iZejdd„ƒZejddd„ƒZ	ejd	d
„ƒZ
ejddd
„ƒZejdd„ƒZdS)ÚServiceListrr>r
cCs"t ||¡}t |||ƒtj|¡SrP)r	Zservice_get_all_by_topicrÚ
obj_make_listr>r
)rQrBr(Údb_servicesrrrÚget_by_topic>sÿzServiceList.get_by_topicFcCs&tj|||d}t |||ƒtj|¡S)N©Úinclude_disabled)r	Zservice_get_all_by_binaryrr‰r>r
)rQrBr'rrŠrrrÚ
get_by_binaryDsÿÿzServiceList.get_by_binarycCs"t ||¡}t |||ƒtj|¡SrP)r	Zservice_get_all_by_hostrr‰r>r
)rQrBr&rŠrrrÚget_by_hostKsÿzServiceList.get_by_hostNcCs4tj||d}|rt ||¡}t |||ƒtj|¡S)N)r))r	Zservice_get_allZavailability_zonesZset_availability_zonesrr‰r>r
)rQrBr)Z	set_zonesrŠrrrÚget_allQsÿÿzServiceList.get_allcCs&tj||dd}t |||ƒtj|¡S)NFrŒ)r	Z#service_get_all_computes_by_hv_typerr‰r>r
)rQrBZhv_typerŠrrrÚget_all_computes_by_hv_typeZsÿÿz'ServiceList.get_all_computes_by_hv_type)F)NF)
rrrr rZListOfObjectsFieldrr…r‹rŽrrr‘rrrrrˆ5s
ÿ

rˆN)!Zoslo_logrZloggingZ
oslo_utilsrrZcontegorZcontego.i18nrZcontego.objectsrrr	r
Zcontego.notifications.objectsrnrrmZ	getLoggerrrMZversion_stringrZSERVICE_VERSION_HISTORYr
ZContegoObjectRegistryÚregisterZContegoPersistentObjectZ
ContegoObjectZContegoObjectDictCompatZObjectListBaserˆrrrrÚ<module>s.
þÿ