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    
contego / home / tvault / .virtenv / lib / python2.7 / site-packages / nova / objects / block_device.pyc
Size: Mime:
ó
±EYc@sOddlmZddlmZddlmZddlmZ	ddlm
ZddlmZddlm
Z
ddlmZmZdd	lmZdd
lmZddlmZejeƒZdgZeZd
„Zejjdejejejfd„ƒYƒZ ejjdej!ejfd„ƒYƒZ"d„Z#d„Z$dS(iÿÿÿÿ(tlog(tversionutils(tblock_device(topts(trpcapi(tdb(t	exception(t_t_LW(tobjects(tbase(tfieldstinstancecCs#g|D]}|tkr|^qS(N(t#_BLOCK_DEVICE_OPTIONAL_JOINED_FIELD(texpected_attrstattr((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt_expected_cols$s
tBlockDeviceMappingcBsQeZdZiejƒd6ejƒd6ejddeƒd6ejdeƒd6ej	deƒd6ej
deƒd6ejdeƒd	6ej
deƒd
6ejdeƒd6ej
deƒd6ejd
e
ƒd6ej
deƒd6ej
deƒd6ejdeƒd6ej
deƒd6ejd
e
ƒd6ejdeƒd6ej
deƒd6Zd„Zed%d„ƒZe
d„Zejd„ƒZejd„ƒZejd„ƒZejd„ƒZejd%d%d„ƒZejd%d„ƒZejd%d„ƒZed „ƒZed!„ƒZ ed"„ƒZ!d#„Z"d$„Z#RS(&s1.17tidt
instance_uuidtInstancetnullableRtsource_typetdestination_typetguest_formattdevice_typetdisk_bust
boot_indextdevice_nametdefaulttdelete_on_terminationtsnapshot_idt	volume_idtvolume_sizetimage_idt	no_devicetconnection_infottagcCs5tj|ƒ}|dkr1d|kr1|d=ndS(NiiR%(ii(Rtconvert_version_to_tuple(tselft	primitivettarget_version((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytobj_make_compatibleYscCsž|dkrg}nx1|jD]&}|tkr7qn||||<qWd|kr‡tj|ƒ}|j|||dƒ||_n||_|jƒ|S(NR(	tNoneRtBLOCK_DEVICE_OPTIONAL_ATTRSR	Rt_from_db_objectRt_contexttobj_reset_changes(tcontexttblock_device_objtdb_block_deviceRtkeytmy_inst((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyR-^s		
cCs2tjƒ}|dkr3tjddddƒ‚n|jdƒr]tjddddƒ‚n|jƒ}d|krtjdddd	ƒ‚n|p™d
}|r½tj||d
t	ƒ}ntj
||d
t	ƒ}|j|||ƒ|dkr.|jdƒd
k	r.t
jƒ}|j||d|ƒnd
S(s5Create the block device record in the database.

        In case the id field is set on the object, and if the instance is set
        raise an ObjectActionError. Resets all the changes on the object.

        Returns None

        :param context: security context used for database calls
        :param update_or_create: consider existing block devices for the
                instance based on the device name and swap, and only update
                the ones that match. Normally only used when creating the
                instance for the first time.
        tapitactiontcreatetreasons5BlockDeviceMapping cannot be created in the API cell.Rsalready createdRsinstance assignedtlegacytcomputeRN(t
cells_optst
get_cell_typeRtObjectActionErrortobj_attr_is_settobj_get_changesR+Rt%block_device_mapping_update_or_createtFalsetblock_device_mapping_createR-tgettcells_rpcapitCellsAPItbdm_update_or_create_at_top(R'R0tupdate_or_createt	cell_typetupdatestcells_createtdb_bdmt	cells_api((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt_createqs.	!cCs|j|jƒdS(N(RMR.(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyR7 scCs|j|jdtƒdS(NRG(RMR.tTrue(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRG¤scCs©|jdƒs*tjddddƒ‚ntj|j|jƒt|tj	dƒƒt
jƒ}|dkr¥tj
ƒ}|j|j|jd|jd|jƒndS(	NRR6tdestroyR8salready destroyedR:RR (R>RR=Rtblock_device_mapping_destroyR.RtdelattrR
tget_attrnameR;R<RDREtbdm_destroy_at_topRRR (R'RHRL((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRO¨s	cCs÷|jƒ}d|kr3tjddddƒ‚n|jddƒtj|j|j|dt	ƒ}|s‚tj
d|jƒ‚n|j|j||ƒtj
ƒ}|dkrót	}d	|krËd}ntjƒ}|j|j|d
|ƒndS(NRR6tsaveR8sinstance changedRR9R:RR7(R?RR=tpopR+Rtblock_device_mapping_updateR.RRAtBDMNotFoundR-R;R<RDRERF(R'RItupdatedRHR7RL((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRT·s$	cCsÔ|dkrg}ntj||t|ƒƒ}|sKtjd|ƒ‚nt|ƒdkr}tjt	dƒi|d6ƒn|d}|r¸||dkr¸tj
dtdƒƒ‚n|j||ƒ|d	|ƒS(
NR isHLegacy get_by_volume_id() call found multiple BDMs for volume %(volume)stvolumeiRR8s1Volume does not belong to the requested instance.R(
R+Rt)block_device_mapping_get_all_by_volume_idRRtVolumeBDMNotFoundtlentLOGtwarningRt
InvalidVolumeRR-(tclsR0R RRtdb_bdmsRK((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytget_by_volume_idÒs	
	cCsj|dkrg}ntj|||t|ƒƒ}|sNtjd|ƒ‚n|j||ƒ|d|ƒS(NR R(R+Rt2block_device_mapping_get_by_instance_and_volume_idRRR[R-(R`R0R RRRK((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytget_by_volume_and_instanceés		cCs’|dkrg}ntj||t|ƒƒ}|sKtjd|ƒ‚nt|ƒdkrrtjd|ƒ‚n|j||ƒ|dd|ƒS(NR iiR(	R+RRZRRR[R\tVolumeBDMIsMultiAttachR-(R`R0R RRa((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt
get_by_volumeös	cCs
|jdkS(Ni(R(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytis_rootscCs|jtjjkS(N(RRtBlockDeviceDestinationTypetVOLUME(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt	is_volumescCs|jtjjkS(N(RRtBlockDeviceSourceTypetIMAGE(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytis_imagescCstj|ƒjƒS(N(RtBlockDeviceDicttget_image_mapping(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRoscCs¸|tkr+tjdddd|ƒ‚n|jsUtjddd|jƒƒ‚ntjdi|d6|jƒd	6|jd
6ƒt	j
j|j|jƒ|_
|jddgƒdS(
NR6t
obj_load_attrR8sattribute %s not lazy-loadabletmethodtobjtypes1Lazy-loading '%(attr)s' on %(name)s uuid %(uuid)sRtnametuuidRR(R,RR=R.tOrphanedObjectErrortobj_nameR]tdebugRtR	Rtget_by_uuidRRR/(R'tattrname((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRps			

N($t__name__t
__module__tVERSIONRtIntegerFieldt	UUIDFieldtObjectFieldRNtBlockDeviceSourceTypeFieldtBlockDeviceDestinationTypeFieldtStringFieldtBlockDeviceTypeFieldtBooleanFieldRAtSensitiveStringFieldR*tstaticmethodR+R-RMR
t	remotableR7RGRORTtremotable_classmethodRbRdRftpropertyRgRjRmRoRp(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyR*sP

	
	/	tBlockDeviceMappingListcBs«eZdZiejdƒd6Zed„ƒZed„ƒZe	e
jed„ƒƒZ
ejed„ƒZe	e
jed„ƒƒZejed„ƒZd	„ZRS(
s1.17RR	cCstd„|DƒƒS(Ncss'|]}|jdƒr|jVqdS(RN(R>R(t.0tbdm((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pys	<genexpr>Cs(tset(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytinstance_uuids@scCs(|j||ƒ}tj|||dƒS(NR(tget_by_instance_uuidsR
tobj_make_dict_of_lists(R`R0RŽtbdms((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytbdms_by_instance_uuidGscCstj||ƒS(N(Rt.block_device_mapping_get_all_by_instance_uuids(R0RŽt	use_slave((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt2_db_block_device_mapping_get_all_by_instance_uuidsMscCs:|j||d|ƒ}tj||ƒtj|p6gƒS(NR”(R•R
t
obj_make_listR	R(R`R0RŽR”Ra((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRTscCstj||ƒS(N(Rt(block_device_mapping_get_all_by_instance(R0RR”((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt,_db_block_device_mapping_get_all_by_instance[scCs:|j||d|ƒ}tj||ƒtj|p6gƒS(NR”(R˜R
R–R	R(R`R0RR”Ra((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytget_by_instance_uuidbscCsUt|jƒdkr$tjƒ‚nytd„|DƒƒSWntk
rPdSXdS(sÆIt only makes sense to call this method when the
        BlockDeviceMappingList contains BlockDeviceMappings from
        exactly one instance rather than BlockDeviceMappings from
        multiple instances.

        For example, you should not call this method from a
        BlockDeviceMappingList created by get_by_instance_uuids(),
        but you may call this method from a BlockDeviceMappingList
        created by get_by_instance_uuid().
        icss|]}|jr|VqdS(N(Rg(R‹tbdm_obj((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pys	<genexpr>xsN(R\RŽRtUndefinedRootBDMtnextt
StopIteration(R'((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytroot_bdmis
(RzR{R|RtListOfObjectsFieldR‰RŽtclassmethodR’R†Rtselect_db_reader_modeRAR•R
RˆRR˜R™Rž(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyRŠ&s cKs%tj|tj|ƒtj||S(N(R
R–R	RŠR(R0tdb_listt
extra_args((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pytblock_device_make_list}s		cCs5g|D]}tjd||^q}td|ƒS(NR0R	(R	RRŠ(R0tbdm_dicts_listRŒtbdm_objects((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt!block_device_make_list_from_dicts„s%N(%toslo_logRtloggingt
oslo_utilsRtnovaRt
nova.cellsRR;RRDRRt	nova.i18nRRR	tnova.objectsR
Rt	getLoggerRzR]R
R,RtNovaObjectRegistrytregistertNovaPersistentObjectt
NovaObjecttNovaObjectDictCompatRtObjectListBaseRŠR¤R§(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/block_device.pyt<module>s*		úV