From: Vasu Kulkarni Date: Tue, 12 May 2020 03:08:23 +0000 (-0700) Subject: Handle derefernce of symlinks during tar X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4e430442d2d16f4f2888cf2d97129d7050c41602;p=teuthology.git Handle derefernce of symlinks during tar Signed-off-by: Vasu Kulkarni --- diff --git a/teuthology/misc.py b/teuthology/misc.py index 0ddd2e836..b844402ad 100644 --- a/teuthology/misc.py +++ b/teuthology/misc.py @@ -762,7 +762,7 @@ def pull_directory(remote, remotedir, localdir): if not os.path.exists(localdir): os.mkdir(localdir) r = remote.get_tar_stream(remotedir, sudo=True) - tar = tarfile.open(mode='r|gz', fileobj=r.stdout) + tar = tarfile.open(mode='r|gz', fileobj=r.stdout, dereference=True) while True: ti = tar.next() if ti is None: @@ -772,7 +772,7 @@ def pull_directory(remote, remotedir, localdir): # ignore silently; easier to just create leading dirs below # XXX this mean empty dirs are not transferred pass - elif ti.isfile(): + elif ti.isfile() or ti.issym(): sub = safepath.munge(ti.name) safepath.makedirs(root=localdir, path=os.path.dirname(sub)) tar.makefile(ti, targetpath=os.path.join(localdir, sub))