From: Michael Fritch Date: Thu, 12 Dec 2019 15:02:34 +0000 (-0700) Subject: cephadm: fix ConfigParser DeprecationWarning in py3 X-Git-Tag: v15.1.0~525^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7ab50ef35a945dcc94b65de23d18de1b6c45f588;p=ceph.git cephadm: fix ConfigParser DeprecationWarning in py3 DeprecationWarning: This method will be removed in future versions. Use 'parser.read_file()' instead. Signed-off-by: Michael Fritch --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 385790ea3f56..f0eaf407a0c5 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -32,15 +32,7 @@ You can invoke cephadm in two ways: """ import argparse -try: - from ConfigParser import ConfigParser # py2 -except ImportError: - from configparser import ConfigParser # py3 import fcntl -try: - from StringIO import StringIO # py2 -except ImportError: - from io import StringIO # py3 import json import logging import os @@ -64,6 +56,15 @@ from distutils.spawn import find_executable from functools import wraps from glob import glob +if sys.version_info >= (3, 0): + from io import StringIO +else: + from StringIO import StringIO + +if sys.version_info >= (3, 2): + from configparser import ConfigParser +else: + from ConfigParser import SafeConfigParser container_path = None @@ -186,13 +187,22 @@ def read_config(fn): # bend over backwards here because py2's ConfigParser doesn't like # whitespace before config option names (e.g., '\n foo = bar\n'). # Yeesh! - cp = ConfigParser() + if sys.version_info >= (3, 2): + cp = ConfigParser() + else: + cp = SafeConfigParser() + if fn: with open(fn, 'r') as f: raw_conf = f.read() nice_conf = re.sub('\n(\s)+', '\n', raw_conf) - cp.readfp(StringIO(nice_conf)) - return cp + s_io = StringIO(nice_conf) + if sys.version_info >= (3, 2): + cp.read_file(s_io) + else: + cp.readfp(s_io) + + return cp def pathify(p): # type: (str) -> str