From ecae8dcbd5f7308a1381e03fe83251a7b92af3a4 Mon Sep 17 00:00:00 2001 From: Gregory Haynes Date: Wed, 7 Dec 2016 12:34:11 -0800 Subject: [PATCH] Allow package-installs to parse DIB_PYTHON_VERSION Now that we are explicit about what python version we intend to use for dib we can have package installs optionally install packages depending on this. Add a new dib_python_version that matches on the DIB_PYTHON_VERSION string set by dib-python. Co-Authored-By: Adam Harwell Change-Id: I70659aab7d12924bdb9bc0489a7f02d5fd0dbb39 --- elements/package-installs/README.rst | 5 +++++ elements/package-installs/bin/package-installs-squash | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/elements/package-installs/README.rst b/elements/package-installs/README.rst index 8d1027362..9b453c7c0 100644 --- a/elements/package-installs/README.rst +++ b/elements/package-installs/README.rst @@ -26,6 +26,10 @@ example ``package-installs.yaml`` not-arch: ppc64, ppc64le lshw: arch: ppc64, ppc64le + python-dev: + dib_python_version: 2 + python3-dev: + dib_python_version: 3 example package-installs.json @@ -46,6 +50,7 @@ the following default values:: uninstall: False installtype: * (Install package for all installtypes) arch: * (Install package for all architectures) + dib_python_version: (2 or 3 depending on DIB_PYTHON_VERSION, see dib-python) Setting the installtype property causes the package only to be installed if the specified installtype would be used for the element. See the diff --git a/elements/package-installs/bin/package-installs-squash b/elements/package-installs/bin/package-installs-squash index 49cc76484..eafdd9f42 100755 --- a/elements/package-installs/bin/package-installs-squash +++ b/elements/package-installs/bin/package-installs-squash @@ -75,8 +75,12 @@ def collect_data(data, filename, element_name): installtype == elem_installtype) valid_arch = _valid_for_arch(pkg_name, params.get('arch', None), params.get('not-arch', None)) + dib_py_version = str(params.get('dib_python_version', '')) + dib_py_version_env = os.environ.get('DIB_PYTHON_VERSION', '') + valid_dib_python_version = (dib_py_version == '' or + dib_py_version == dib_py_version_env) - if valid_installtype and valid_arch: + if valid_installtype and valid_arch and valid_dib_python_version: data[phase][install].append((pkg_name, element_name)) return data