From b072c155f5e42c049a1a3615814bdf8f004bb7b9 Mon Sep 17 00:00:00 2001 From: Zygimantas Matonis Date: Fri, 21 Feb 2020 16:44:11 +0100 Subject: [PATCH] Fix ELEMENTS_PATH environment variable being overwritten. This change let user to explicitly set ELEMENTS_PATH to custom DIB elements while running the script or use already set as environment variable. It will prepend path to 'ironic-python-agent-builder' instead of overwriting it. Change-Id: I7ec6c222e9678d7dbb3f4f50c3a2de0a9c9a5793 Story: 2007309 Task: 38809 --- ironic_python_agent_builder/__init__.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ironic_python_agent_builder/__init__.py b/ironic_python_agent_builder/__init__.py index 4de45cb..dcca97d 100644 --- a/ironic_python_agent_builder/__init__.py +++ b/ironic_python_agent_builder/__init__.py @@ -50,19 +50,27 @@ def main(): help="Additional DIB element to use") parser.add_argument("-b", "--branch", help="If set, override the branch that is used for " - "ironic-python-agent and requirements") + "ironic-python-agent and requirements") parser.add_argument("-v", "--verbose", action='store_true', help="Enable verbose logging in diskimage-builder") parser.add_argument("--extra-args", help="Extra arguments to pass to diskimage-builder") + parser.add_argument("--elements-path", + help="Path(s) to custom DIB elements separated by " + "a colon") # TODO(dtantsur): handle distribution == tinyipa - os.environ['ELEMENTS_PATH'] = find_elements_path() + args = parser.parse_args() + if args.elements_path: + os.environ['ELEMENTS_PATH'] = args.elements_path + if 'ELEMENTS_PATH' in os.environ: + os.environ['ELEMENTS_PATH'] += ":" + find_elements_path() + else: + os.environ['ELEMENTS_PATH'] = find_elements_path() if not os.environ.get('DIB_INSTALLTYPE_pip_and_virtualenv'): # DIB updates these to latest versions from source. However, we do the # same in our virtualenv, so it's not needed and just increases the # size of the image. os.environ['DIB_INSTALLTYPE_pip_and_virtualenv'] = 'package' - args = parser.parse_args() if args.release: os.environ['DIB_RELEASE'] = args.release if args.branch: