From 9c9bb19d434fe5b585ac7b840fbbb3ebf7916828 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 30 Oct 2019 13:22:43 -0500 Subject: [PATCH] ceph-daemon: deal with lack of TemporaryDirectory on py2 Signed-off-by: Sage Weil --- src/ceph-daemon | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/ceph-daemon b/src/ceph-daemon index 292969a80103..c810406f8dfd 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', -- 2.47.3