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:
ó
w=4\c@s
dZddlZddlZddlZddlZddlmZddlZddlm	Z	ddl
mZddlmZddlmZej
dƒZd	„Zd
dd„ƒYZeƒZdZeƒZed
„Zd„Zd„Zdefd„ƒYZdS(s*Support for mounting images with qemu-nbd.iÿÿÿÿN(tLock(tevent(t
subprocess(tgreenthread(tpoolss	nbd[0-9]+cGst|dƒS(Ni(tstr(targs((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt_stlogcBs5eZd„Zd„Zd„Zd„Zd„ZRS(cGs
|dGHdS(Ni((tselftarg((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytinfo$scGs
|dGHdS(Ni((R	R
((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt	exception'scGs
|dGHdS(Ni((R	R
((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyterror*scGs
|dGHdS(Ni((R	R
((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytdebug-scGs
|dGHdS(Ni((R	R
((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytcritical0s(t__name__t
__module__RRR
RR(((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyR#s
				i
cs‡fd†}|S(sSynchronization decorator.cs‡‡fd†}|S(Ncs-ˆjƒzˆ||ŽSWdˆjƒXdS(N(tacquiretrelease(Rtkw(tftlock(sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytnew_function=s
((RR(R(Rsj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytwrap<s((RR((Rsj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytsynchronized:scOs |jddƒ}|jddgƒ}t}t|tƒrO|}dg}nt|tƒrj|g}n|jdtƒ}|jddƒ}|jdtƒ}|jdtƒ}t|ƒrÑtd	|ƒ‚nd
gt	|ƒ}t
t|ƒ}x¦|dkr›|d8}z{ytj
tdƒdj|ƒƒtj}	tj|d
|	d|	d|	dtd|ƒ}
d}|dk	rŒ|
j|ƒ}n|
jƒ}|
jjƒ|
j}|rtj
tdƒ|ƒ|r||kr|\}
}td|d|
d|ddj|ƒƒ‚qn|ddfSWnZtk
r…|sE‚q†tj
tdƒ|ƒ|r†tjtjddƒdƒq†nXWdtjdƒXqöWdS(Nt
process_inputtcheck_exit_codeitdelay_on_retrytattemptsitrun_as_roottshells-Got unknown keyword args to utils.execute: %rtsudosRunning cmd (subprocess): %st tstdintstdouttstderrt	close_fdss
Result was %st	exit_codetcmdts%r failed. Retrying.iiÈgY@(tpoptNonetFalset
isinstancetbooltinttTruetlentExceptontlisttmapRtLOGRRtjoinRtPIPEtPopentcommunicateR"tcloset
returncodet	ExceptionRtsleeptrandomtrandint(R'tkwargsRRtignore_exit_codeRRRRt_PIPEtobjtresultt_returncodeR#R$((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytexecuteGsh

 		
	
(cOs~|jdtƒ}yt||Ž\}}t}Wntk
rJt}nX|rt|rt|rttj|ƒd}n||fS(sš
    A wrapper around execute() to more easily handle warnings and errors.

    Returns an (out, err) tuple of strings containing the output of
    the command's stdout and stderr.  If 'err' is not empty then the
    command can be considered to have failed.

    :discard_warnings   True | False. Defaults to False. If set to True,
                        then for succeeding commands, stderr is cleared

    tdiscard_warningsR((R)R+RER;R/R4R(RR?RFtoutterrtfailed((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyttrycmd†s



	tNbdMountcBsteZdZdZddd„Zd„Zd„Zd„Ze	ƒd„ƒZ
d„Zd„Zd	„Z
d
„ZRS(sqemu-nbd support disk images.tnbdcCsV||_||_||_d|_t|_|_|_|_||_	|_
dS(NR((timaget	partitiont	mount_dirR
R+tlinkedtmappedtmountedt
automappedtdevicet
mapped_device(R	RMRORNRT((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt__init__¦s				cCsttjtjdƒƒS(sDetect nbd device files.s/sys/block/(tfiltert
NBD_DEVICE_REtmatchtostlistdir(R	((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt_detect_nbd_devices´scCs€xf|D]^}tjjtjjd|dƒƒstjjd|ƒsK|Stjtdƒ|ƒqqWtjtdƒƒdS(Ns/sys/block/tpids/var/lock/qemu-nbd-%ssBNBD error - previous umount did not cleanup /var/lock/qemu-nbd-%s.sNo free nbd devices(	RZtpathtexistsR5R4R
RtwarningR*(R	tdevicesRT((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt_find_unused¸s
$cCsŒtjjdƒs8tjtdƒƒtdƒ|_dS|jƒ}tj	|ƒ|j
|ƒ}|sytdƒ|_dStjjd|ƒS(Ns/sys/block/nbd0snbd module not loadeds"nbd unavailable: module not loadedsNo free nbd devicess/dev(RZR^R_R4R
RR*R\R=tshuffleRbR5(R	RaRT((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt
_allocate_nbdÃs
cCsq|jƒ}|stStjdi|d6|jd6ƒtdd||jdtƒ\}}|r“tdƒ||_tj	tdƒ|jƒtSd	t
jj|ƒ}x¯t
tƒD]2}t
jj|ƒrÛ||_Pntjd
ƒq¶Wtdƒ||_tj	tdƒ|jƒtdd|dtƒ\}}|rWtjtd
ƒ|ƒntSd|_t|_tS(Ns&Get nbd device %(dev)s for %(imgfile)stdevtimgfilesqemu-nbds-cRsqemu-nbd error: %ssNBD mount error: %ss/sys/block/%s/pidisnbd device %s did not show ups-ds6Detaching from erroneous nbd device returned error: %sR((RdR+R4RRMRJR/RR
RRZR^tbasenametrangettimeout_nbdR_RTttimeR<R`RP(R	RTt_outRHtpidfilet_i((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt_inner_get_devÒs8				cCs‚tjƒ}|jƒ}xc|s}tjtdƒƒtjdƒtjƒ|tkrntjtdƒƒtS|jƒ}qWt	S(s1Some implementations need to retry their get_dev.s2Device allocation failed. Will retry in 2 seconds.is0Device allocation failed after repeated retries.(
RjRnR4RRR<RiR`R+R/(R	t
start_timeRT((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt_get_dev_retry_helperûs	
cCs
|jƒS(sRetry requests for NBD devices.(Rp(R	((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pytget_dev
scCsS|js
dStjd|jƒtjdd|jdtƒt|_d|_dS(NsRelease nbd device %ssqemu-nbds-dR(	RPR4RRTtutilsRER/R+R*(R	((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt	unget_devs		cCs,|jr(tjdd|jdtƒndS(sflush NBD block device buffer.tblockdevs--flushbufsRN(RTRrRER/(R	((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt	flush_devs	N(RRt__doc__tmodeR*RVR\RbRdRRnRpRqRsRu(((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyRK¢s			)			((RvRZR=treRjt	threadingRRteventletRteventlet.greenRRtcompileRXRRR4RitworkloadlockRRERJtobjectRK(((sj/home/tvault/.virtenv/lib/python2.7/site-packages/contego/nova/extension/driver/filemanager_scripts/nbd.pyt<module>s(			
	?