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 / compute_node.pyc
Size: Mime:
ó
±EYc@sAddlmZddlmZddlmZddlm	Z	ddlm
Z
ddlZddlm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZddlmZejjZejeƒZejjd
ejejfd„ƒYƒZejjdejejfd„ƒYƒZ dS(iÿÿÿÿ(t	exception(tlog(t	jsonutils(t	uuidutils(tversionutilsN(tdb(t_LW(tobjects(tbase(tfields(tpci_device_pooltComputeNodecBsñeZdZiejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejƒd6ejƒd6ejƒd	6ejƒd
6ejƒd6ejƒd6ejƒd
6ejƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ejdeƒd6ej	deƒd6ejdeƒd6ej
dƒd6ejddeƒd6ejƒd6ejƒd6ejƒd 6Zd!„Z
ed"„ƒZed#„ƒZejd$„ƒZejd%„ƒZejd&„ƒZejed'„ƒZed(„ƒZed)„ƒZed*„ƒZed+„ƒZd,„Zd-„Zd.„Zejd/„ƒZ ejed0„ƒZ!ejd1„ƒZ"d2„Z#RS(3s1.16t	read_onlytidtuuidtnullablet
service_idthosttvcpust	memory_mbtlocal_gbt
vcpus_usedtmemory_mb_usedt
local_gb_usedthypervisor_typethypervisor_versionthypervisor_hostnametfree_ram_mbtfree_disk_gbtcurrent_workloadtrunning_vmstcpu_infotdisk_available_leasttmetricststatsthost_ipt
numa_topologytHVSpectsupported_hv_specstPciDevicePoolListtpci_device_poolstcpu_allocation_ratiotram_allocation_ratiotdisk_allocation_ratiocCs±tt|ƒj||ƒtj|ƒ}|dkrMd|krM|d=qMn|dkrrd|krr|d=qrn|dkr­d|kr”|d=nd|kr­|d=q­n|dkr%|jd
ƒdkr%y-tjj	|j
|dƒ}|j|d
<Wq%tj
tfk
r!d|d
<q%Xn|dkrGd|krG|d=n|dkrid|kri|d=n|dkr‹d|kr‹|d=n|dkr­d|kr­|d=ndS(NiiR+iRiR*R)i
RRiÿÿÿÿiiR$iR#iR"(ii(ii(ii(ii
(ii(ii(ii(ii(tsuperRtobj_make_compatibleRtconvert_version_to_tupletgettNoneRtServicetget_by_compute_hostt_contextR
RtComputeHostNotFoundtKeyError(tselft	primitivettarget_versiontservice((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyR-as8



!	


c	Csëd|ks|ddkr²d|kr²|ddk	r²y tjj|j|dƒ}Wntjk
rxd|_dSXy|j|_Wqçttj	fk
r®d|_qçXn5d|krÞ|ddk	rÞ|d|_n	d|_dS(NRR(
R0RR1t	get_by_idR3RtServiceNotFoundRtAttributeErrortOrphanedObjectError(tcomputet
db_computeR9((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_host_from_db_object†s 		c
Csêtddddgƒ}t|jƒ|}xå|D]Ý}||}|dksf|dksf|dkrÿ|dkr{d}n|dkrÿtt|ƒ}|dkr·|dkr·d	}n|dkrØ|dkrØd
}n|dkrü|dkrüd}qüqÿnt|||ƒq2W|d}|r8tj|ƒ|_n|j	dƒ}|rtj|ƒ}	g|	D]}
t
jj|
ƒ^qc}	|	|_
n|j	d
ƒ}|dk	rºtj|ƒ}n||_||_|j||ƒ|jƒ|S(NR"R&RR(R)R*R+gg0@gø?gð?tsupported_instancest	pci_stats(tsetR	R0tgetattrtCONFtsetattrRtloadsR"R/RR%t	from_listR&R
tfrom_pci_statsR(R3R@tobj_reset_changes(tcontextR>R?t
special_casesR	tkeytvalueR"t	sup_inststhv_specsthv_specRB((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_from_db_object£sL

			
"		
cCs(tj||ƒ}|j||ƒ|ƒS(N(Rtcompute_node_getRR(tclsRKt
compute_idR?((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyR:èscCs2tj||ƒ}|d}|j||ƒ|ƒS(Ni(Rtcompute_nodes_get_by_service_idRR(RTRKRtdb_computesR?((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytget_by_service_idïs
cCs+tj|||ƒ}|j||ƒ|ƒS(N(Rt%compute_node_get_by_host_and_nodenameRR(RTRKRtnodenameR?((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytget_by_host_and_nodename÷scCstj|||ƒ}|dS(Ni(tComputeNodeListtget_all_by_host(RTRKRt	use_slavetcomputes((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt%get_first_node_by_host_for_old_compatþscCs8|jddƒ}|dk	r4tj|ƒ|d<ndS(NR"(tpopR0Rtdumps(tupdatesR"((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_convert_stats_to_db_formatscCs/|jddƒ}|r+t|ƒ|d<ndS(NR#(RaR0tstr(RcR#((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_convert_host_ip_to_db_formatscCsW|jddƒ}|dk	rSg|D]}|jƒ^q%}tj|ƒ|d<ndS(NR&RA(RaR0tto_listRRb(RcRPRQ((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt)_convert_supported_instances_to_db_formatscCsPd|krL|jdƒ}|dk	r?tj|jƒƒ}n||d<ndS(NR(RB(RaR0RRbtobj_to_primitive(Rctpools((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_convert_pci_stats_to_db_formats
cCsátjj|j|jƒ}|s%tSxµ|D]­}|jtjj	krPd}nX|jtjj
krnd}n:|jtjjkrŒd}ntj
tdƒ|jƒq,||jƒkr,t||ƒ|_|jƒq,q,WtS(s2Update inventory records from legacy model values.RRRs+Unknown inventory class %s for compute node(Rt
InventoryListt!get_all_by_resource_provider_uuidR3RtFalsetresource_classR	t
ResourceClasstVCPUt	MEMORY_MBtDISK_GBtLOGtwarningRtobj_what_changedRDttotaltsavetTrue(R6tinventory_listt	inventoryRM((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytupdate_inventory#s$	
			
cCs¶|jjdƒd}d||jf}tjd|jd|jd|ƒ}y|jƒWnTtjk
r±tjj	|j|jƒ}|j
|kr²||_
|jƒq²nX|S(Nt.is
compute-%s-%sRKRtname(RtsplitRRtResourceProviderR3tcreatetdb_exctDBDuplicateEntrytget_by_uuidR~Rx(R6t	shortnametrp_nametrp((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_ensure_resource_provider>s			cCs!|jƒ}tjd|jd|dtjjd|jddddd	dd
dd|jƒ	}|j	ƒtjd|jd|dtjj
d|jddddd	dd
dd|jƒ	}|j	ƒtjd|jd|dtjj
d|jddddd	dd
dd|jƒ	}|j	ƒdS(
sCreate the initial inventory objects for this compute node.

        This is only ever called once, either for the first time when a compute
        is created, or after an upgrade where the required services have
        reached the required version.
        RKtresource_providerRoRwtreserveditmin_unititmax_unitt	step_sizetallocation_ratioN(RˆRt	InventoryR3R	RpRqRR)RRrRR*RsRR+(R6R‡tcputmemtdisk((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytcreate_inventoryNs>	
	
	cCsÅ|jdƒr*tjddddƒ‚n|jƒ}d|krbtjƒ|d<|d|_n|j|ƒ|j|ƒ|j	|ƒ|j
|ƒtj|j
|ƒ}|j|j
||ƒdS(NR
tactionRtreasonsalready createdR(tobj_attr_is_setRtObjectActionErrortobj_get_changesRt
generate_uuidRRdRfRhRkRtcompute_node_createR3RR(R6RcR?((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyR}s



cCs…|jƒ}|jddƒ|j|ƒ|j|ƒ|j|ƒ|j|ƒtj|j	|j
|ƒ}|j|j	||ƒdS(NR
(R˜RaR0RdRfRhRkRtcompute_node_updateR3R
RR(R6tprune_statsRcR?((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyRxs



cCstj|j|jƒdS(N(Rtcompute_node_deleteR3R
(R6((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytdestroysc
Cs¦ddddddddd	d
ddd
g
}x1|D])}||kr4t||||ƒq4q4Wd|kr¢|d}g|D]}tjj|ƒ^q~|_ndS(NRRRRRRRR$RRRR R#RA(RFRR%RHR&(R6t	resourcestkeysRMtsits((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytupdate_from_virt_driver¡s	

($t__name__t
__module__tVERSIONR	tIntegerFieldRyt	UUIDFieldtStringFieldtDictOfNullableStringsFieldtIPAddressFieldtListOfObjectsFieldtObjectFieldt
FloatFieldR-tstaticmethodR@RRRtremotable_classmethodR:RXR[RnR`RdRfRhRkR|RˆR“t	remotableRRxRžR£(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyR#sf










	%E			/
R\cBs¥eZdZiejdƒd6Zejd„ƒZejd	d	d„ƒZ	ejd„ƒZ
ejed„ƒZe
ejed„ƒƒZejed„ƒZRS(
s1.15RRcCs.tj|ƒ}tj|||ƒtj|ƒS(N(Rtcompute_node_get_allRt
obj_make_listRR(RTRKRW((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytget_allÍscCs:tj|d|d|ƒ}tj|||ƒtj|ƒS(Ntlimittmarker(Rt"compute_node_get_all_by_paginationRR³RR(RTRKRµR¶RW((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytget_by_paginationÓscCs1tj||ƒ}tj|||ƒtj|ƒS(N(Rt!compute_node_search_by_hypervisorRR³RR(RTRKthypervisor_matchRW((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pytget_by_hypervisorÚs		cCsRytj||ƒ}Wntjk
r2g}nXtj|||ƒtj|ƒS(N(RRVRR;RR³RR(RTRKRR^RW((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt_get_by_serviceãs
cCstj||ƒS(N(Rtcompute_node_get_all_by_host(RKRR^((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt _db_compute_node_get_all_by_hostïscCs7|j||d|ƒ}tj|||ƒtj|ƒS(NR^(R¾RR³RR(RTRKRR^RW((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyR]ôs	N(R¤R¥R¦R	R¬RR°R´R0R¸R»RnR¼R¯Rtselect_db_reader_modeR¾R](((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyR\µs	(!toslo_dbRR‚toslo_logRtloggingtoslo_serializationRt
oslo_utilsRRt	nova.conftnovaRt	nova.i18nRRtnova.objectsRR	R
tconfREt	getLoggerR¤RttNovaObjectRegistrytregistertNovaPersistentObjectt
NovaObjectRtObjectListBaseR\(((sN/home/tvault/.virtenv/lib/python2.7/site-packages/nova/objects/compute_node.pyt<module>s&ÿ’