Skip to content

Instantly share code, notes, and snippets.

@cloudnull
Last active March 23, 2016 00:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cloudnull/128130bb49d72320e5ad to your computer and use it in GitHub Desktop.
Save cloudnull/128130bb49d72320e5ad to your computer and use it in GitHub Desktop.
Create a virtual environment containing the Keystone and Capstone projects.
#!/usr/local/env bash
set -ev
apt-get install -y libffi-dev libldap2-dev libsasl2-dev libxslt1.1 libxslt1-dev python-dev curl libssl-dev
curl https://bootstrap.pypa.io/get-pip.py | python
pip install -U virtualenv
mkdir -p /opt/working
mkdir -p /opt/built-venvs
pushd /opt/working
cat > requirements.txt <<EOF
argparse
capstone
keystone
keystonemiddleware
oslo.log
oslo.middleware
pbr
pycrypto
python-keystoneclient
python-memcached
python-openstackclient
repoze.lru
EOF
cat > constraints.txt <<EOF
git+https://git.openstack.org/openstack/keystone@stable/liberty#egg=keystone
git+https://github.com/rackerlabs/capstone@master#egg=capstone
EOF
branch_sha="$(git ls-remote https://github.com/rackerlabs/capstone master | awk '{print $1}')"
release_tag="${branch_sha:0:7}"
if [ -d "capstone-${release_tag}" ]; then
rm -rfv "capstone-${release_tag}"
fi
virtualenv --always-copy --never-download "capstone-${release_tag}"
source "capstone-${release_tag}/bin/activate"
pip install -c constraints.txt -r requirements.txt
deactivate
find "capstone-${release_tag}" -type f -name '*.pyc' -delete
tar czf "/opt/built-venvs/capstone-${release_tag}.tgz" -C "capstone-${release_tag}" .
md5sum "/opt/built-venvs/capstone-${release_tag}.tgz" | awk '{print $1}' > "/opt/built-venvs/capstone-${release_tag}.checksum"
rm -rfv "capstone-${release_tag}"
popd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment