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:
ó
ˍEYc@sÚdZddlZddlZddlZddlZddlmZddlZddl	m
Z
ddl	mZddlm
Z
ejeƒZdejfd„ƒYZd	efd
„ƒYZdefd„ƒYZdS(
s#Remote filesystem client utilities.iÿÿÿÿN(tlog(t	exception(texecutor(t_tRemoteFsClientcBs}eZdd„Zd„Zd„Zd„Zd„Zdd„Zddd„Z	dd„Z
d„Zd	„Zdd
„Z
RS(cOs÷tt|ƒj|d|||Židd6dd6dd6dd6dd6dd6}||krstjd	|ƒ‚n||_||}|j|d
ƒ|_|jsÄtjdt	dƒ|ƒ‚n|j|d
ƒ|_
|dkró|jƒndS(Ntexecutetnfstsmbfstcifst	glusterfst	vzstoragetquobytetscalitytprotocolt_mount_point_baseterrs%s_mount_point_base requiredt_mount_options(tsuperRt__init__RtProtocolNotSupportedt_mount_typetgett_mount_basetInvalidParameterValueRRt_check_nfs_options(tselft
mount_typetroot_helperRtargstkwargstmount_type_to_option_prefixt
option_prefix((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR#s(

	
		cCs|jS(N(R(R((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pytget_mount_baseAscCs7t|tjƒr$|jdƒ}ntj|ƒjƒS(sUReturn a string that represents hash of base_str
        (in a hex format).

        sutf-8(t
isinstancetsixt	text_typetencodethashlibtmd5t	hexdigest(Rtbase_str((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyt
_get_hash_strDscCstjj|j|j|ƒƒS(sVGet Mount Point.

        :param device_name: example 172.18.194.100:/var/nfs
        (tostpathtjoinRR)(Rtdevice_name((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pytget_mount_pointMsc	Cs„|jdddƒ\}}|jdƒ}i}xM|D]E}|jƒ}dt|ƒkr7|d}|d}|||<q7q7W|S(Ntmounttcheck_exit_codeis
i(t_executetsplittlen(	Rtoutt_errtlinestmountstlinettokenstdevicet	mnt_point((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyt_read_mountsUs


cCs–|j|ƒ}||jƒkr5tjd|ƒdS|jdd|ddƒ|jdkrs|j|||ƒn|j|j|||j|ƒdS(sMount given share.sAlready mounted: %sNtmkdirs-pR0iR(	R.R<tLOGtinfoR1Rt
_mount_nfst	_do_mountR(Rtsharetflagst
mount_path((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR/ascCs†dd|g}|dk	r1|jd|gƒn|dk	rM|j|ƒn|j||gƒ|jd|jdtdd|ŒdS(	s+Mounts share based on the specified params.R/s-ts-oRtrun_as_rootR0iN(tNonetextendR1t_root_helpertTrue(RRRBRDt
mount_optionsRCtmnt_cmd((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyRApscCsÜi}x¨t|jjƒdtƒD]‹}|j|}y?|jd||||ƒtjdi|d6|d6ƒdSWq"tk
r¬}tj	|ƒ||<tjd|ƒq"Xq"Wt
jtdƒi|d6|d	6ƒ‚dS(
s*Mount nfs share using present mount types.treverseRs"Mounted %(sh)s using %(mnt_type)s.tshtmnt_typeNsFailed to do %s mount.s4NFS mount failed for share %(sh)s. Error - %(error)sterror(
tsortedt_nfs_mount_type_optstkeysRIRAR>tdebugt	ExceptionR"R#RtBrickExceptionR(Rt	nfs_shareRDRCt
mnt_errorsRNtoptionste((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR@}s"
	
cCsŠi|jd6|_dddg}x'|D]}|j|j|ƒr)dSq)W|j|jddƒ}|j|dd	ƒ}||jd
<dS(s+Checks and prepares nfs mount type options.Rs^nfsverss^verss^v[\d]Ntverst4tminorversiont1tpnfs(RRQt_option_existst_update_option(Rtnfs_vers_opt_patternstoptt	pnfs_opts((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR“s
cCsu|r.g|jdƒD]}|jƒ^qng}d}x4|D],}|d}tj||ddƒrA|SqAWdS(s@Checks if the option exists in nfs options and returns position.t,iiRC(R2tstriptretmatch(RRXtopt_patterntxtposRb((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR_¢s4

cCs°|r.g|jdƒD]}|jƒ^qng}|j||ƒ}|r`|j|dƒn|rvd||fn|}|j|ƒt|ƒdkr¨dj|ƒS|dS(s=Update option if exists else adds it and returns new options.Rdis%s=%si(R2ReR_tpoptappendR3R,(RRXtoptiontvalueRitoptsRjRb((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR`¬s4
N(t__name__t
__module__RFRR R)R.R<R/RAR@RR_R`(((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR!s							
tScalityRemoteFsClientcBs)eZdd„Zd„Zdd„ZRS(cOs}tt|ƒj||d|||Ž||_|jddƒjdƒ|_|jsptjdt	dƒƒ‚nd|_dS(NRtscality_mount_point_basett/Rs!scality_mount_point_base required(RRrRRRtrstripRRRRRFR(RRRRRR((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR¸s
			cCstjj|j|dƒS(Nt00(R*R+R,R(RR-((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR.ÅscCsk|j|jƒkr,tjd|jƒdS|jdd|jddƒtt|ƒjdd|jƒdS(	s÷Mount the Scality ScaleOut FS.

        The `share` argument is ignored because you can't mount several
        SOFS at the same type on a single server. But we want to keep the
        same method signature for class inheritance purpose.
        sAlready mounted: %sNR=s-pR0itsofss/etc/sfused.conf(RR<R>R?R1RRrRA(RRBRC((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyR/ÊsN(RpRqRFRR.R/(((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyRr·s	tVZStorageRemoteFSClientcBs eZd„Zddd„ZRS(c	
Cstjddƒ}tjj|dƒ}t|dƒ)}x|D]}|j|dƒq@WWdQXtjjd|ƒ}tjj|ƒrÅtjj|dƒ}|jdd||d	|j	d
t
ƒn%|jdd||d	|j	d
t
ƒ|jdd
d|d	|j	d
t
ƒdS(Ntprefixs
vzstorage-tbs_listtws
s/etc/pstorage/clusterstcps-fRREs-rftchowns-Rs	root:root(ttempfiletmkdtempR*R+R,topentwritetexistsR1RHRI(	Rtcluster_nametmdssttmp_dirttmp_bs_pathtftmdstconf_dirtbs_path((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyt_vzstorage_write_mds_listÚs
cCs!tjd|ƒ}|s:tdƒ|}tj|ƒ‚n|jdƒ}|jdƒ}	|jdƒ}
|r|jdƒ}|j|	|ƒn|
rÆ|jdd|	d	d
d|
d|j	d
t
ƒndd|	g}|rë|j|ƒn|j|gƒ|jd|j	d
t
dd|ŒdS(Ns((?:(\S+):\/)?([a-zA-Z0-9_-]+)(?::(\S+))?shInvalid Virtuozzo Storage share specification: %r.Must be: [MDS1[,MDS2],...:/]<CLUSTER NAME>[:PASSWORD].iiiRdtpstorages-cs	auth-nodes-Pt
process_inputRREspstorage-mountR0i(RftsearchRRRUtgroupR2RŒR1RHRIRG(RRtvz_shareRDRJRCtmtmsgR…R„tpasswdRK((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyRAìs*	N(RpRqRŒRFRA(((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyRyÙs	(t__doc__R%R*RfRtoslo_logRtloggingR"tos_brickRRt
os_brick.i18nRt	getLoggerRpR>tExecutorRRrRy(((sO/home/tvault/.virtenv/lib/python2.7/site-packages/os_brick/remotefs/remotefs.pyt<module>s–"