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:
3

 
‹aþã@szddlZddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlZddlZddl
Z
yddlZWnek
r˜ddlZYnXyddlmZWn ek
rÊddlmZYnXddlZejeƒZejjZdd„Zdd	„Zd
d„Zdd
„Zdd„Z dd„Z!dd„Z"ej#ej#ej#dfdd„Z$d$dd„Z%dd„Z&Gdd„de'ƒZ(dd„Z)ej*d d!„ƒZ+d"d#„Z,dS)%éN)Úsleep)ÚProcess)ÚlogécGs`y4t||d}|jƒ|jƒr2tdƒtj|dƒWn&tk
rZ}z
|‚WYdd}~XnXdS)N)ÚtargetÚargsé
)rÚstartZis_aliverÚosÚutimeÚ	Exception)ÚmethodÚprogress_tracking_file_pathrÚprocessÚex©rú/usr/lib/python3.6/utils.pyÚrun_process!src	Cs@tjtjtjƒ}tjtj|jƒdtjd|dd…ƒƒdd…ƒS)Ni‰Z256sééé)	ÚsocketZAF_INETZ
SOCK_DGRAMZ	inet_ntoaÚfcntlZioctlÚfilenoÚstructÚpack)ZifnameÚsrrrÚget_ip_address.s
rcCs<ddd„}tjƒ}|j|ƒ||ddƒ}|dk	r4|StjƒS)NcSs"|j||ƒr|j|||ƒSdSdS)N)Z
has_optionÚget)ÚcfgZSectionZOptionZKeyrrrÚget_config_value8sz$get_lan_ip.<locals>.get_config_valueZDEFAULTZmy_ip)N)ÚConfigParserÚreadrZgethostname)Zconfig_filer rZiprrrÚ
get_lan_ip7s

r#cCsTytj|ƒWn@tk
rN}z$|jtjkr<tjj|ƒs>‚n‚WYdd}~XnXdS)zeCreate a directory (and any ancestor directories required)

    :param path: Directory to create
    N)r
ÚmakedirsÚOSErrorÚerrnoZEEXISTÚpathÚisdir)r'ÚexcrrrÚensure_treeGsr*c
Cs&t|dƒtj|dƒWdQRXdS)zy Utility to simulate the filesystem "touch" command.

    Args:
        file_path (str): Path to file to be touched.
    ÚaN)Úopenr
r)Z	file_pathrrrÚ
touch_fileVs
r-cCs†tjd||fƒy$t|dƒ}|j|ƒWdQRXWnJtk
r€}z.tdƒt|dƒ}|j|ƒWdQRXWYdd}~XnXdS)Nzupdate_progress %s: %sr+r)ÚLOGÚinfor,Úwriterr)rZprogress_msgÚprogress_tracking_filerrrrÚupdate_progressdsr2cCshyt|dƒ
}|jƒSQRXWnDtk
rb}z(tdƒt|dƒ
}|jƒSQRXWYdd}~XnXdS)NÚrr)r,Ú	readlinesrr)rr1rrrrÚget_progressosr5FcCstj||||dd}|S)NF)ÚstdinÚstdoutÚstderrÚshell)Ú
subprocessÚPopen)Úcmdr6r7r8r9rrrrÚrun_cmdzsr=écCs¼yd}xB|jƒdkrH|dkr&||kr&Pt|ƒ|d7}|dk	rt|ƒqW|jjƒ|j}|rŽtjd|ƒtjd|t	|j
jƒdƒ|dœƒ|Stk
r¶}z
|‚WYdd}~XnXdS)Nrrz
Result was %sz7Execution error %(exit_code)d (%(stderr)s). cmd %(cmd)szutf-8)Z	exit_coder8r<)
Zpollrr-r6ÚcloseÚ
returncoder.ÚerrorZ	exceptionÚstrr8r"r)rr<Z
sleep_timeZno_of_countZ
progress_fileÚcountZ_returncoderrrrÚpoll_process‡s*
rDc
Ksîdd„}yº|jddƒ}|jddƒ}|jddƒ}|dkrb|tƒdddgƒdddd	||d
|g}n^|dkrÀ|jddƒ}|jd
dƒ}|tƒddddd
gƒdddd	|d|d
|d|d|g}|Stk
rè}	z
|	‚WYdd}	~	XnXdS)NcSs2x,|D]$}||dkrtd||dfƒ‚qWdS)Nz8Required parameter: %s for %s connection can not be Noner<)r)ÚlocalsÚkeysÚkeyrrrÚ
_key_check§s

z!get_cmd_specs.<locals>._key_checkÚauthorized_keyÚuserÚhostZsshz-ozStrictHostKeyChecking=noz-iú@ZscpÚsource_pathÚ	dest_pathz-rú:z/*)rrEr)
r<ÚkwargsrHrIrJrKZcmdspecrMrNrrrrÚ
get_cmd_specs¦s<rQc@seZdZdd„ZdS)Úget_dummy_objectcKs|jj|ƒdS)N)Ú__dict__Úupdate)ÚselfrPrrrÚ__init__Ôszget_dummy_object.__init__N)Ú__name__Ú
__module__Ú__qualname__rVrrrrrRÓsrRcCs
|jdƒS)Nz%Y-%m-%dT%H:%M:%S.%f)Zstrftime)ZatrrrÚstrtime×srZcksz|jƒ}d|krtj|d<tjf|Ž}z
|VWdytj|ƒWn2tk
rr}ztj	t
dƒ|ƒWYdd}~XnXXdS)NÚdirzCould not remove tmpdir: %s)ÚcopyÚCONFÚtempdirÚtempfileZmkdtempÚshutilZrmtreer%r.rAZ_LE)rPZargdictZtmpdirÚerrrr^Ús

r^cCsZy4|jddƒjdƒd}||d…}tj|ƒddStk
rT}z|Sd}~XnXdS)zl
        Replaces single quote with double quotes.
        It Parses the Backing File and returns json.
    ú'ú"rOrNÚfileÚfilename)ÚreplaceÚfindÚjsonÚloadsr)Zbacking_fileZjson_key_positionZbacking_file_contextrrrrÚ"parse_encrypted_image_backing_fileèsrj)r>rN)-r
rhr&rrrr:ZtimerZmultiprocessingrÚ
contextlibr_r`r!ÚImportErrorZconfigparserZoslo_logrZloggingZnova.openstack.commonZcontego.confZcontegoZ	getLoggerrWr.Zconfr]rrr#r*r-r2r5ÚPIPEr=rDrQÚobjectrRrZÚcontextmanagerr^rjrrrrÚ<module>sP

	

-