From: Sage Weil Date: Wed, 30 Oct 2019 18:22:43 +0000 (-0500) Subject: ceph-daemon: deal with lack of TemporaryDirectory on py2 X-Git-Tag: v15.1.0~1104^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F31264%2Fhead;p=ceph.git ceph-daemon: deal with lack of TemporaryDirectory on py2 Signed-off-by: Sage Weil --- diff --git a/src/ceph-daemon b/src/ceph-daemon index 292969a8010..c810406f8df 100755 --- a/src/ceph-daemon +++ b/src/ceph-daemon @@ -38,7 +38,7 @@ except ImportError: import fcntl try: from StringIO import StringIO # py2 -except: +except ImportError: from io import StringIO # py3 import json import logging @@ -52,6 +52,26 @@ import time import uuid from distutils.spawn import find_executable +try: + from tempfile import TemporaryDirectory # py3 +except ImportError: + # define a minimal (but sufficient) equivalent for <= py 3.2 + import shutil + class TemporaryDirectory(object): + def __init__(self): + self.name = tempfile.mkdtemp() + + def __enter__(self): + if not self.name: + self.name = tempfile.mkdtemp() + return self.name + + def cleanup(self): + shutil.rmtree(self.name) + + def __exit__(self, exc_type, exc_value, traceback): + self.cleanup() + podman_path = None @@ -645,7 +665,7 @@ WantedBy=ceph-{fsid}.target return u def gen_ssh_key(fsid): - tmp_dir = tempfile.TemporaryDirectory() + tmp_dir = TemporaryDirectory() path = tmp_dir.name + '/key' call_throws([ 'ssh-keygen',