From 5b916fc55694c5ebb1b9d8455bee75caa97ecb7e Mon Sep 17 00:00:00 2001 From: David Wilson Date: Tue, 30 Oct 2018 23:58:45 +0000 Subject: [PATCH] issue #409: Pythonize run_ansible_playbook.sh And add git_basedir extra variable. --- .travis/ansible_tests.py | 2 +- tests/ansible/README.md | 4 +-- tests/ansible/debug_run_ansible_playbook.sh | 15 ------------ tests/ansible/mitogen_ansible_playbook.sh | 2 +- tests/ansible/run_ansible_playbook.py | 27 +++++++++++++++++++++ tests/ansible/run_ansible_playbook.sh | 15 ------------ 6 files changed, 31 insertions(+), 34 deletions(-) delete mode 100755 tests/ansible/debug_run_ansible_playbook.sh create mode 100755 tests/ansible/run_ansible_playbook.py delete mode 100755 tests/ansible/run_ansible_playbook.sh diff --git a/.travis/ansible_tests.py b/.travis/ansible_tests.py index efaca9fe..8bb8f6a1 100755 --- a/.travis/ansible_tests.py +++ b/.travis/ansible_tests.py @@ -63,5 +63,5 @@ with ci_lib.Fold('job_setup'): with ci_lib.Fold('ansible'): - run('/usr/bin/time ./run_ansible_playbook.sh all.yml -i "%s" %s', + run('/usr/bin/time ./run_ansible_playbook.py all.yml -i "%s" %s', HOSTS_DIR, ' '.join(sys.argv[1:])) diff --git a/tests/ansible/README.md b/tests/ansible/README.md index 46320951..50e747fe 100644 --- a/tests/ansible/README.md +++ b/tests/ansible/README.md @@ -13,7 +13,7 @@ demonstrator for what does and doesn't work. See `../image_prep/README.md`. -## `run_ansible_playbook.sh` +## `run_ansible_playbook.py` This is necessary to set some environment variables used by future tests, as there appears to be no better way to inject them into the top-level process @@ -22,7 +22,7 @@ environment before the Mitogen connection process forks. ## Running Everything -`ANSIBLE_STRATEGY=mitogen_linear ./run_ansible_playbook.sh all.yml` +`ANSIBLE_STRATEGY=mitogen_linear ./run_ansible_playbook.py all.yml` ## `hosts/` and `common-hosts` diff --git a/tests/ansible/debug_run_ansible_playbook.sh b/tests/ansible/debug_run_ansible_playbook.sh deleted file mode 100755 index ab2c9385..00000000 --- a/tests/ansible/debug_run_ansible_playbook.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# Wrap ansible-playbook, setting up some test of the test environment. - -# Used by delegate_to.yml to ensure "sudo -E" preserves environment. -export I_WAS_PRESERVED=1 -export MITOGEN_MAX_INTERPRETERS=3 - -if [ "${ANSIBLE_STRATEGY:0:7}" = "mitogen" ] -then - EXTRA='{"is_mitogen": true}' -else - EXTRA='{"is_mitogen": false}' -fi - -exec ~/src/cpython/venv/bin/ansible-playbook -e "$EXTRA" -e ansible_python_interpreter=/Users/dmw/src/cpython/venv/bin/python2.7 "$@" diff --git a/tests/ansible/mitogen_ansible_playbook.sh b/tests/ansible/mitogen_ansible_playbook.sh index cd5c1e53..462d985b 100755 --- a/tests/ansible/mitogen_ansible_playbook.sh +++ b/tests/ansible/mitogen_ansible_playbook.sh @@ -1,3 +1,3 @@ #!/bin/bash export ANSIBLE_STRATEGY=mitogen_linear -exec ./run_ansible_playbook.sh "$@" +exec ./run_ansible_playbook.py "$@" diff --git a/tests/ansible/run_ansible_playbook.py b/tests/ansible/run_ansible_playbook.py new file mode 100755 index 00000000..c4312cd1 --- /dev/null +++ b/tests/ansible/run_ansible_playbook.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# Wrap ansible-playbook, setting up some test of the test environment. + +import json +import os +import sys + + +# Used by delegate_to.yml to ensure "sudo -E" preserves environment. +os.environ['I_WAS_PRESERVED'] = '1' + +# Used by LRU tests. +os.environ['MITOGEN_MAX_INTERPRETERS'] = '3' + +extra = { + 'is_mitogen': os.environ.get('ANSIBLE_STRATEGY', '').startswith('mitogen'), + 'git_basedir': os.path.dirname( + os.path.abspath( + os.path.join(__file__, '..', '..') + ) + ) +} + +args = ['ansible-playbook'] +args += ['-e', json.dumps(extra)] +args += sys.argv[1:] +os.execvp(args[0], args) diff --git a/tests/ansible/run_ansible_playbook.sh b/tests/ansible/run_ansible_playbook.sh deleted file mode 100755 index 39580e37..00000000 --- a/tests/ansible/run_ansible_playbook.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# Wrap ansible-playbook, setting up some test of the test environment. - -# Used by delegate_to.yml to ensure "sudo -E" preserves environment. -export I_WAS_PRESERVED=1 -export MITOGEN_MAX_INTERPRETERS=3 - -if [ "${ANSIBLE_STRATEGY:0:7}" = "mitogen" ] -then - EXTRA='{"is_mitogen": true}' -else - EXTRA='{"is_mitogen": false}' -fi - -exec ansible-playbook -e "$EXTRA" "$@"