From ecae8dcbd5f7308a1381e03fe83251a7b92af3a4 Mon Sep 17 00:00:00 2001
From: Gregory Haynes <greg@greghaynes.net>
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 <flux.adam@gmail.com>
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