From 34ff72f2530ed8925c8b5d71371808d39986866f Mon Sep 17 00:00:00 2001
From: Mark Hamzy <hamzy@us.ibm.com>
Date: Fri, 19 Jan 2018 13:08:13 -0600
Subject: [PATCH] upgrade pip before using -c option

The installed pip can be an older version which does not support
the -c argument. Therefore, upgrade pip before using -c.

Change-Id: If18d8ea822a62c8551c9c4d47354d58b0299fed2
Closes-Bug: 1744403
---
 .../ironic-agent-source-install/60-ironic-agent-install   | 3 +++
 .../notes/upgrade-pip-before-c-d2443847f9d58c7a.yaml      | 8 ++++++++
 2 files changed, 11 insertions(+)
 create mode 100644 releasenotes/notes/upgrade-pip-before-c-d2443847f9d58c7a.yaml

diff --git a/diskimage_builder/elements/ironic-agent/install.d/ironic-agent-source-install/60-ironic-agent-install b/diskimage_builder/elements/ironic-agent/install.d/ironic-agent-source-install/60-ironic-agent-install
index 622879be3..3987c1457 100755
--- a/diskimage_builder/elements/ironic-agent/install.d/ironic-agent-source-install/60-ironic-agent-install
+++ b/diskimage_builder/elements/ironic-agent/install.d/ironic-agent-source-install/60-ironic-agent-install
@@ -15,6 +15,9 @@ $IPADIR/imagebuild/common/generate_upper_constraints.sh $IPADIR/upper-constraint
 # create the virtual environment
 virtualenv $IPADIR/venv
 
+# pip might be an older version which does not support the -c option, therefore upgrade first
+$IPADIR/venv/bin/pip install pip --upgrade
+
 # install IPA inside the virtual environment
 $IPADIR/venv/bin/pip install -c $IPADIR/upper-constraints.txt $IPADIR
 
diff --git a/releasenotes/notes/upgrade-pip-before-c-d2443847f9d58c7a.yaml b/releasenotes/notes/upgrade-pip-before-c-d2443847f9d58c7a.yaml
new file mode 100644
index 000000000..c46017f84
--- /dev/null
+++ b/releasenotes/notes/upgrade-pip-before-c-d2443847f9d58c7a.yaml
@@ -0,0 +1,8 @@
+---
+fixes:
+  - |
+    This fixes bug 1744403 where 60-ironic-agent-install fails to run
+    when DIB_INSTALLTYPE_ironic_agent=source is set.  pip installs
+    constraints with the -c argument and this argument is a relatively
+    newer addion.  The currently installed pip may not support that
+    option and must be upgraded before proceeding.