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 / oslo_utils / imageutils.pyc
Size: Mime:
ó
MEYc@sXdZddlZddlZddlmZddlmZdefd„ƒYZdS(sq
Helper methods to deal with images.

.. versionadded:: 3.1

.. versionchanged:: 3.14.0
   add paramter format.

iÿÿÿÿN(t_(tstrutilstQemuImgInfocBsƒeZdZejdejƒZejdƒZejdejƒZddd„Z
d„Zd„Zd„Z
d	„Zd
„ZRS(s•Parse Qemu image information from command `qemu-img info`'s output.

    The instance of :class:`QemuImgInfo` has properties: `image`,
    `backing_file`, `file_format`, `virtual_size`, `cluster_size`,
    `disk_size`, `snapshots` and `encrypted`.
    The parameter format can be set to 'json' or 'human'. With 'json' format
    output, qemu image information will be parsed more easily and readable.
    s*^(.*?)\s*\(actual\s+path\s*:\s+(.*?)\)\s*$s^([\w\d\s\_\-]+):(.*)$s.(\d*\.?\d+)(\w+)?(\s*\(\s*(\d+)\s+bytes\s*\))?thumancCsc|dkr·tj|pdƒ}|jdƒ|_|jdƒ|_|jdƒ|_|jdƒ|_|jdƒ|_|jdƒ|_|jd	gƒ|_	|jd
ƒ|_
n¨|j|pÆdƒ}|jdƒ|_|jd
ƒ|_|jdƒ|_|jdƒ|_|jdƒ|_|jdƒ|_|jdgƒ|_	|jd
ƒ|_
dS(Ntjsons{}tfilenamesbacking-filenametformatsvirtual-sizescluster-sizesactual-sizet	snapshotst	encryptedttimagetbacking_filetfile_formattvirtual_sizetcluster_sizet	disk_sizet
snapshot_list(RtloadstgetR
RRR
RRRRt_parse(tselft
cmd_outputRtdetails((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyt__init__2s&cCsd|jd|jd|jd|jd|jd|jg}|jrb|jd|jƒn|jr‚|jd|jƒnd	j	|ƒS(
Ns	image: %ssfile_format: %ssvirtual_size: %ss
disk_size: %sscluster_size: %ssbacking_file: %ss
snapshots: %ss
encrypted: %ss
(
R
RR
RRRRtappendRtjoin(Rtlines((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyt__str__Hs




		cCs9|jƒjƒ}x dD]}|j|dƒ}qW|S(Nt t-R(RR(tlowertstriptreplace(Rtfieldtc((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyt
_canonicalizeWs
cCs¤|jj|ƒ}|s1ttdƒ|ƒ‚n|jdƒ}|jdƒ}|jdƒ}|rwt|jdƒƒS|s‡t|ƒStjd||fdtƒS(NsInvalid input value "%s".iiiis%s%sBt
return_int(	tSIZE_REtsearcht
ValueErrorRtgrouptintRtstring_to_bytestTrue(RRt	real_sizet	magnitudetunit_of_measuret
bytes_info((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyt_extract_bytesas
c
Cs¬|}|dkrE|jj|ƒ}|r¨|jdƒjƒ}q¨nc|dkrx|dkrfd}q¨|j|ƒ}n0|d	kr™|jƒjƒ}n|d
kr¨|sÅ|jdƒjdƒràtdƒ}t	|ƒ‚ng}x¿|r¤|d}|j
ƒ}t|ƒd
krPn|dj
dƒ}	t|	ƒdkrDPn|jdƒ|ji|dd6|dd6|dd6|dd6|dd|dd6ƒqéWn|S(NRiR
RRtNonetunavailableiRRtIDs.Snapshot list encountered but no header found!iit:itidittagtvm_sizetdateiRtvm_clock(svirtual_sizescluster_sizes	disk_size(sNonesunavailable(
tBACKING_FILE_REtmatchR(RR0Rtpopt
startswithRR'tsplittlenR(
Rtroot_cmdtroot_detailstlines_aftertreal_detailst
backing_matchtmsgtlinetline_piecestdate_pieces((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyt_extract_detailsps@	 	

	"c
CsÄi}g|jƒD]}|jƒr|^q}xŒ|r¿|jdƒ}|jj|ƒ}|r4|j|jdƒƒ}|s…q4n|jdƒjƒ}|j|||ƒ}	|	||<q4q4W|S(Niii(t
splitlinesRR<tTOP_LEVEL_RER;R#R(RI(
RRtcontentstxRRFt	top_leveltrootRAR((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyRœs	+	N(t__name__t
__module__t__doc__tretcompiletIR:RKR%R1RRR#R0RIR(((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyR#s				
		,(	RRRRStoslo_utils._i18nRt
oslo_utilsRtobjectR(((sJ/home/tvault/.virtenv/lib/python2.7/site-packages/oslo_utils/imageutils.pyt<module>s