Dmitry Tantsur 98d6d62c3a Import ansible version of the image building job
This patch starts "ansiblization" of the image building script, while
also cleaning it up. More importantly, it adds check and gate jobs
that verify the same playbooks as used in the post job.

Also correct source-repository for ironic-python-agent to use the
project name, not the old element name.

Change-Id: I9a404b24f95e47c84b22d4739fcf2b5b800886f9
2019-08-29 14:22:49 +02:00

50 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
set -x
fi
set -eu
set -o pipefail
SCRIPTDIR=$(dirname $0)
IPADIR=/tmp/ironic-python-agent
# Generate upper-constraints
$IPADIR/imagebuild/common/generate_upper_constraints.sh $IPADIR/upper-constraints.txt
# 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
# FIXME(lucasagomes): Figure out how we can use the "--install-option"
# parameter for pip install so we don't have to manually create a symlink
# create the launcher link so services can use it
ln -s $IPADIR/venv/bin/ironic-python-agent /usr/local/bin/ironic-python-agent
case "$DIB_INIT_SYSTEM" in
upstart)
install -D -g root -o root -m 0755 ${SCRIPTDIR}/ironic-python-agent.conf /etc/init/ironic-python-agent.conf
;;
systemd)
install -D -g root -o root -m 0755 ${SCRIPTDIR}/ironic-python-agent.service /usr/lib/systemd/system/ironic-python-agent.service
;;
sysv)
install -D -g root -o root -m 0755 ${SCRIPTDIR}/ironic-python-agent.init /etc/init.d/ironic-python-agent.init
update-rc.d ironic-python-agent.init defaults
;;
*)
echo "Unsupported init system"
exit 1
;;
esac
# Copying the self signed certificate for request library
if [ -f /tmp/in_target.d/ipa-trusted-cert.pem ]; then
cat /tmp/in_target.d/ipa-trusted-cert.pem >> $($IPADIR/venv/bin/python -c "import requests; print requests.certs.where()")
fi