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:
3

ÒƜeà5ã@sðddlmZddlmZddlmZddlmZddlm	Z	ddl
mZddl
mZddlm
Z
dd	lmZddlmZdd
lmZejeƒZejZddifZGd
d„dƒZejjGdd„dejejejƒƒZejjGdd„dejejƒƒZ dS)é)Úlog)Úversionutils)Ú	uuidutils)Ú	exception)Ú_LW)Úbase)Úfields)Údb)Úversion)ÚserviceZcontego_rpcz1.0c@s$eZdZdZiZdZdZdd„ZdS)ÚServicez1.0Fgð?cOs d|krtjddd‚t|_dS)Nr
ÚinitzVersion field is immutable)ÚactionÚreason)rÚObjectActionErrorÚSERVICE_VERSIONr
)ÚselfÚargsÚkwargs©rú/usr/lib/python3.6/service.pyÚ__init__*s
zService.__init__N)Ú__name__Ú
__module__Ú__qualname__ÚVERSIONÚ_MIN_VERSION_CACHEÚ_SERVICE_VERSION_CACHINGrrrrrrr s
rcs²eZdZdZejddejƒejddejddejddejƒejƒejddejddej	dƒej
ddejƒejƒ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z1.0T)Z	read_only)ZnullableÚComputeNode)
ÚidÚuuidÚhostÚbinaryÚtopicZreport_countÚdisabledÚdisabled_reasonÚavailability_zoneÚcompute_nodeÚlast_seen_upÚforced_downr
Fcs2d|krtjddd‚tt|ƒj||Žt|_dS)Nr
r
zVersion field is immutable)rr)rrÚsuperrrrr
)rrr)Ú	__class__rrrLs
zService.__init__cs’tt|ƒj|||ƒtj|ƒ}|dkr4d|kr4|d=|dkrJd|krJ|d=|d
kr`d|kr`|d=|dkrvd	|krv|d	=|dkrŽ|j|j||ƒdS)Néér ér
ér)é
r(é
)r,r-)r,r.)r,r/)r,r0)r,r1)r*rÚ!obj_make_compatible_from_manifestrZconvert_version_to_tupleÚ_do_compute_nodeÚ_context)rÚ	primitiveÚtarget_versionÚversion_manifestZ_target_version)r+rrr2^s



z)Service.obj_make_compatible_from_manifestcCsNy"|d}tjj||dƒd}Wntk
r6dSX|j||d|d<dS)Nrr!r)r6r7r')ÚobjectsÚComputeNodeListÚget_all_by_hostÚ	ExceptionZobj_to_primitive)rÚcontextr5r7r6Zcomputerrrr3qszService._do_compute_nodecCsˆd}xp|jD]f}||kr"||kr"q|dkr.qq|dkrNt|tj|ƒ||ƒq|dkrf|j|ƒrfqq||||<qW||_|jƒ|S)Nr&r'r
r )r&)rÚsetattrrZget_attrnameÚgetr4Zobj_reset_changes)r<rÚ
db_serviceZ
allow_missingÚkeyrrrÚ_from_db_objectszService._from_db_objectcCs†|jstjd|jƒd‚tjd||jƒ|jdœƒ|dkrLtjdd|d‚|jdkrjt	j
j|j|jƒ}ntj
|jd	‚|d
|_dS)NÚ
obj_load_attr)ÚmethodZobjtypez-Lazy-loading '%(attr)s' on %(name)s id %(id)s)ÚattrÚnamerr'zattribute %s not lazy-loadable)rrztvault-contego)Ú
service_idr)r4rZOrphanedObjectErrorZobj_nameÚLOGÚdebugrrr"r8r9r:r!ZServiceNotFoundr')rZattrnameZ
compute_nodesrrrrB˜s 
zService.obj_load_attrcCstj||ƒ}|j||ƒ|ƒS)N)r	Zservice_getrA)Úclsr<rFr?rrrÚ	get_by_id°szService.get_by_idcCstj||ƒ}|j||ƒ|ƒS)N)r	Zservice_get_by_uuidrA)rIr<Zservice_uuidr?rrrÚget_by_uuidµszService.get_by_uuidcCstj|||ƒ}|j||ƒ|ƒS)N)r	Zservice_get_by_host_and_topicrA)rIr<r!r#r?rrrÚget_by_host_and_topicºszService.get_by_host_and_topiccCs:ytj|||ƒ}Wntjk
r(dSX|j||ƒ|ƒS)N)r	Úservice_get_by_host_and_binaryrZHostBinaryNotFoundrA)rIr<r!r"r?rrrÚget_by_host_and_binary¿szService.get_by_host_and_binarycCstj||ƒS)N)r	Zservice_get_by_compute_host)r<r!Ú	use_slaverrrÚ_db_service_get_by_compute_hostÈsz'Service._db_service_get_by_compute_hostcCs |j|||d}|j||ƒ|ƒS)N)rO)rPrA)rIr<r!rOr?rrrÚget_by_compute_hostÍszService.get_by_compute_hostcCstj|||ƒ}|j||ƒ|ƒS)N)r	rMrA)rIr<r!r"r?rrrÚget_by_argsÓszService.get_by_argscCsn|jdƒrtjddd‚|jƒ}d|kr>tjƒ|d<|d|_tj|j	|ƒ}|j
|j	||ƒ|jtj
jƒdS)NrÚcreatezalready created)rrr )Zobj_attr_is_setrrÚobj_get_changesrZ
generate_uuidr r	Zservice_creater4rAÚ_send_notificationrÚNotificationActionZCREATE)rÚupdatesr?rrrrSØs

zService.createcCsD|jƒ}|jddƒtj|j|j|ƒ}|j|j||ƒ|j|ƒdS)Nr)rTÚpopr	Zservice_updater4rrAÚ _send_status_update_notification)rrWr?rrrÚsaveçs
zService.savecCs*t|jƒƒjdddhƒr&|jtjjƒdS)Nr$r%r))ÚsetÚkeysÚintersectionrUrrVZUPDATE)rrWrrrrYðsz(Service._send_status_update_notificationcCs>tj|ƒ}tjtjj|ƒtjd|dtjj	|dj
|jƒdS)Nr)Úobjectr)Z	publisherZ
event_typeZpriorityÚpayload)Úservice_notificationZServiceStatusPayloadZServiceStatusNotificationÚnotificationZNotificationPublisherZfrom_service_objZ	EventTyperZNotificationPriorityÚINFOÚemitr4)rrr_rrrrUõs
zService._send_notificationcCs"tj|j|jƒ|jtjjƒdS)N)r	Zservice_destroyr4rrUrrVZDELETE)rrrrÚdestroyszService.destroycCs|jƒd|_dS)NT)Úclear_min_version_cacher)rIrrrÚenable_min_version_cachesz Service.enable_min_version_cachecCs
i|_dS)N)r)rIrrrre
szService.clear_min_version_cachecCstj||ƒS)N)r	Zservice_get_minimum_version)r<ÚbinariesrOrrrÚ_db_service_get_minimum_versionsz'Service._db_service_get_minimum_versioncs†ˆjst‡fdd„|DƒƒrRˆj|||d}|rddd„|jƒDƒ}ˆjj|ƒn‡fdd„|Dƒ}|rvt|jƒƒ}nd}t|ƒ}|S)Nc3s|]}|ˆjkVqdS)N)r)Ú.0r")rIrrú	<genexpr>sz4Service.get_minimum_version_multi.<locals>.<genexpr>)rOcSsi|]\}}|pd|“qS)rr)rir"r
rrrú
<dictcomp>sz5Service.get_minimum_version_multi.<locals>.<dictcomp>csi|]}ˆj||“qSr)r)rir")rIrrrk!sr)	rÚanyrhÚitemsrÚupdateÚminÚvaluesÚint)rIr<rgrOZmin_versionsr
r)rIrÚget_minimum_version_multis 

z!Service.get_minimum_version_multicCs|j||g|dS)N)rO)rr)rIr<r"rOrrrÚget_minimum_version.s
zService.get_minimum_version)F)F)F)F)F)+rrrrrZIntegerFieldZ	UUIDFieldZStringFieldZBooleanFieldZObjectFieldZ
DateTimeFieldrrrr2r3ÚstaticmethodrArBrÚremotable_classmethodrJrKrLrNr	Zselect_db_reader_moderPrQrRZ	remotablerSrZrYrUrdÚclassmethodrfrerhrrrsÚ
__classcell__rr)r+rr4sZ






		c@sheZdZdZdejdƒiZejdd„ƒZejddd„ƒZ	ejd	d
„ƒZ
ejddd
„ƒZejdd„ƒZdS)ÚServiceListz1.0r8rcCs"tj||ƒ}tj|||ƒtj|ƒS)N)r	Zservice_get_all_by_topicrÚ
obj_make_listr8r)rIr<r#Údb_servicesrrrÚget_by_topic>szServiceList.get_by_topicFcCs&tj|||d}tj|||ƒtj|ƒS)N)Úinclude_disabled)r	Zservice_get_all_by_binaryrryr8r)rIr<r"r|rzrrrÚ
get_by_binaryDszServiceList.get_by_binarycCs"tj||ƒ}tj|||ƒtj|ƒS)N)r	Zservice_get_all_by_hostrryr8r)rIr<r!rzrrrÚget_by_hostKszServiceList.get_by_hostNcCs4tj||d}|rtj||ƒ}tj|||ƒtj|ƒS)N)r$)r	Zservice_get_allZavailability_zonesZset_availability_zonesrryr8r)rIr<r$Z	set_zonesrzrrrÚget_allQszServiceList.get_allcCs&tj||dd}tj|||ƒtj|ƒS)NF)r|)r	Z#service_get_all_computes_by_hv_typerryr8r)rIr<Zhv_typerzrrrÚget_all_computes_by_hv_typeZsz'ServiceList.get_all_computes_by_hv_type)F)NF)
rrrrrZListOfObjectsFieldrrur{r}r~rr€rrrrrx5srxN)!Zoslo_logrZloggingZ
oslo_utilsrrZcontegorZcontego.i18nrZcontego.objectsrrr	r
Zcontego.notifications.objectsrarr`Z	getLoggerrrGZversion_stringrZSERVICE_VERSION_HISTORYrZContegoObjectRegistryÚregisterZContegoPersistentObjectZ
ContegoObjectZContegoObjectDictCompatZObjectListBaserxrrrrÚ<module>s*