From 42f39da9b0cc3cb2aee1d59e0c371e0a068e79ad Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Wed, 13 Apr 2022 16:36:45 -0600 Subject: [PATCH] bootstrap: If ansible<2.10 is present, remove it ... before proceeding. This is because in 2.10, ansible split into two packages, a scenario that pip apparently isn't able to handle properly. Signed-off-by: Zack Cerza --- bootstrap | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bootstrap b/bootstrap index 968b91e02b..997882df4b 100755 --- a/bootstrap +++ b/bootstrap @@ -150,6 +150,16 @@ if [ -z "$NO_CLOBBER" ] || [ ! -e ./$VENV ]; then virtualenv --python=$PYTHON $VENV fi +# It is impossible to upgrade ansible from 2.9 to 2.10 via pip. +# See https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.10.html#known-issues +if [ -f "$VENV/bin/ansible" ]; then + ansible_version=$($VENV/bin/pip list --format json | python3 -c "import sys; import json; print(list(filter(lambda i: i['name'] == 'ansible', json.loads(sys.stdin.read())))[0]['version'])") + uninstall_ansible=$(python3 -c "from packaging.version import parse; print(parse('$ansible_version') < parse('2.10.0'))") + if [ "$uninstall_ansible" = "True" ]; then + ./$VENV/bin/pip uninstall -y ansible + fi +fi + # First, upgrade pip ./$VENV/bin/pip install --upgrade pip -- 2.39.5