Merge "Openstack-clients: don't hard code venv"
This commit is contained in:
commit
2947b6d998
|
@ -2,22 +2,61 @@
|
|||
|
||||
set -eux
|
||||
|
||||
client=$1
|
||||
function usage() {
|
||||
echo "options:"
|
||||
echo " -h show usage and exit"
|
||||
echo " -c client bin name"
|
||||
echo " -i Optional: installation directory for the virtualenv."
|
||||
echo " If not specified defaults to /opt/stack/venv/python-<client name>client"
|
||||
echo " -s enable --system-site-packages in the virtualenv."
|
||||
exit $1
|
||||
}
|
||||
|
||||
client=""
|
||||
install_dir=""
|
||||
system_site_packages="False"
|
||||
|
||||
|
||||
nshift=0
|
||||
while getopts "hsi:c:" opt; do
|
||||
case "$opt" in
|
||||
c) client=$OPTARG;;
|
||||
i) install_dir=$OPTARG;;
|
||||
s) system_site_packages="True";;
|
||||
h) usage 0;;
|
||||
\?) usage 1;;
|
||||
:) usage 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$client" ]]; then
|
||||
echo "missing required 'client' parameter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
repo=python-${client}client
|
||||
client_manifest=$(get-pip-manifest ${repo})
|
||||
venv_base=/opt/stack/venvs
|
||||
if [ -z "$install_dir" ]; then
|
||||
install_dir="/opt/stack/venvs/$repo"
|
||||
fi
|
||||
|
||||
# We would like to use --system-site-packages here but if requirements.txt
|
||||
# contains libraries that are installed globally with versions that don't
|
||||
# satisfy our requirements.txt, we end up using the incorrect global library.
|
||||
# Because the global site-packages appears first in sys.path
|
||||
# TODO : Add this back in when we are using virtualenv >= 1.11
|
||||
virtualenv $venv_base/$repo
|
||||
|
||||
SITE_PCKGS="--no-site-packages"
|
||||
if [ $system_site_packages == "True" ]; then
|
||||
SITE_PCKGS="--system-site-packages"
|
||||
fi
|
||||
|
||||
virtualenv $SITE_PCKGS $install_dir
|
||||
set +u
|
||||
source $venv_base/$repo/bin/activate
|
||||
source $install_dir/bin/activate
|
||||
set -u
|
||||
|
||||
pushd /opt/stack/$repo
|
||||
client_manifest=$(get-pip-manifest ${repo})
|
||||
if [ -n "$client_manifest" ]; then
|
||||
use-pip-manifest $client_manifest
|
||||
else
|
||||
|
@ -41,7 +80,7 @@ python setup.py develop
|
|||
# Write the manifest of what was installed
|
||||
write-pip-manifest $repo
|
||||
|
||||
ln -s $venv_base/$repo/bin/$client /usr/local/bin/$client
|
||||
ln -s $install_dir/bin/$client /usr/local/bin/$client
|
||||
popd
|
||||
|
||||
set +u
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ceilometerclient
|
||||
if [ -z "${CEILOMETERCLIENT_VENV_DIR:-}" ]; then
|
||||
export CEILOMETERCLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-ceilometerclient"}
|
||||
fi
|
||||
if [ -z "${CEILOMETERCLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export CEILOMETERCLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# cinderclient
|
||||
if [ -z "${CINDERCLIENT_VENV_DIR:-}" ]; then
|
||||
export CINDERCLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-cinderclient"}
|
||||
fi
|
||||
if [ -z "${CINDERCLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export CINDERCLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# glanceclient
|
||||
if [ -z "${GLANCECLIENT_VENV_DIR:-}" ]; then
|
||||
export GLANCECLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-glanceclient"}
|
||||
fi
|
||||
if [ -z "${GLANCECLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export GLANCECLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# heatclient
|
||||
if [ -z "${HEATCLIENT_VENV_DIR:-}" ]; then
|
||||
export HEATCLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-heatclient"}
|
||||
fi
|
||||
if [ -z "${HEATCLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export HEATCLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# ironicclient
|
||||
if [ -z "${IRONICCLIENT_VENV_DIR:-}" ]; then
|
||||
export IRONICCLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-ironicclient"}
|
||||
fi
|
||||
if [ -z "${IRONICCLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export IRONICCLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# keystoneclient
|
||||
if [ -z "${KEYSTONECLIENT_VENV_DIR:-}" ]; then
|
||||
export KEYSTONECLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-keystoneclient"}
|
||||
fi
|
||||
if [ -z "${KEYSTONECLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export KEYSTONECLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# neutronclient
|
||||
if [ -z "${NEUTRONCLIENT_VENV_DIR:-}" ]; then
|
||||
export NEUTRONCLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-neutronclient"}
|
||||
fi
|
||||
if [ -z "${NEUTRONCLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export NEUTRONCLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# novaclient
|
||||
if [ -z "${NOVACLIENT_VENV_DIR:-}" ]; then
|
||||
export NOVACLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-novaclient"}
|
||||
fi
|
||||
if [ -z "${NOVACLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export NOVACLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
||||
|
||||
# swiftclient
|
||||
if [ -z "${SWIFTCLIENT_VENV_DIR:-}" ]; then
|
||||
export SWIFTCLIENT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/python-swiftclient"}
|
||||
fi
|
||||
if [ -z "${SWIFTCLIENT_EXTRA_INSTALL_OPTS:-}" ]; then
|
||||
export SWIFTCLIENT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""}
|
||||
fi
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client ceilometer
|
||||
install-openstack-client $CEILOMETERCLIENT_EXTRA_INSTALL_OPTS -c ceilometer -i $CEILOMETERCLIENT_VENV_DIR
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client cinder
|
||||
install-openstack-client $CINDERCLIENT_EXTRA_INSTALL_OPTS -c cinder -i $CINDERCLIENT_VENV_DIR
|
||||
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client glance
|
||||
install-openstack-client $GLANCECLIENT_EXTRA_INSTALL_OPTS -c glance -i $GLANCECLIENT_VENV_DIR
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client heat
|
||||
install-openstack-client $HEATCLIENT_EXTRA_INSTALL_OPTS -c heat -i $HEATCLIENT_VENV_DIR
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client ironic
|
||||
install-openstack-client $IRONICCLIENT_EXTRA_INSTALL_OPTS -c ironic -i $IRONICCLIENT_VENV_DIR
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client keystone
|
||||
install-openstack-client $KEYSTONECLIENT_EXTRA_INSTALL_OPTS -c keystone -i $KEYSTONECLIENT_VENV_DIR
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client neutron
|
||||
install-openstack-client $IRONICCLIENT_EXTRA_INSTALL_OPTS -c neutron -i $IRONICCLIENT_VENV_DIR
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client nova
|
||||
install-openstack-client $NOVACLIENT_EXTRA_INSTALL_OPTS -c nova -i $NOVACLIENT_VENV_DIR
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
set -eux
|
||||
|
||||
install-openstack-client swift
|
||||
install-openstack-client $SWIFTCLIENT_EXTRA_INSTALL_OPTS -c swift -i $SWIFTCLIENT_VENV_DIR
|
||||
|
||||
# the swift client doesn't have keystoneclient as a dependency, tripleo is
|
||||
# using keystone auth so we need to explicitly install it. Bug 1085740.
|
||||
/opt/stack/venvs/python-swiftclient/bin/pip install python-keystoneclient
|
||||
$SWIFTCLIENT_VENV_DIR/bin/pip install python-keystoneclient
|
||||
|
|
Loading…
Reference in New Issue