diff --git a/elements/boot-stack/install.d/01-boot-stack b/elements/boot-stack/install.d/01-boot-stack index 3b55d2fad..5fa5e5256 100755 --- a/elements/boot-stack/install.d/01-boot-stack +++ b/elements/boot-stack/install.d/01-boot-stack @@ -18,7 +18,7 @@ function deps { apt-get update fi install-packages screen ccze - install-packages git ipmitool python-dev python-pip python-greenlet libxml2-dev libxslt-dev + install-packages git ipmitool python-dev python-greenlet libxml2-dev libxslt-dev install-packages openvswitch-common openvswitch-controller openvswitch-switch open-iscsi install-packages python-numpy python-lxml } diff --git a/elements/diskimage-builder/element-deps b/elements/diskimage-builder/element-deps index 715c11e2f..887eaa8db 100644 --- a/elements/diskimage-builder/element-deps +++ b/elements/diskimage-builder/element-deps @@ -1 +1,2 @@ source-repositories +pip-and-virtualenv diff --git a/elements/diskimage-builder/install.d/55-diskimage-builder b/elements/diskimage-builder/install.d/55-diskimage-builder index 9f019b411..b7d2027f5 100755 --- a/elements/diskimage-builder/install.d/55-diskimage-builder +++ b/elements/diskimage-builder/install.d/55-diskimage-builder @@ -2,8 +2,6 @@ set -eux -install-packages python-pip - pushd /opt/stack/diskimage-builder pip install . popd diff --git a/elements/geard/install.d/44-geard b/elements/geard/install.d/44-geard index d9350c31f..27d3e79b5 100755 --- a/elements/geard/install.d/44-geard +++ b/elements/geard/install.d/44-geard @@ -1,8 +1,6 @@ #!/bin/bash set -eux -install-packages python-virtualenv - mkdir -p /opt/stack/venvs virtualenv /opt/stack/venvs/gear diff --git a/elements/heat-cfntools/element-deps b/elements/heat-cfntools/element-deps new file mode 100644 index 000000000..7c8922a0b --- /dev/null +++ b/elements/heat-cfntools/element-deps @@ -0,0 +1 @@ +pip-and-virtualenv diff --git a/elements/heat-cfntools/install.d/05-heat-cfntools b/elements/heat-cfntools/install.d/05-heat-cfntools index fcb15f68a..be4cb1411 100755 --- a/elements/heat-cfntools/install.d/05-heat-cfntools +++ b/elements/heat-cfntools/install.d/05-heat-cfntools @@ -2,8 +2,7 @@ set -uex -install-packages \ - python-pip python-psutil python-virtualenv gcc python-dev +install-packages python-psutil gcc python-dev mkdir -p /opt/stack/venvs diff --git a/elements/nagios3/install.d/17-nagios b/elements/nagios3/install.d/17-nagios index e5a55b339..e50785f97 100755 --- a/elements/nagios3/install.d/17-nagios +++ b/elements/nagios3/install.d/17-nagios @@ -1,7 +1,7 @@ #!/bin/bash set -eux -install-packages python-pip nagios3 +install-packages nagios3 # set check_external_commands sed -i "s/check_external_commands=0/check_external_commands=1/" /etc/nagios3/nagios.cfg diff --git a/elements/openstack-clients/element-deps b/elements/openstack-clients/element-deps index 715c11e2f..887eaa8db 100644 --- a/elements/openstack-clients/element-deps +++ b/elements/openstack-clients/element-deps @@ -1 +1,2 @@ source-repositories +pip-and-virtualenv diff --git a/elements/openstack-clients/install.d/50-openstack-clients b/elements/openstack-clients/install.d/50-openstack-clients index fcfedeae5..8c25b34ee 100755 --- a/elements/openstack-clients/install.d/50-openstack-clients +++ b/elements/openstack-clients/install.d/50-openstack-clients @@ -2,4 +2,4 @@ set -eux -install-packages git build-essential python-dev libssl-dev python-pip python-virtualenv libxml2-dev libxslt-dev libffi-dev +install-packages git build-essential python-dev libssl-dev libxml2-dev libxslt-dev libffi-dev diff --git a/elements/os-apply-config/install.d/10-os-config-applier b/elements/os-apply-config/install.d/10-os-config-applier index e8c01ffdd..d55070077 100755 --- a/elements/os-apply-config/install.d/10-os-config-applier +++ b/elements/os-apply-config/install.d/10-os-config-applier @@ -1,8 +1,6 @@ #!/bin/bash set -eux -install-packages python-virtualenv - virtualenv --setuptools /opt/stack/venvs/os-apply-config # bug #1201253 : virtualenv-1.10.1 embeds setuptools-0.9.8, which diff --git a/elements/os-collect-config/install.d/10-os-collect-config b/elements/os-collect-config/install.d/10-os-collect-config index db231e5c0..2362cc8e3 100755 --- a/elements/os-collect-config/install.d/10-os-collect-config +++ b/elements/os-collect-config/install.d/10-os-collect-config @@ -1,7 +1,7 @@ #!/bin/bash set -eux -install-packages python-virtualenv build-essential libz-dev libxslt-dev libxml2-dev python-dev +install-packages build-essential libz-dev libxslt-dev libxml2-dev python-dev virtualenv --setuptools /opt/stack/venvs/os-collect-config diff --git a/elements/os-refresh-config/element-deps b/elements/os-refresh-config/element-deps index 58fb81730..9eff0a75b 100644 --- a/elements/os-refresh-config/element-deps +++ b/elements/os-refresh-config/element-deps @@ -1,3 +1,4 @@ +pip-and-virtualenv source-repositories os-collect-config os-apply-config diff --git a/elements/os-refresh-config/install.d/01-os-refresh-config b/elements/os-refresh-config/install.d/01-os-refresh-config index 02ee5640c..e98ee2bfb 100755 --- a/elements/os-refresh-config/install.d/01-os-refresh-config +++ b/elements/os-refresh-config/install.d/01-os-refresh-config @@ -4,12 +4,13 @@ set -eux -install-packages python-virtualenv +# pip and virtualenv is installed by the pip-and-virtualenv element virtualenv --setuptools /opt/stack/venvs/os-refresh-config # Need setuptools>=1.0 to manage connections when # downloading from pypi using http_proxy and https_proxy +/opt/stack/venvs/os-refresh-config/bin/pip install -U pip /opt/stack/venvs/os-refresh-config/bin/pip install -U 'setuptools>=1.0' /opt/stack/venvs/os-refresh-config/bin/pip install -U os-refresh-config diff --git a/elements/os-svc-install/bin/os-svc-install b/elements/os-svc-install/bin/os-svc-install index 46e42e660..ae0c97305 100755 --- a/elements/os-svc-install/bin/os-svc-install +++ b/elements/os-svc-install/bin/os-svc-install @@ -109,5 +109,5 @@ if [[ -z "$user" || -z "$repo" ]]; then exit 1 fi -install-packages python-dev python-pip git-core python-setuptools gcc libc6-dev libxml2-dev libxslt-dev libz-dev +install-packages python-dev git-core gcc libc6-dev libxml2-dev libxslt-dev libz-dev install-os-service "$user" "$repo" "$branch" diff --git a/elements/os-svc-install/element-deps b/elements/os-svc-install/element-deps new file mode 100644 index 000000000..7c8922a0b --- /dev/null +++ b/elements/os-svc-install/element-deps @@ -0,0 +1 @@ +pip-and-virtualenv diff --git a/elements/os-svc-install/install.d/04-os-svc-install b/elements/os-svc-install/install.d/04-os-svc-install index 42dc0a4bc..e2880766b 100755 --- a/elements/os-svc-install/install.d/04-os-svc-install +++ b/elements/os-svc-install/install.d/04-os-svc-install @@ -2,12 +2,7 @@ set -eux # Mysqlclient-dev is needed for MySQL-python which os-svc-install installs. -install-packages python-pip libmysqlclient-dev - -pip install -U distribute # required by virtualenv -# required to ensure clean distribute -> setuptools migration -pip install -U setuptools -pip install -U 'virtualenv==1.10.1' +install-packages libmysqlclient-dev install -m 0755 -o root -g root $(dirname $0)/../bin/os-svc-install /usr/local/bin/os-svc-install install -m 0755 -o root -g root $(dirname $0)/../bin/os-svc-daemon /usr/local/bin/os-svc-daemon diff --git a/elements/pip-and-virtualenv/README.md b/elements/pip-and-virtualenv/README.md new file mode 100644 index 000000000..53110a67c --- /dev/null +++ b/elements/pip-and-virtualenv/README.md @@ -0,0 +1,15 @@ +Install latest pip and virtualenv +================================= + +We have problems with the latest binary package of pip and virtualenv. +Packaged version of pip can be old and virtualenv can also contain its +own version of pip. Issues include downloading packages from a local +pypi mirror that include a wheel package for pip. + +The element follows the instructions from the pip website here: +http://www.pip-installer.org/en/latest/installing.html on how to install +the latest version of pip. That is to download get-pip.py and run this +file. + +We use source-repositories element to download the file so it will be +cached and can be overridden to use package if that is required. diff --git a/elements/pip-and-virtualenv/element-deps b/elements/pip-and-virtualenv/element-deps new file mode 100644 index 000000000..715c11e2f --- /dev/null +++ b/elements/pip-and-virtualenv/element-deps @@ -0,0 +1 @@ +source-repositories diff --git a/elements/pip-and-virtualenv/install.d/get-pip-py-package-install/01-install-pip b/elements/pip-and-virtualenv/install.d/get-pip-py-package-install/01-install-pip new file mode 100644 index 000000000..744e49db8 --- /dev/null +++ b/elements/pip-and-virtualenv/install.d/get-pip-py-package-install/01-install-pip @@ -0,0 +1,5 @@ +#!/bin/bash + +set -eux + +install-packages python-pip python-virtualenv diff --git a/elements/pip-and-virtualenv/install.d/get-pip-py-source-install/01-install-pip b/elements/pip-and-virtualenv/install.d/get-pip-py-source-install/01-install-pip new file mode 100755 index 000000000..ea3d5edd8 --- /dev/null +++ b/elements/pip-and-virtualenv/install.d/get-pip-py-source-install/01-install-pip @@ -0,0 +1,6 @@ +#!/bin/bash + +set -eux + +python /tmp/get-pip.py +pip install virtualenv diff --git a/elements/pip-and-virtualenv/source-repository-pip-and-virtualenv b/elements/pip-and-virtualenv/source-repository-pip-and-virtualenv new file mode 100644 index 000000000..aa13225b7 --- /dev/null +++ b/elements/pip-and-virtualenv/source-repository-pip-and-virtualenv @@ -0,0 +1 @@ +get-pip-py file /tmp/get-pip.py https://raw.github.com/pypa/pip/master/contrib/get-pip.py diff --git a/elements/pypi-mirror/element-deps b/elements/pypi-mirror/element-deps index 715c11e2f..7ecaecb25 100644 --- a/elements/pypi-mirror/element-deps +++ b/elements/pypi-mirror/element-deps @@ -1 +1,2 @@ +pip-and-virtualenv source-repositories diff --git a/elements/pypi-mirror/install.d/50-pypi-mirror b/elements/pypi-mirror/install.d/50-pypi-mirror index 94a841b24..b0310afd7 100755 --- a/elements/pypi-mirror/install.d/50-pypi-mirror +++ b/elements/pypi-mirror/install.d/50-pypi-mirror @@ -15,10 +15,7 @@ # under the License. set -eux -install-packages libyaml-dev pkg-config python-dev python-pip build-essential - -# need latest virtualenv -pip install -U virtualenv +install-packages libyaml-dev pkg-config python-dev build-essential mkdir -p /opt/stack/venvs virtualenv /opt/stack/venvs/pypi-mirror