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.
37 lines
1.2 KiB
Bash
Executable file
37 lines
1.2 KiB
Bash
Executable file
#!/bin/bash -eux
|
|
|
|
source_root=$(python -c "from os import path; print(path.abspath(path.join(path.dirname('$0'), '../../..')))")
|
|
|
|
install_deps="${INSTALL_DEPS:-}"
|
|
|
|
cd "${source_root}"
|
|
|
|
if [ "${TOXENV}" = 'py24' ]; then
|
|
if [ "${install_deps}" != "" ]; then
|
|
add-apt-repository ppa:fkrull/deadsnakes && apt-get update -qq && apt-get install python2.4 -qq
|
|
fi
|
|
|
|
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
|
|
else
|
|
if [ "${install_deps}" != "" ]; then
|
|
pip install -r "${source_root}/test/utils/shippable/sanity-requirements.txt" --upgrade
|
|
pip list
|
|
fi
|
|
|
|
xunit_dir="${source_root}/shippable/testresults"
|
|
coverage_dir="${source_root}/shippable/codecoverage"
|
|
|
|
mkdir -p "${xunit_dir}"
|
|
mkdir -p "${coverage_dir}"
|
|
|
|
xunit_file="${xunit_dir}/nosetests-xunit.xml"
|
|
coverage_file="${coverage_dir}/nosetests-coverage.xml"
|
|
|
|
TOX_TESTENV_PASSENV=NOSETESTS NOSETESTS="nosetests --with-xunit --xunit-file='${xunit_file}' --cover-xml --cover-xml-file='${coverage_file}'" tox
|
|
|
|
source hacking/env-setup
|
|
python --version
|
|
ansible --version
|
|
ansible -m ping localhost
|
|
fi
|