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 / objects / __pycache__ / instance.cpython-35.pyc
Size: Mime:


Ú]µ)ã@sddlZddlmZddlmZddlmZddl	m
Z
ddlmZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZej Z ej!e"ƒZ#dddddddgZ$ddddgZ%dddd d!d"d#gZ&dddgZ'e$e%e&Z(dddgZ)d$Z*d%d&„Z+e,ƒZ-ej.j/Gd'd(„d(ej0ej1ej2ƒƒZ3dS))éN)Úcfg)Ú	exception)Úlog)Ú	jsonutils)Ú	timeutils)Úversionutils)Úor_)Úfunc)Únull)Údb)Úapi)Úmodels)Ú_)Úobjects)Úbase)Úfields)ÚutilsÚmetadataÚsystem_metadataÚsecurity_groupsZpci_devicesÚtagsÚservicesÚfaultZflavorZ
old_flavorZ
new_flavorZec2_idsZ
numa_topologyZpci_requestsZ
vcpu_modelZmigration_contextZkeypairsZdevice_metadataé2cs…ˆs
ˆSdd„ˆDƒ}‡fdd†tDƒ}|rI|jdƒdd„|Dƒ}||}ttt|ƒƒd|jƒS)zžReturn expected_attrs that are columns needing joining.

    NB: This function may modify expected_attrs if one
    requested attribute requires another.
    cSs"g|]}|tkr|‘qS©)Ú _INSTANCE_OPTIONAL_JOINED_FIELDS)Ú.0Úattrrrú8/usr/lib/python3/dist-packages/dmapi/objects/instance.pyú
<listcomp>Ds	z"_expected_cols.<locals>.<listcomp>cs&g|]}|ˆkrd|‘qS)zextra.%sr)rÚfield)Úexpected_attrsrrrGs	ÚextracSs"g|]}|tkr|‘qSr)Ú_INSTANCE_EXTRA_FIELDS)rÚxrrrrLs	Úkey)r#ÚappendÚsortedÚlistÚsetÚindex)r!Zsimple_colsZcomplex_colsZ
expected_colsr)r!rÚ_expected_cols;s


r+c*s_eZdZdZdejƒdejddƒdejddƒdejddƒdejddƒd	ejddƒd
ejddƒdejddƒdejddƒd
ejddƒdejddƒdejddƒdejddƒdejddƒdejddƒdejddƒdejddƒdejddƒdej	ƒdejddƒiZdgZ
‡fdd†Zedd„ƒZ
dd d!„Z‡fd"d#†Zdd‡fd$d%†Z‡fd&d'†Ze‡fd(d)†ƒZed*d+„ƒZedd,d-„ƒZedd.d/„ƒZejddd0d1„ƒZ‡S)2ÚInstancez2.0ÚidÚhostnameZnullableTÚhostÚnodeZinstance_type_idZ	user_dataZreservation_idZlaunched_atZ
terminated_atZavailability_zoneZdisplay_nameZdisplay_descriptionZlaunched_onÚlockedÚdefaultFZ	locked_byZos_typeÚarchitectureZvm_modeÚuuidÚ
task_stateÚnamecs'tt|ƒj||Ž|jƒdS)N)Úsuperr,Ú__init__Ú_reset_metadata_tracking)ÚselfÚargsÚkwargs)Ú	__class__rrr8„szInstance.__init__cCstjj|ƒS)N)rZ	ImageMetaZ
from_instance)r:rrrÚ
image_metaˆszInstance.image_metaNcCs||dksd|kr<d|kr3t|jƒni|_|dksTd|krxd|krot|jƒni|_dS)Nrr)ÚdictrÚ_orig_system_metadatarÚ_orig_metadata)r:rrrrr9Œs$z!Instance._reset_metadata_trackingcs[tt|ƒjƒ}t|dƒr6t|jƒ|_t|dƒrWt|jƒ|_|S)z&Create a copy of this instance object.rAr@)r7r,Ú	obj_cloneÚhasattrr?rAr@)r:Znobj)r=rrrB”szInstance.obj_clonecs0tt|ƒj|d|ƒ|jd|ƒdS)NÚ	recursiver)r7r,Úobj_reset_changesr9)r:rrD)r=rrrE¡szInstance.obj_reset_changescsott|ƒjƒ}d|kr@|j|jkr@|jdƒd|krk|j|jkrk|jdƒ|S)Nrr)r7r,Úobj_what_changedrrAÚaddrr@)r:Úchanges)r=rrrF¦s

zInstance.obj_what_changedcs,tt|ƒj|||ƒ}|jƒ|S)N)r7r,Ú_obj_from_primitiver9)ÚclsÚcontextZobjverZ	primitiver:)r=rrrI¯s	
zInstance._obj_from_primitivecCsÿytj|j}Wnätk
r£i}xC|jD]8}|dkrLq4n|j|ƒs^q4||||<q4Wytj|}Wntk
rž|j}YnXYnXtj	k
rú|j
tjkrà|j
tjkràd}ntjdƒ|j}YnX|S)Nr6ÚzOCould not lazy-load instance.id while attempting to generate the instance name.)ÚCONFZinstance_name_templater-Ú	TypeErrorrZobj_attr_is_setÚKeyErrorr4rZObjectActionErrorZvm_stateZ	vm_statesZBUILDINGr5Ztask_statesZ
SCHEDULINGÚLOGÚerror)r:Ú	base_nameÚinfor%rrrr6¶s*

	
z
Instance.namecCs||_|dkrg}xy|jD]n}|tkr=q%q%|dkrc|d|dk|_q%|dkr…|ddk|_q%||||<q%Wd|kr¶tj|ƒ|d<d|krÕtj|ƒ|d<d|krýtj	j
||jƒ|d<|jƒ|S)	zjMethod to help with migration to objects.

        Converts a database entity to a formal object.
        NÚdeletedr-Úcleanedérrr)
Ú_contextrÚINSTANCE_OPTIONAL_ATTRSrTrUrZ
instance_metaZinstance_sys_metarZ
InstanceFaultZget_latest_for_instancer4rE)rKÚinstanceÚdb_instr!r rrrÚ_from_db_objectÜs(		
zInstance._from_db_objectcCstj||d|ƒS)NÚcolumns_to_join)rZinstance_get_by_uuid)rKr4r\Ú	use_slaverrrÚ_db_instance_get_by_uuidüsz!Instance._db_instance_get_by_uuidcCsX|dkrddg}t|ƒ}|j|||d|ƒ}|j||ƒ||ƒS)NZ
info_cacherr])r+r^r[)rJrKr4r!r]r\rZrrrÚget_by_uuids	zInstance.get_by_uuid)Ú__name__Ú
__module__Ú__qualname__ÚVERSIONrZIntegerFieldZStringFieldZ
DateTimeFieldZBooleanFieldZ	UUIDFieldZobj_extra_fieldsr8Úpropertyr>r9rBrErFÚclassmethodrIr6Ústaticmethodr[r^rZremotable_classmethodr_rr)r=rr,ZsH	
	&r,)4Ú
contextlibZoslo_configrZoslo_dbrZdb_excZoslo_logrÚloggingZoslo_serializationrZ
oslo_utilsrrZ
sqlalchemyrZsqlalchemy.sqlr	r
ÚdmapirZdmapi.db.sqlalchemyrZdb_apir
Z
dmapi.i18nrrZ
dmapi.objectsrrrrMÚ	getLoggerr`rPrZ$_INSTANCE_OPTIONAL_NON_COLUMN_FIELDSr#Z_MIGRATION_CONTEXT_ATTRSrXZINSTANCE_DEFAULT_FIELDSZ
MAX_TAG_COUNTr+ÚobjectZ_NO_DATA_SENTINELZContegoObjectRegistryÚregisterZContegoPersistentObjectZ
ContegoObjectZContegoObjectDictCompatr,rrrrÚ<module>sR