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 / aggregate.pyc
Size: Mime:
ó
±EYc@sÄddlmZddlmZddlmZddlmZddl	m
Z
ddl	mZddlm
Z
ddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZmZddlmZddlmZddlm Z ej!e"ƒZ#ddgZ$ej%j&d„ƒZ'ej%j&d„ƒZ(d„Z)d„Z*de+d„Z,ej%j-d„ƒZ.ej%j-d*d„ƒZ0ej%j-d„ƒZ1ej%j-d„ƒZ2ej3j4dej5ej6fd„ƒYƒZ7ej%j&d „ƒZ8ej%j&d*d!„ƒZ9ej%j&d"„ƒZ:ej3j4d#ej;ej6fd$„ƒYƒZ<ej=j&d%„ƒZ>d&„Z?d'„Z@ej%j&d(„ƒZAd)„ZBd*S(+iÿÿÿÿ(t	exception(tlog(texcutils(t	uuidutils(tcontains_eager(t
joinedload(tfunc(ttext(tutils(tdb(tapi(t
api_models(tmodels(t_t_LW(tobjects(tbase(tfieldstdeletedt
deleted_atcCsy|jjtjƒjtdƒƒjtdƒƒ}|jtjj|kƒ}|jƒ}|sut	j
d|ƒ‚n|S(Nt_hostst	_metadatataggregate_id(tsessiontqueryRt	AggregatetoptionsRtfiltertidtfirstRtAggregateNotFound(tcontextRRt	aggregate((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_aggregate_get_from_db(scCsy|jjtjƒjtdƒƒjtdƒƒ}|jtjj|kƒ}|jƒ}|sut	j
d|ƒ‚n|S(NRRR(RRRRRRRtuuidRRR(Rtaggregate_uuidRR ((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_aggregate_get_from_db_by_uuid7scCs›yhtjjj|ƒMt||ƒtjƒ}|ji|d6|d6ƒ|j|j	ƒ|SWdQXWn,t
jk
r–tj
d|d|ƒ‚nXdS(NthostR(tdb_apitapi_context_managertwritertusingR!Rt
AggregateHosttupdatetsaveRtdb_exctDBDuplicateEntryRtAggregateHostExists(RRR%thost_ref((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_host_add_to_dbFs
cCs¢d}tjjj|ƒZt||ƒ|jjtjƒ}|j	tjj
|kƒ}|jd|ƒjƒ}WdQX|dkržt
jd|d|ƒ‚ndS(NiR%R(R&R'R(R)R!RRRR*RRt	filter_bytdeleteRtAggregateHostNotFound(RRR%tcountR((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_host_delete_from_dbUs
i
c
Cs|jƒ}xòt|ƒD]ä}yktjjj|ƒP|jjtj	ƒj
d|ƒ}|r‹|jtj	jj
|ƒƒjdtƒntƒ}|r|jtj	jj
|ƒƒ}xE|jƒD]4}	|	j}
|	ji||
d6ƒ|j|
ƒqÅWng}xN|jƒD]@\}
}|
|kr1qn|ji|
d6|d6|d6ƒqW|r|jjtj	jjƒ|ƒn|SWdQXWqtjk
rütjƒN}
||dkrÈt|
_n+tdƒi|d6|d6}tj |ƒWdQXqXqWdS(	NRtsynchronize_sessiontvaluetkeyisBAdd metadata failed for aggregate %(id)s after %(retries)s retriesRtretries(!tkeystrangeR&R'R(R)RRRtAggregateMetadataR2RR9tin_R3tFalsetsettallR+taddtitemstappendtexecutet	__table__tinsertR-R.Rtsave_and_reraise_exceptiontreraiseR
tLOGtwarning(RRtmetadatatmax_retriest
set_deletetall_keystattemptRtalready_existing_keystmeta_refR9tnew_entriesR8tctxttmsg((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_metadata_add_to_dbesJ	
			
	cCs€t||ƒ|jjtjƒ}|jtjj|kƒ}|jd|ƒjƒ}|dkr|t	j
d|d|ƒ‚ndS(NR9iRtmetadata_key(R!RRRR=RRR2R3RtAggregateMetadataNotFound(RRR9RR5((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_metadata_delete_from_db–s
	cCs×|jjtjƒ}|jtjj|dkƒ}|jƒ}|s„tjƒ}|j|ƒ|j|jƒg|_	g|_
ntjd|dƒ‚|rÓt
||j|ƒ|jj|dgƒ|j
n|S(Ntnametaggregate_nameR(RRRRRRZRR+R,RRRtAggregateNameExistsRVRtexpire(RtvaluesRLRR ((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_aggregate_create_in_db¥s
	
cCsz|jjtjƒjd|ƒjƒ|jjtjƒjtjj|kƒjƒ}|dkrvt	j
d|ƒ‚ndS(NRi(RRRR=R2R3RRRRR(RRR5((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_aggregate_delete_from_db½s
cCst||ƒ}t}d|krg|jdƒ}d|krVi|d6|d<t}qg||dd<n|jdƒ}|dk	r¤t|||jdƒd|ƒn|j|ƒy|j|j	ƒWn<t
jk
rd|krýtj
d|dƒ‚q‚nXt||ƒS(Ntavailability_zoneRLRNRZR[(R!tTruetpopR?tgettNoneRVR+R,RR-R.RR\(RRR^R RNtazRL((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_aggregate_update_to_dbÌs*	

	RcBsZeZdZiejƒd6ejdeƒd6ejƒd6ejde	ƒd6ej
de	ƒd6ZdgZd„Ze
d	„ƒZd
„Zed„ƒZejd„ƒZejd
„ƒZe
ejjd„ƒƒZejd„ƒZejd„ƒZejd„ƒZejd„ƒZejd„ƒZejd„ƒZ ed„ƒZ!RS(s1.3RtnullableR"RZthostsRLRacOs&tt|ƒj||Žt|_dS(N(tsuperRt__init__R?t_in_api(tselftargstkwargs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyRkûscs'xp|jD]e}|dkr%d}n6|dkr7q
n$|tkrU|ˆkrUq
n|}t||ˆ|ƒq
Wˆjdƒr’ˆd|_nt‡fd†tDƒƒrÃd|_t|_	n||_
|jƒd|kr#tj
ƒ|_tjdtd|jd|jƒƒ|jƒn|S(NRLtmetadetailsR"c3s|]}|ˆkVqdS(N((t.0tf(tdb_aggregate(sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pys	<genexpr>ss.Generating UUID %(uuid)s for aggregate %(agg)itagg(RtDEPRECATED_FIELDStsetattrRdR"tanyReRR?Rt_contexttobj_reset_changesRt
generate_uuidRJtdebugtdictRR,(RR RsR9tdb_key((RssK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_from_db_objectÿs,			
	
cCs1d|jƒkr-tjd|ddƒ‚ndS(NRitactiontreasonshosts updated inline(tobj_what_changedRtObjectActionError(RmR((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_assert_no_hosts's	cCsO|jr
tSy t|j|jƒt|_Wntjk
rCnX|jSdS(N(RlRbR!RxRRR(Rm((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytin_api-s	
cCsRyt||ƒ}Wn&tjk
r;tj||ƒ}nX|j||ƒ|ƒS(N(R!RRR	t
aggregate_getR~(tclsRRRs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt	get_by_id9s
cCsRyt||ƒ}Wn&tjk
r;tj||ƒ}nX|j||ƒ|ƒS(N(R$RRR	taggregate_get_by_uuidR~(R†RR#Rs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytget_by_uuidAs
cCsW|jjtjƒjddƒjƒ}|rMtjtdƒi|d6ƒn|dkS(NRis6Main database contains %(count)i unmigrated aggregatesR5(	RRtmain_modelsRR2R5RJRKR(Rtresult((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_ensure_migratedJs	cCsW|jdƒr*tjddddƒ‚n|j|jƒsWtjddddƒ‚n|jdƒ|jƒ}t|ƒ}d|krž|jdƒ|d<nd	|krÚt	j
ƒ|d	<tjd
td	|d	ƒƒnt
j|jd|ƒ|jddƒ}t|j|d|ƒ}|j|j||ƒ|j|d<t
j|jd
|ƒdS(NRRtcreateR€salready createds'main database still contains aggregatesRLt	meta_dataR"s%Generated uuid %(uuid)s for aggregatescreate.startRs
create.end(tobj_attr_is_setRR‚RŒRxRƒtobj_get_changesR|RcRRzRJR{t
compute_utilstnotify_about_aggregate_updateReR_R~R(RmtupdatestpayloadRLRs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyRUs6	
		
cCsê|jdƒ|jƒ}i|jd6}d|krF|d|d<ntj|jd|ƒ|jddƒyt|j|j|ƒ}Wn/t	j
k
r¹tj|j|j|ƒ}nXtj|jd|ƒ|j
|j||ƒdS(NR,RRLRŽsupdateprop.startRsupdateprop.end(RƒRRR‘R’RxRcReRgRRR	taggregate_updateR~(RmR“R”Rs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyR,ys$
	cCs<|jrt}t}ntj}tj}i|jd6|d6}tj|j	d|ƒi}x™|j
ƒD]‹\}}|dkrÞy||j	|j|ƒWntj
k
r²nXy|jj|ƒWqõtk
rÚqõXqj|||<||j|<qjW||j	|j|ƒtj|j	d|ƒ|jddgƒdS(NRRŽsupdatemetadata.startsupdatemetadata.endRRL(R„RYRVR	taggregate_metadata_deletetaggregate_metadata_addRR‘R’RxRCReRRXRLRctKeyErrorRy(RmR“tmetadata_deletetmetadata_addR”tto_addR9R8((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytupdate_metadatas8				



cCsHyt|j|jƒWn*tjk
rCtj|j|jƒnXdS(N(R`RxRRRR	taggregate_delete(Rm((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytdestroy²scCs}|jr"t|j|j|ƒntj|j|j|ƒ|jdkrVg|_n|jj|ƒ|j	ddgƒdS(NRRi(
R„R1RxRR	taggregate_host_addRiReRDRy(RmR%((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytadd_host¹s	cCsb|jr"t|j|j|ƒntj|j|j|ƒ|jj|ƒ|jddgƒdS(NRRi(	R„R6RxRR	taggregate_host_deleteRitremoveRy(RmR%((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytdelete_hostÅs
	cCs|jjddƒS(NRa(RLRdRe(Rm((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyRaÏs("t__name__t
__module__tVERSIONRtIntegerFieldt	UUIDFieldR?tStringFieldtListOfStringsFieldRbtDictOfStringsFieldtobj_extra_fieldsRktstaticmethodR~RƒtpropertyR„Rtremotable_classmethodR‡R‰R&tmain_context_managertreaderRŒt	remotableRR,RœRžR R£Ra(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyRés.

		(		
$"
cCs=|jjtjƒjtdƒƒjtdƒƒ}|jƒS(NRR(RRRRRRRA(RR((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_get_all_from_dbÔscCs”|jjtjƒjtdƒƒjtdƒƒ}|jdƒ}|jtjj	|kƒ}|rŠ|jdƒjtj
j|kƒ}n|jƒS(NRR(
RRRRRRtjoinRR*R%R=R9RA(RR%R9R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_get_by_host_from_dbÝscCss|jjtjƒ}|jdƒ}|jtjj|kƒ}|jt	dƒƒ}|jt
dƒƒ}|jƒS(NRR(RRRRR´RR=R9RRRRA(RR9R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_get_by_metadata_key_from_dbìst
AggregateListcBs~eZdZiejdƒd6Zed„ƒZed„ƒZe	j
d„ƒZe	j
dd„ƒZ
e	j
dd„ƒZRS(	s1.2RRcCsd|d<t|d<|S(NRR(ReR?(Rs((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_fill_deprecateds

cCskt|tƒst|ƒ}ng}x@|D]8}x/|dD]#}||kr<|j|ƒPq<q<Wq+W|S(NRi(t
isinstanceR@RD(R†t
db_aggregatesRitfiltered_aggregatesRsR%((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_filter_db_aggregatess

cCsZgt|ƒD]}|j|ƒ^q
}tj|ƒ}tj|||ƒtj||ƒS(N(R³R¸R	taggregate_get_allRt
obj_make_listRR(R†RRttapi_db_aggregatesRº((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytget_alls
%cCslgt||d|ƒD]}|j|ƒ^q}tj||d|ƒ}tj|||ƒtj||ƒS(NR9(RµR¸R	taggregate_get_by_hostRR¾RR(R†RR%R9RtR¿Rº((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytget_by_hosts
.cCsgt|d|ƒD]}|j|ƒ^q}tj|d|ƒ}||}|dk	rn|j||ƒ}ntj|||ƒtj	|ƒS(NR9(
R¶R¸R	taggregate_get_by_metadata_keyReR¼RR¾RR(R†RR9RiRtR¿Rºtall_aggregates((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytget_by_metadata_key's+
N(R¤R¥R¦RtListOfObjectsFieldR­R¸tclassmethodR¼RR¯RÀReRÂRÅ(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyR·÷scCsRddlm}g|jj|jjƒjddƒj|ƒD]}|d^q>S(Niÿÿÿÿ(RRi(tnova.db.sqlalchemyRRRRRR2tlimit(RRÉRtx((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_get_main_db_aggregate_ids4s	c	s7t||ƒ}|sdSt|ƒ}d}xÿ|D]÷}y•tj||ƒ‰ddg‰‡‡fd†ˆjDƒ}t||dˆjƒx!ˆjD]}t|||ƒq•W|d7}t	j
|ˆjƒWq2tj
k
rtjtdƒi|d6ƒq2tjk
r(}tjt|ƒƒq2Xq2W||fS(	NiRLRics.i|]$}|ˆkrtˆ|ƒ|“qS((tgetattr(Rqtfield(R R¢(sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pys
<dictcomp>Hs	is0Aggregate id %(id)i disappeared during migrationR(ii(RËtlenRR‡RR_RLRiR1R	RRRRRJRKRR\terrortstr(	RTR5tmain_db_idst	count_allt	count_hitRR^R%te((R R¢sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pytmigrate_aggregates<s.


	cCs9tjƒ}|jdkr5|jtd|ƒƒndS(Nt
postgresqls1ALTER SEQUENCE aggregates_id_seq RESTART WITH %i;(R&tget_api_engineRZRER(RR8tengine((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_adjust_autoincrementYs
cCs)|jjtjtjjƒƒjƒdS(Ni(RRRtmaxRRRtone(R((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt_get_max_aggregate_idfscCs't|ƒpd}t||dƒdS(Nii(ii(RÜRÙ(RTR5tmax_id((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt%migrate_aggregate_reset_autoincrementksN(Ctoslo_dbRR-toslo_logRtloggingt
oslo_utilsRRtsqlalchemy.ormRRtsqlalchemy.sqlRRtnova.computeRR‘tnovaR	RÈR
R&RRRŠt	nova.i18nR
RRtnova.objectsRRt	getLoggerR¤RJRuR'R±R!R$R1R6R?RVR(RYReR_R`RgtNovaObjectRegistrytregistertNovaPersistentObjectt
NovaObjectRR³RµR¶tObjectListBaseR·R°RËRÕRÙRÜRÞ(((sK/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/aggregate.pyt<module>sV		0	ê		<