409d95d67e
This is a refactoring of the existing GCE utility module to support other projects on Google Cloud Platform. The previous gce.py module was hard-coded specifically for GCE, and attempting to use it with other projects in GCP failed. See https://github.com/ansible/ansible/pull/15918#issuecomment-220165913 for more detail. This has also been an issue for others in the past, although they've handled it by simply duplicating some of the logic of gce.py in their own modules. - The existing gce.py module was renamed to gcp.py, and modified to remove any imports or other code that refers to libcloud.compute or GCE (the GCE_* params were retained for compatibility). I also renamed the gce_connect function to gcp_connect, and modified the function signature to make supplying a provider, driver, and agent information mandatory. - A new gce.py module was created to handle connectivity to GCE. It imports the appropriate libcloud.compute providers and drivers, and then passes them on to gcp_connect in gcp.py. The constants and function signatures are the same as the old gce.py, so compatibility with existing modules is retained. - A new gcdns.py module was created to support PR ansible/ansible-modules-extras#2252 for two new Google Cloud DNS modules, and to demonstrate support for a non-GCE Google Cloud service. It follows the same basic structure as the new gce.py module, but imports from libcloud.dns instead.
47 lines
2 KiB
Bash
Executable file
47 lines
2 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
if [ "${SHIPPABLE}" = "true" ]; then
|
|
echo "It appears this job is running on Shippable instead of Travis."
|
|
if [ "${IS_PULL_REQUEST}" = "true" ]; then
|
|
echo "Please rebase the branch used for this pull request."
|
|
else
|
|
echo "This branch needs to be updated to work with Shippable."
|
|
fi
|
|
exit 1
|
|
fi
|
|
|
|
set -e
|
|
set -u
|
|
set -x
|
|
|
|
LINKS="--link=httptester:ansible.http.tests --link=httptester:sni1.ansible.http.tests --link=httptester:sni2.ansible.http.tests --link=httptester:fail.ansible.http.tests"
|
|
|
|
if [ "${TARGET}" = "sanity" ]; then
|
|
./test/code-smell/replace-urlopen.sh .
|
|
./test/code-smell/use-compat-six.sh lib
|
|
./test/code-smell/boilerplate.sh
|
|
./test/code-smell/required-and-default-attributes.sh
|
|
if test x"$TOXENV" != x'py24' ; then tox ; fi
|
|
if test x"$TOXENV" = x'py24' ; then python2.4 -V && python2.4 -m compileall -fq -x 'module_utils/(a10|rax|openstack|ec2|gce|docker_common|azure_rm_common|vca|vmware|gcp|gcdns).py' lib/ansible/module_utils ; fi
|
|
else
|
|
if [ ! -e /tmp/cid_httptester ]; then
|
|
docker pull ansible/ansible:httptester
|
|
docker run -d --name=httptester ansible/ansible:httptester > /tmp/cid_httptester
|
|
fi
|
|
export C_NAME="testAbull_$$_$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)"
|
|
docker pull ansible/ansible:${TARGET}
|
|
|
|
# enable colors if output is going to a terminal
|
|
COLOR_SETTINGS=""
|
|
if [ -t 1 ]; then
|
|
COLOR_SETTINGS="--env TERM=$TERM"
|
|
fi
|
|
|
|
docker run -d --volume="${PWD}:/root/ansible:Z" $LINKS --name "${C_NAME}" $COLOR_SETTINGS --env HTTPTESTER=1 ${TARGET_OPTIONS:=''} ansible/ansible:${TARGET} > /tmp/cid_${TARGET}
|
|
docker exec -ti $(cat /tmp/cid_${TARGET}) /bin/sh -c "export TEST_FLAGS='${TEST_FLAGS:-''}'; cd /root/ansible; . hacking/env-setup; (cd test/integration; LC_ALL=en_US.utf-8 make ${MAKE_TARGET:-})"
|
|
docker kill $(cat /tmp/cid_${TARGET})
|
|
|
|
if [ "X${TESTS_KEEP_CONTAINER:-""}" = "X" ]; then
|
|
docker rm -vf "${C_NAME}"
|
|
fi
|
|
fi
|