From 115ea0749bb0bb2fdcc31be845fbc39d9f04f796 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Sat, 10 Feb 2024 08:50:19 -0800 Subject: [PATCH 2/2] Python 3.12: adjust for removal of SafeConfigParser Signed-off-by: Adam Williamson --- imagefactory_plugins/EC2/EC2.py | 6 +++++- imagefactory_plugins/IndirectionCloud/IndirectionCloud.py | 6 +++++- imagefactory_plugins/Nova/Nova.py | 8 ++++++-- imagefactory_plugins/Rackspace/Rackspace.py | 6 +++++- imagefactory_plugins/TinMan/TinMan.py | 6 +++++- 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/imagefactory_plugins/EC2/EC2.py b/imagefactory_plugins/EC2/EC2.py index 9e927f9..bac6d89 100644 --- a/imagefactory_plugins/EC2/EC2.py +++ b/imagefactory_plugins/EC2/EC2.py @@ -61,7 +61,11 @@ class EC2(object): self.log = logging.getLogger('%s.%s' % (__name__, self.__class__.__name__)) config_obj = ApplicationConfiguration() self.app_config = config_obj.configuration - self.oz_config = configparser.SafeConfigParser() + try: + self.oz_config = configparser.SafeConfigParser() + except AttributeError: + # SafeConfigParser was deprecated in Python 3.2 + self.oz_config = configparser.ConfigParser() self.oz_config.read("/etc/oz/oz.cfg") self.oz_config.set('paths', 'output_dir', self.app_config["imgdir"]) self.guest = None diff --git a/imagefactory_plugins/IndirectionCloud/IndirectionCloud.py b/imagefactory_plugins/IndirectionCloud/IndirectionCloud.py index ff364db..a41dc74 100644 --- a/imagefactory_plugins/IndirectionCloud/IndirectionCloud.py +++ b/imagefactory_plugins/IndirectionCloud/IndirectionCloud.py @@ -282,7 +282,11 @@ class IndirectionCloud(object): def _init_oz(self): # populate a config object to pass to OZ; this allows us to specify our # own output dir but inherit other Oz behavior - self.oz_config = configparser.SafeConfigParser() + try: + self.oz_config = configparser.SafeConfigParser() + except AttributeError: + # SafeConfigParser was deprecated in Python 3.2 + self.oz_config = configparser.ConfigParser() if self.oz_config.read("/etc/oz/oz.cfg") != []: self.oz_config.set('paths', 'output_dir', self.app_config["imgdir"]) if "oz_data_dir" in self.app_config: diff --git a/imagefactory_plugins/Nova/Nova.py b/imagefactory_plugins/Nova/Nova.py index ff7cc08..9a8c777 100644 --- a/imagefactory_plugins/Nova/Nova.py +++ b/imagefactory_plugins/Nova/Nova.py @@ -28,7 +28,11 @@ from novaimagebuilder.StackEnvironment import StackEnvironment from time import sleep from base64 import b64decode #TODO: remove dependency on Oz -from configparser import SafeConfigParser +try: + from configparser import SafeConfigParser as ConfigParser +except AttributeError: + # SafeConfigParser was deprecated in Python 3.2 + from configparser import ConfigParser from oz.TDL import TDL import oz.GuestFactory @@ -438,7 +442,7 @@ class Nova(object): return confirmation def _oz_config(self, private_key_file): - config = SafeConfigParser() + config = ConfigParser() if config.read("/etc/oz/oz.cfg"): config.set('paths', 'output_dir', self.app_config['imgdir']) config.set('paths', 'sshprivkey', private_key_file) diff --git a/imagefactory_plugins/Rackspace/Rackspace.py b/imagefactory_plugins/Rackspace/Rackspace.py index e045d14..ae7fe99 100644 --- a/imagefactory_plugins/Rackspace/Rackspace.py +++ b/imagefactory_plugins/Rackspace/Rackspace.py @@ -64,7 +64,11 @@ class Rackspace(object): self.log = logging.getLogger('%s.%s' % (__name__, self.__class__.__name__)) config_obj = ApplicationConfiguration() self.app_config = config_obj.configuration - self.oz_config = configparser.SafeConfigParser() + try: + self.oz_config = configparser.SafeConfigParser() + except AttributeError: + # SafeConfigParser was deprecated in Python 3.2 + self.oz_config = configparser.ConfigParser() self.oz_config.read("/etc/oz/oz.cfg") self.oz_config.set('paths', 'output_dir', self.app_config["imgdir"]) self.active_image = None diff --git a/imagefactory_plugins/TinMan/TinMan.py b/imagefactory_plugins/TinMan/TinMan.py index 219a78e..27b3d23 100644 --- a/imagefactory_plugins/TinMan/TinMan.py +++ b/imagefactory_plugins/TinMan/TinMan.py @@ -269,7 +269,11 @@ class TinMan(object): # populate a config object to pass to OZ; this allows us to specify our # own output dir but inherit other Oz behavior - self.oz_config = configparser.SafeConfigParser() + try: + self.oz_config = configparser.SafeConfigParser() + except AttributeError: + # SafeConfigParser was deprecated in Python 3.2 + self.oz_config = configparser.ConfigParser() if self.oz_config.read("/etc/oz/oz.cfg") != []: if self.parameters.get("oz_overrides", None) != None: oz_overrides = json.loads(self.parameters.get("oz_overrides",None).replace("'", "\"")) -- 2.43.0