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

J‰rgŒ$ã@s¸ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlZddlZddlZzddlZWneyªddlZYn0ddlmZzddlmZWneyæddlmZYn0ddlZe e¡Zejj Z dZ!d	Z"gd
¢Z#d.dd
„Z$dd„Z%dd„Z&dd„Z'dd„Z(dd„Z)dd„Z*dd„Z+ej,ej,ej,dfdd„Z-d/d d!„Z.d"d#„Z/Gd$d%„d%e0ƒZ1d&d'„Z2ej3d(d)„ƒZ4d*d+„Z5d,d-„Z6dS)0éN)Úsleep)ÚProcess)Úprocessutils)Ústrutils)Úlogéz//iš)ÚdataÚsecretz	-passwordú***cCs–ttjƒ ttƒ¡ttƒksDtj t¡dg}tD]}gtj|<gtj|<ttdƒršgtj|<tj	D]0}t
 |d|it
jt
j
B¡}tj| |¡qhtjD]0}t
 |d|it
jt
j
B¡}tj| |¡q tjD]0}t
 |d|it
jt
j
B¡}tj| |¡qØ|D]2}t
 |d|it
jt
j
B¡}tj| |¡qq4t|tƒs\t|tƒrfd |¡}t|tƒr|t |¡}t|tƒr’t |¡}|S)Nz$(%(key)s[0-9]*\s*[ ]\s*)[^\s^\'^\"]+Ú_SANITIZE_PATTERNS_WILDCARDÚkeyú )ÚsetrÚ_SANITIZE_KEYSÚintersectionÚextendZ_SANITIZE_PATTERNS_1Z_SANITIZE_PATTERNS_2ÚhasattrrZ_FORMAT_PATTERNS_WILDCARDÚreÚcompileÚDOTALLÚ
IGNORECASEÚappendZ_FORMAT_PATTERNS_2Z_FORMAT_PATTERNS_1Ú
isinstanceÚlistÚtupleÚjoinÚstrZ
mask_passwordÚdictZmask_dict_password)Úmessager	Z_FORMAT_PATTERNS_3rÚpatternZreg_ex©r ú1/usr/lib/python3.9/site-packages/contego/utils.pyÚsanitize_message)s6










r"c
Gsbz4t||d}| ¡| ¡r2tdƒt |d¡Wn(ty\}z|‚WYd}~n
d}~00dS)N)ÚtargetÚargsé
)rÚstartÚis_aliverÚosÚutimeÚ	Exception)ÚmethodÚprogress_tracking_file_pathr$ÚprocessÚexr r r!Úrun_processKsr/cCs@t tjtj¡}t t | ¡dt d|dd…¡¡dd…¡S)Ni‰Z256sééé)	ÚsocketZAF_INETZ
SOCK_DGRAMZ	inet_ntoaÚfcntlZioctlÚfilenoÚstructÚpack)ZifnameÚsr r r!Úget_ip_addressXsÿþÿr9cCs<ddd„}t ¡}| |¡||ddƒ}|dur4|St ¡S)NcSs"| ||¡r| |||¡SdSdS©N)Z
has_optionÚget)ÚcfgZSectionZOptionZKeyr r r!Úget_config_valuebsz$get_lan_ip.<locals>.get_config_valueZDEFAULTZmy_ip)N)ÚConfigParserÚreadr3Zgethostname)Zconfig_filer=r<Zipr r r!Ú
get_lan_ipas

r@c
CsVzt |¡WnBtyP}z*|jtjkr:tj |¡s<‚n‚WYd}~n
d}~00dS)zeCreate a directory (and any ancestor directories required)

    :param path: Directory to create
    N)r(ÚmakedirsÚOSErrorÚerrnoZEEXISTÚpathÚisdir)rDÚexcr r r!Úensure_treeqsrGcCs:t|dƒt |d¡Wdƒn1s,0YdS)zy Utility to simulate the filesystem "touch" command.

    Args:
        file_path (str): Path to file to be touched.
    ÚaN)Úopenr(r))Z	file_pathr r r!Ú
touch_file€s
rJcCs°t d||f¡z8t|dƒ}| |¡Wdƒn1s>0YWn`tyª}zHtdƒt|dƒ}| |¡Wdƒn1sŒ0YWYd}~n
d}~00dS)Nzupdate_progress %s: %srHr%)ÚLOGÚinforIÚwriter*r)r,Zprogress_msgÚprogress_tracking_filer.r r r!Úupdate_progressŽs,rOcCs¨z8t|dƒ}| ¡WdƒWS1s,0YWnjty¢}zRtdƒt|dƒ$}| ¡WdƒWYd}~S1s„0YWYd}~n
d}~00dS)NÚrr%)rIÚ	readlinesr*r)r,rNr.r r r!Úget_progress™s,rRFcCstj||||dd}|S)NF)ÚstdinÚstdoutÚstderrÚshell)Ú
subprocessÚPopen)ÚcmdrSrTrUrVr-r r r!Úrun_cmd¤s
ÿrZéc
Cs¼zŽd}| ¡durF|dkr$||kr$qFt|ƒ|d7}|durt|ƒq|j ¡|j}|rŠt d|¡t d|t	|j
 ¡dƒ|dœ¡|WSty¶}z|‚WYd}~n
d}~00dS)Nrrz
Result was %sz7Execution error %(exit_code)d (%(stderr)s). cmd %(cmd)szutf-8)Z	exit_coderUrY)
ZpollrrJrSÚcloseÚ
returncoderKÚerrorÚ	exceptionrrUr?r*)r-rYZ
sleep_timeZno_of_countZ
progress_fileÚcountZ_returncoder.r r r!Úpoll_process±s0

ýþÿ	rac

Ksêdd„}z´| dd¡}| dd¡}| dd¡}|dkr`|tƒgd¢ƒddd	d
||d|g}nX|dkr¸| d
d¡}| dd¡}|tƒgd¢ƒddd	d
|d|d|d|d|g}|WStyä}	z|	‚WYd}	~	n
d}	~	00dS)NcSs.|D]$}||durtd||dfƒ‚qdS)Nz8Required parameter: %s for %s connection can not be NonerY)r*)ÚlocalsÚkeysrr r r!Ú
_key_checkÑs
ÿÿz!get_cmd_specs.<locals>._key_checkÚauthorized_keyÚuserÚhostZssh)rerfrgz-ozStrictHostKeyChecking=noz-iú@ZscpÚsource_pathÚ	dest_path)rerfrgrirjz-rú:z/*)r;rbr*)
rYÚkwargsrdrerfrgZcmdspecrirjr.r r r!Ú
get_cmd_specsÐsB
úþø
rmc@seZdZdd„ZdS)Úget_dummy_objectcKs|j |¡dSr:)Ú__dict__Úupdate)Úselfrlr r r!Ú__init__þszget_dummy_object.__init__N)Ú__name__Ú
__module__Ú__qualname__rrr r r r!rnýsrncCs
| d¡S)Nz%Y-%m-%dT%H:%M:%S.%f)Ústrftime)Zatr r r!ÚstrtimesrwcksÄ| ¡}d|vrtj|d<tjfi|¤Ž}zN|VWzt |¡WqÀtyv}zt 	t
dƒ|¡WYd}~qÀd}~00nFzt |¡Wn4ty¼}zt 	t
dƒ|¡WYd}~n
d}~000dS)NÚdirzCould not remove tmpdir: %s)ÚcopyÚCONFÚtempdirÚtempfileZmkdtempÚshutilÚrmtreerBrKr^Z_LE)rlZargdictZtmpdirÚer r r!r{s
(ýr{c
Csdz6| dd¡ d¡d}||d…}t |¡ddWSty^}z|WYd}~Sd}~00dS)zl
        Replaces single quote with double quotes.
        It Parses the Backing File and returns json.
    ú'ú"rkrNÚfileÚfilename)ÚreplaceÚfindÚjsonÚloadsr*)Zbacking_fileZjson_key_positionZbacking_file_contextr.r r r!Ú"parse_encrypted_image_backing_filesrˆc
Cslz,|r*t ddtjd||¡\}}|s*WdSWn:tyf}z"t d |||¡¡WYd}~dSd}~00dS)z2 This utility method changes permission of device.Zsudoz
nova-rootwrapÚchmodTz+cannot change permission of {0} to {1}. {2}NF)rZexecuterzZrootwrap_configr*rKrLÚformat)ZdeviceZpermÚoutÚerrr.r r r!Úchange_device_permission sú
r)r
)r[rN)7r(r†rCr3r4r6rWrÚtimerZmultiprocessingrZoslo_concurrencyrÚ
contextlibr|r}r>ÚImportErrorZconfigparserZ
oslo_utilsrZoslo_logrZloggingZnova.openstack.commonZcontego.confZcontegoZ	getLoggerrsrKZconfrzZ
URL_PREFIXZRWRWRWrr"r/r9r@rGrJrOrRÚPIPErZrarmÚobjectrnrwÚcontextmanagerr{rˆrr r r r!Ú<module>sd

"
	
û

-