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    
idna / lib / python2.7 / site-packages / nova / virt / libvirt / volume / remotefs.pyc
Size: Mime:
ó
±EYc@sEddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddlZddlZ
ddlmZmZddl
mZejeƒZe
jjZdd„Zd„Zd	efd
„ƒYZejejƒdefd„ƒYƒZd
efd„ƒYZd„Z defd„ƒYZ!dS(iÿÿÿÿN(tprocessutils(tlog(timportutils(t_LEt_LW(tutilscCs¶tjdd|ƒdd|g}|dk	r>|j|ƒn|j||gƒytjdt|ŒWnGtjk
r±}dtj|ƒkr«t	j
tdƒ|ƒq²‚nXdS(	sMount a remote export to mount_path.

    :param mount_path: place where the remote export will be mounted
    :param export_path: path of the export to be mounted
    :export_type: remote export type (e.g. cifs, nfs, etc.)
    :options: A list containing mount options
    tmkdirs-ptmounts-ttrun_as_rootsDevice or resource busys%s is already mountedN(RtexecutetNonetextendtTrueRtProcessExecutionErrortsixt	text_typetLOGtwarningR(t
mount_pathtexport_pathtexport_typetoptionst	mount_cmdtexc((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pytmount_share#s	c	Csy&tjd|dtdddtƒWnTtjk
r|}dtj|ƒkrctjd|ƒq}tj	t
dƒ|ƒnXd	S(
sUnmount a remote share.

    :param mount_path: remote export mount point
    :param export_path: path of the remote export to be unmounted
    tumountRtattemptsitdelay_on_retrystarget is busysThe share %s is still in use.sCouldn't unmount the share %sN(RR	RRR
RRRtdebugt	exceptionR(RRR((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyt
unmount_share<stRemoteFilesystemcBseeZdZd„Zddd„Zddd„Zddd„Zddd„Zdde	d„Z
RS(sCRepresents actions that can be taken on a remote host's filesystem.cCsGtjj}djt|jƒgƒ}|d7}tj|ƒ|_dS(Nt.tDriver(	tCONFtlibvirttremote_filesystem_transporttjoint__name__t
capitalizeRt
import_objecttdriver(tselft	transporttcls_name((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyt__init__Ps
cCs6tjd||ƒ|jj||d|d|ƒdS(Ns"Creating file %s on remote host %st
on_executet
on_completion(RRR)tcreate_file(R*thosttdst_pathR.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR0VscCs6tjd||ƒ|jj||d|d|ƒdS(Ns"Removing file %s on remote host %sR.R/(RRR)tremove_file(R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR3\scCs6tjd||ƒ|jj||d|d|ƒdS(Ns'Creating directory %s on remote host %sR.R/(RRR)t
create_dir(R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR4bscCs6tjd||ƒ|jj||d|d|ƒdS(Ns'Removing directory %s on remote host %sR.R/(RRR)t
remove_dir(R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR5hsc	Cs<tjd||ƒ|jj||d|d|d|ƒdS(NsCopying file %s to %sR.R/tcompression(RRR)t	copy_file(R*tsrctdstR.R/R6((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR7nsN(R&t
__module__t__doc__R-R
R0R3R4R5RR7(((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyRMs	tRemoteFilesystemDrivercBsbeZejd„ƒZejd„ƒZejd„ƒZejd„ƒZejd„ƒZRS(cCsdS(s2Create file on the remote system.

        :param host: Remote host
        :param dst_path: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
                              cache
        N((R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR0xscCsdS(s1Removes a file on a remote host.

        :param host: Remote host
        :param dst_path: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
                              cache
        N((R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR3ƒscCsdS(s7Create directory on the remote system.

        :param host: Remote host
        :param dst_path: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
                              cache
        N((R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR4ŽscCsdS(s6Removes a directory on a remote host.

        :param host: Remote host
        :param dst_path: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
                              cache
        N((R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR5™scCsdS(s¤Copy file to/from remote host.

        Remote address must be specified in format:
            REM_HOST_IP_ADDRESS:REM_HOST_PATH
        For example:
            192.168.1.10:/home/file

        :param src: Source address
        :param dst: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
        N((R*R8R9R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR7¤s(	R&R:tabctabstractmethodR0R3R4R5R7(((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR<vs
t	SshDrivercBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs#tj|d|d|d|ƒdS(NttouchR.R/(Rtssh_execute(R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR0¶scCs#tj|d|d|d|ƒdS(NtrmR.R/(RRA(R*R1R9R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR3ºsc	Cs&tj|dd|d|d|ƒdS(NRs-pR.R/(RRA(R*R1R2R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR4¾sc	Cs&tj|dd|d|d|ƒdS(NRBs-rfR.R/(RRA(R*R1R9R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR5Âsc	Cs&tjdd||d|d|ƒdS(Ntscps-rR.R/(RR	(R*R8R9R.R/R6((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR7Æs(R&R:R0R3R4R5R7(((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR?´s
				cs"tjˆƒ‡fd†ƒ}|S(s^Creates temporary directory for rsync purposes.
    Removes created directory in the end.
    csBtjƒ}||d<zˆ||ŽSWdtjdd|ƒXdS(Nttmp_dir_pathRBs-rf(ttempfiletmkdtempRR	(targstkwargsRD(tfunction(sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pytdecorated_functionÑs

(t	functoolstwraps(RIRJ((RIsV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pytcreate_tmp_dirÌstRsyncDrivercBskeZed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZed„ƒZ	d„Z
RS(c
KsÛtjjtjj|ƒƒ}tjj|d|jtjjƒƒ}tjdd|d|d|ƒtjj	tjj|ƒƒ}tjj||ƒ}	tjd|	d|d|ƒt
j|d||d|d|ƒdS(NRDRs-pR.R/R@(tostpathtdirnametnormpathR%tstriptsepRR	tbasenameRNt_synchronize_object(
R*R1R2R.R/RHtdir_patht
local_tmp_dirt	file_nametlocal_tmp_file((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR0âs


	cKs'tj|d||d|d|ƒdS(NRDR.R/(RNt_remove_object(R*R1R9R.R/RH((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR3öscKs€tjj|ƒ}tjj|d|jtjjƒƒ}tjdd|d|d|ƒtj	|d||d|d|ƒdS(NRDRs-pR.R/(
RORPRRR%RSRTRR	RNRV(R*R1R2R.R/RHRWRX((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR4ýs

	c
Ksftjddd|dtjjtj||ƒd|d|ƒtj|d||d|d|ƒdS(Ntrsyncs	--archives--delete-excludedRDR.R/(RR	RORPRTtformat_remote_pathRNR[(R*R1R9R.R/RH((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR5s
cCs‡tjddddtjjtjj|ƒƒddtjj|ƒtjjtj|tjjtjj|ƒƒƒd|d|ƒ	d	S(
s{Removes a file or empty directory on a remote host.

        :param src: Empty directory used for rsync purposes
        :param host: Remote host
        :param dst: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
                              cache
        R\s	--archives--deletes	--includes	--excludet*R.R/N(	RR	RORPRURRRTR]RQ(R8R1R9R.R/((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR[s	!cCsqtjj|dtjj|ƒjtjjƒƒ}tjdddd|tj|tjjƒd|d|ƒdS(	s{Creates a file or empty directory on a remote host.

        :param src: Empty directory used for rsync purposes
        :param host: Remote host
        :param dst: Destination path
        :param on_execute: Callback method to store pid of process in cache
        :param on_completion: Callback method to remove pid of process from
                              cache
        s./R\s	--archives
--relatives--no-implied-dirsR.R/N(	RORPR%RRRSRTRR	R](R8R1R9R.R/trelative_tmp_file_path((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyRV+s	$cCsHddd||g}|r+|jdƒntjd|d||ŒdS(NR\s-rs--sparses
--compressR.R/(tappendRR	(R*R8R9R.R/R6RG((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyR7Is
	(R&R:RMR0R3R4R5tstaticmethodR[RVR7(((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyRNàs
("R=RKROREtoslo_concurrencyRtoslo_logRtloggingt
oslo_utilsRRt	nova.conftnovat	nova.i18nRRRt	getLoggerR&RtconfR"R
RRtobjectRt
add_metaclasstABCMetaR<R?RMRN(((sV/home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/libvirt/volume/remotefs.pyt<module>s(	)=