diff options
4 files changed, 1320 insertions, 0 deletions
diff --git a/recipes-devtools/python/python-ansible.inc b/recipes-devtools/python/python-ansible.inc new file mode 100644 index 00000000..f1b3771a --- /dev/null +++ b/recipes-devtools/python/python-ansible.inc @@ -0,0 +1,76 @@ +DESCRIPTION = "Ansible is a simple IT automation platform that makes your applications and systems easier to deploy." +HOMEPAGE = "https://github.com/ansible/ansible/" +SECTION = "devel/python" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +SRCNAME = "ansible" + +SRC_URI = "http://releases.ansible.com/ansible/${SRCNAME}-${PV}.tar.gz" + +SRC_URI[md5sum] = "b1be8f05864a07c06b8a767dcd48ba1b" +SRC_URI[sha256sum] = "cd4b8f53720fcd0c351156b840fdd15ecfbec22c951b5406ec503de49d40b9f5" + + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +ANSIBLE_WHITELIST_MODULES ?= "commands files system network/ovs __pycache__ service" + +do_install_append() { + set +e + + # install hosts and conf + install -d ${D}/${sysconfdir}/ansible + + # There is no default inventory configuration installed for ansible, + # so we use the example as a template to improve OOBE. + install ${S}/examples/hosts ${D}/${sysconfdir}/ansible/ + install ${S}/examples/ansible.cfg ${D}/${sysconfdir}/ansible/ + + # do not gather machine's information, which could reduce setup time + sed -i "s|^#gathering = implicit|gathering = explicit|g" \ + ${D}/${sysconfdir}/ansible/ansible.cfg + + for d in $(ls ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/ansible/modules); do + if [ -d ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/ansible/modules/$d ]; then + match= + rm_target= + for w in ${ANSIBLE_WHITELIST_MODULES}; do + m=$(echo $w | grep $d) + if [ $? -eq 0 ]; then + match=t + match_word=$m + fi + done + if [ -n "$match" ]; then + echo $match_word | grep -q "/" + if [ $? -eq 0 ]; then + for d2 in $(ls ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/ansible/modules/$d); do + if [ -d ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/ansible/modules/$d/$d2 ]; then + sub_remove=t + for w in ${ANSIBLE_WHITELIST_MODULES}; do + m=$(echo $w | grep $d2) + if [ $? -eq 0 ]; then + sub_remove= + fi + done + if [ -n "$sub_remove" ]; then + echo "[info]: removing $d/$d2" + rm -rf ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/ansible/modules/$d/$d2 + else + echo "[info]: whitlisting $d/$d2" + fi + fi + done + else + echo "[info]: whitlisting $d" + fi + else + echo "[info]: removing $d" + rm -rf ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/ansible/modules/$d + fi + fi + done +} + +CLEANBROKEN = "1" diff --git a/recipes-devtools/python/python-ansible_2.3.1.0.bb b/recipes-devtools/python/python-ansible_2.3.1.0.bb new file mode 100644 index 00000000..b6659fc1 --- /dev/null +++ b/recipes-devtools/python/python-ansible_2.3.1.0.bb @@ -0,0 +1,4 @@ +inherit setuptools +require python-ansible.inc + +RDEPENDS_${PN} += "python-pyyaml python-jinja2 python-modules" diff --git a/recipes-devtools/python/python3-ansible/python3-ensure-py-scripts-use-py3-for-shebang.patch b/recipes-devtools/python/python3-ansible/python3-ensure-py-scripts-use-py3-for-shebang.patch new file mode 100644 index 00000000..e98eb46c --- /dev/null +++ b/recipes-devtools/python/python3-ansible/python3-ensure-py-scripts-use-py3-for-shebang.patch @@ -0,0 +1,1232 @@ +From 66b824da2fadfd5760040be244f89fa8320df55b Mon Sep 17 00:00:00 2001 +From: Mark Asselstine <mark.asselstine@windriver.com> +Date: Thu, 13 Jul 2017 14:11:46 -0400 +Subject: [PATCH] python3: ensure py scripts use py3 for shebang + +Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> +--- + bin/ansible | 2 +- + bin/ansible-connection | 2 +- + bin/ansible-console | 2 +- + bin/ansible-doc | 2 +- + bin/ansible-galaxy | 2 +- + bin/ansible-playbook | 2 +- + bin/ansible-pull | 2 +- + bin/ansible-vault | 2 +- + contrib/inventory/abiquo.py | 2 +- + contrib/inventory/apache-libcloud.py | 2 +- + contrib/inventory/apstra_aos.py | 2 +- + contrib/inventory/azure_rm.py | 2 +- + contrib/inventory/brook.py | 2 +- + contrib/inventory/cloudforms.py | 2 +- + contrib/inventory/cloudstack.py | 2 +- + contrib/inventory/cobbler.py | 2 +- + contrib/inventory/collins.py | 2 +- + contrib/inventory/consul_io.py | 2 +- + contrib/inventory/digital_ocean.py | 2 +- + contrib/inventory/docker.py | 2 +- + contrib/inventory/ec2.py | 2 +- + contrib/inventory/fleet.py | 2 +- + contrib/inventory/foreman.py | 2 +- + contrib/inventory/freeipa.py | 2 +- + contrib/inventory/gce.py | 2 +- + contrib/inventory/jail.py | 2 +- + contrib/inventory/landscape.py | 2 +- + contrib/inventory/libvirt_lxc.py | 2 +- + contrib/inventory/linode.py | 2 +- + contrib/inventory/lxc_inventory.py | 2 +- + contrib/inventory/mdt_dynamic_inventory.py | 2 +- + contrib/inventory/nagios_livestatus.py | 2 +- + contrib/inventory/nagios_ndo.py | 2 +- + contrib/inventory/nova.py | 2 +- + contrib/inventory/nsot.py | 2 +- + contrib/inventory/openshift.py | 2 +- + contrib/inventory/openstack.py | 2 +- + contrib/inventory/openvz.py | 2 +- + contrib/inventory/ovirt.py | 2 +- + contrib/inventory/ovirt4.py | 2 +- + contrib/inventory/packet_net.py | 2 +- + contrib/inventory/proxmox.py | 2 +- + contrib/inventory/rackhd.py | 2 +- + contrib/inventory/rax.py | 2 +- + contrib/inventory/rhv.py | 2 +- + contrib/inventory/rudder.py | 2 +- + contrib/inventory/serf.py | 2 +- + contrib/inventory/softlayer.py | 2 +- + contrib/inventory/spacewalk.py | 2 +- + contrib/inventory/ssh_config.py | 2 +- + contrib/inventory/stacki.py | 2 +- + contrib/inventory/vagrant.py | 2 +- + contrib/inventory/vbox.py | 2 +- + contrib/inventory/vmware.py | 2 +- + contrib/inventory/vmware_inventory.py | 2 +- + contrib/inventory/windows_azure.py | 2 +- + contrib/inventory/zabbix.py | 2 +- + contrib/inventory/zone.py | 2 +- + docs/docsite/rst/dev_guide/developing_api.rst | 2 +- + hacking/dump_playbook_attributes.py | 2 +- + hacking/module_formatter.py | 2 +- + lib/ansible/modules/web_infrastructure/django_manage.py | 2 +- + lib/ansible/modules/windows/win_file_version.py | 2 +- + lib/ansible/modules/windows/win_firewall_rule.py | 2 +- + test/compile/compile.py | 2 +- + test/integration/cleanup_rax.py | 2 +- + .../targets/embedded_module/library/test_integration_module | 2 +- + test/integration/targets/module_utils/module_utils/foo.py | 2 +- + test/integration/targets/module_utils/module_utils/sub/bam.py | 2 +- + test/integration/targets/module_utils/module_utils/sub/bam/bam.py | 2 +- + test/integration/targets/module_utils/module_utils/sub/bar/bam.py | 2 +- + test/integration/targets/module_utils/module_utils/sub/bar/bar.py | 2 +- + test/integration/targets/service/files/ansible_test_service | 2 +- + test/runner/ansible-test | 2 +- + test/runner/injector/ansible | 2 +- + test/runner/injector/ansible-console | 2 +- + test/runner/injector/ansible-doc | 2 +- + test/runner/injector/ansible-galaxy | 2 +- + test/runner/injector/ansible-playbook | 2 +- + test/runner/injector/ansible-pull | 2 +- + test/runner/injector/ansible-vault | 2 +- + test/runner/injector/cover | 2 +- + test/runner/injector/cover2 | 2 +- + test/runner/injector/cover2.4 | 2 +- + test/runner/injector/cover2.6 | 2 +- + test/runner/injector/cover2.7 | 2 +- + test/runner/injector/cover3 | 2 +- + test/runner/injector/cover3.5 | 2 +- + test/runner/injector/cover3.6 | 2 +- + test/runner/injector/injector.py | 2 +- + test/runner/injector/pytest | 2 +- + test/runner/injector/runner | 2 +- + test/runner/injector/runner2 | 2 +- + test/runner/injector/runner2.4 | 2 +- + test/runner/injector/runner2.6 | 2 +- + test/runner/injector/runner2.7 | 2 +- + test/runner/injector/runner3 | 2 +- + test/runner/injector/runner3.5 | 2 +- + test/runner/injector/runner3.6 | 2 +- + test/runner/retry.py | 2 +- + test/runner/test.py | 2 +- + test/sanity/code-smell/ansible-var-precedence-check.py | 2 +- + test/sanity/code-smell/integration-aliases.py | 2 +- + test/sanity/code-smell/shebang.sh | 4 ++-- + test/sanity/validate-modules/test_validate_modules_regex.py | 2 +- + test/sanity/validate-modules/validate-modules | 2 +- + test/units/executor/module_common/test_module_common.py | 4 ++-- + test/units/modules/network/nxos/test_nxos_config.py | 2 +- + test/utils/shippable/ansible-core-ci | 2 +- + test/utils/shippable/download.py | 2 +- + 121 files changed, 123 insertions(+), 123 deletions(-) + +diff --git a/bin/ansible b/bin/ansible +index 24550b9..0587499 100755 +--- a/bin/ansible ++++ b/bin/ansible +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/bin/ansible-connection b/bin/ansible-connection +index 93d787e..f0b9aa3 100755 +--- a/bin/ansible-connection ++++ b/bin/ansible-connection +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2016, Ansible, Inc. <support@ansible.com> + # +diff --git a/bin/ansible-console b/bin/ansible-console +index 24550b9..0587499 100755 +--- a/bin/ansible-console ++++ b/bin/ansible-console +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/bin/ansible-doc b/bin/ansible-doc +index 24550b9..0587499 100755 +--- a/bin/ansible-doc ++++ b/bin/ansible-doc +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/bin/ansible-galaxy b/bin/ansible-galaxy +index 24550b9..0587499 100755 +--- a/bin/ansible-galaxy ++++ b/bin/ansible-galaxy +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/bin/ansible-playbook b/bin/ansible-playbook +index 24550b9..0587499 100755 +--- a/bin/ansible-playbook ++++ b/bin/ansible-playbook +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/bin/ansible-pull b/bin/ansible-pull +index 24550b9..0587499 100755 +--- a/bin/ansible-pull ++++ b/bin/ansible-pull +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/bin/ansible-vault b/bin/ansible-vault +index 24550b9..0587499 100755 +--- a/bin/ansible-vault ++++ b/bin/ansible-vault +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Michael DeHaan <michael.dehaan@gmail.com> + # +diff --git a/contrib/inventory/abiquo.py b/contrib/inventory/abiquo.py +index 405bbbb..d318949 100755 +--- a/contrib/inventory/abiquo.py ++++ b/contrib/inventory/abiquo.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + + ''' +diff --git a/contrib/inventory/apache-libcloud.py b/contrib/inventory/apache-libcloud.py +index 0120d2b..ce92843 100755 +--- a/contrib/inventory/apache-libcloud.py ++++ b/contrib/inventory/apache-libcloud.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2013, Sebastien Goasguen <runseb@gmail.com> + # +diff --git a/contrib/inventory/apstra_aos.py b/contrib/inventory/apstra_aos.py +index 65838c0..48d293e 100755 +--- a/contrib/inventory/apstra_aos.py ++++ b/contrib/inventory/apstra_aos.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # (c) 2017 Apstra Inc, <community@apstra.com> + # +diff --git a/contrib/inventory/azure_rm.py b/contrib/inventory/azure_rm.py +index 73b8b95..87b31b0 100755 +--- a/contrib/inventory/azure_rm.py ++++ b/contrib/inventory/azure_rm.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # Copyright (c) 2016 Matt Davis, <mdavis@ansible.com> + # Chris Houseknecht, <house@redhat.com> +diff --git a/contrib/inventory/brook.py b/contrib/inventory/brook.py +index a7d4741..e4de982 100755 +--- a/contrib/inventory/brook.py ++++ b/contrib/inventory/brook.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2016 Doalitic. + # + # This file is part of Ansible +diff --git a/contrib/inventory/cloudforms.py b/contrib/inventory/cloudforms.py +index 69c149b..202a6c9 100755 +--- a/contrib/inventory/cloudforms.py ++++ b/contrib/inventory/cloudforms.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # vim: set fileencoding=utf-8 : + # + # Copyright (C) 2016 Guido Günther <agx@sigxcpu.org> +diff --git a/contrib/inventory/cloudstack.py b/contrib/inventory/cloudstack.py +index a9b6b9f..d7f05ff 100755 +--- a/contrib/inventory/cloudstack.py ++++ b/contrib/inventory/cloudstack.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + # + # (c) 2015, René Moser <mail@renemoser.net> +diff --git a/contrib/inventory/cobbler.py b/contrib/inventory/cobbler.py +index 89f9bf7..f2a9ff7 100755 +--- a/contrib/inventory/cobbler.py ++++ b/contrib/inventory/cobbler.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + """ + Cobbler external inventory script +diff --git a/contrib/inventory/collins.py b/contrib/inventory/collins.py +index b7193e2..f0bc2a1 100755 +--- a/contrib/inventory/collins.py ++++ b/contrib/inventory/collins.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + """ + Collins external inventory script +diff --git a/contrib/inventory/consul_io.py b/contrib/inventory/consul_io.py +index 8106097..2cdc523 100755 +--- a/contrib/inventory/consul_io.py ++++ b/contrib/inventory/consul_io.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # + # (c) 2015, Steve Gargan <steve.gargan@gmail.com> +diff --git a/contrib/inventory/digital_ocean.py b/contrib/inventory/digital_ocean.py +index 07c124b..0b0e587 100755 +--- a/contrib/inventory/digital_ocean.py ++++ b/contrib/inventory/digital_ocean.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + ''' + DigitalOcean external inventory script +diff --git a/contrib/inventory/docker.py b/contrib/inventory/docker.py +index da051dd..9b88d0c 100755 +--- a/contrib/inventory/docker.py ++++ b/contrib/inventory/docker.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # (c) 2016 Paul Durivage <paul.durivage@gmail.com> + # Chris Houseknecht <house@redhat.com> +diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py +index 03b9820..9c9b2e4 100755 +--- a/contrib/inventory/ec2.py ++++ b/contrib/inventory/ec2.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + ''' + EC2 external inventory script +diff --git a/contrib/inventory/fleet.py b/contrib/inventory/fleet.py +index 4db4ea1..8790f2b 100755 +--- a/contrib/inventory/fleet.py ++++ b/contrib/inventory/fleet.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """ + fleetctl base external inventory script. Automatically finds the IPs of the booted coreos instances and + returns it under the host group 'coreos' +diff --git a/contrib/inventory/foreman.py b/contrib/inventory/foreman.py +index 9a87397..2483cce 100755 +--- a/contrib/inventory/foreman.py ++++ b/contrib/inventory/foreman.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # vim: set fileencoding=utf-8 : + # + # Copyright (C) 2016 Guido Günther <agx@sigxcpu.org>, +diff --git a/contrib/inventory/freeipa.py b/contrib/inventory/freeipa.py +index a72b774..1f092b2 100755 +--- a/contrib/inventory/freeipa.py ++++ b/contrib/inventory/freeipa.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import argparse + from ipalib import api +diff --git a/contrib/inventory/gce.py b/contrib/inventory/gce.py +index 5c58146..7616843 100755 +--- a/contrib/inventory/gce.py ++++ b/contrib/inventory/gce.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2013 Google Inc. + # + # This file is part of Ansible +diff --git a/contrib/inventory/jail.py b/contrib/inventory/jail.py +index 98b6acf..b12289c 100755 +--- a/contrib/inventory/jail.py ++++ b/contrib/inventory/jail.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2013, Michael Scherer <misc@zarb.org> + # +diff --git a/contrib/inventory/landscape.py b/contrib/inventory/landscape.py +index 4b53171..7f52639 100755 +--- a/contrib/inventory/landscape.py ++++ b/contrib/inventory/landscape.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2015, Marc Abramowitz <marca@surveymonkey.com> + # +diff --git a/contrib/inventory/libvirt_lxc.py b/contrib/inventory/libvirt_lxc.py +index 35ccf40..ba3496d 100755 +--- a/contrib/inventory/libvirt_lxc.py ++++ b/contrib/inventory/libvirt_lxc.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2013, Michael Scherer <misc@zarb.org> + # +diff --git a/contrib/inventory/linode.py b/contrib/inventory/linode.py +index 6fd922f..cab7a70 100755 +--- a/contrib/inventory/linode.py ++++ b/contrib/inventory/linode.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + ''' + Linode external inventory script +diff --git a/contrib/inventory/lxc_inventory.py b/contrib/inventory/lxc_inventory.py +index d82bb61..f7ac67c 100755 +--- a/contrib/inventory/lxc_inventory.py ++++ b/contrib/inventory/lxc_inventory.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # (c) 2015-16 Florian Haas, hastexo Professional Services GmbH + # <florian@hastexo.com> +diff --git a/contrib/inventory/mdt_dynamic_inventory.py b/contrib/inventory/mdt_dynamic_inventory.py +index 89ecc3e..5540a41 100755 +--- a/contrib/inventory/mdt_dynamic_inventory.py ++++ b/contrib/inventory/mdt_dynamic_inventory.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2016, Julian Barnett <jbarnett@tableau.com> + # +diff --git a/contrib/inventory/nagios_livestatus.py b/contrib/inventory/nagios_livestatus.py +index e1c145e..3e250cb 100755 +--- a/contrib/inventory/nagios_livestatus.py ++++ b/contrib/inventory/nagios_livestatus.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2015, Yannig Perre <yannig.perre@gmail.com> + # +diff --git a/contrib/inventory/nagios_ndo.py b/contrib/inventory/nagios_ndo.py +index 49ec563..cc10a51 100755 +--- a/contrib/inventory/nagios_ndo.py ++++ b/contrib/inventory/nagios_ndo.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2014, Jonathan Lestrelin <jonathan.lestrelin@gmail.com> + # +diff --git a/contrib/inventory/nova.py b/contrib/inventory/nova.py +index f8c1617..d0ad7f0 100755 +--- a/contrib/inventory/nova.py ++++ b/contrib/inventory/nova.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2012, Marco Vito Moscaritolo <marco@agavee.com> + # +diff --git a/contrib/inventory/nsot.py b/contrib/inventory/nsot.py +index 62be85a..0a8dc9b 100755 +--- a/contrib/inventory/nsot.py ++++ b/contrib/inventory/nsot.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + ''' + nsot +diff --git a/contrib/inventory/openshift.py b/contrib/inventory/openshift.py +index 479b808..dc398b5 100755 +--- a/contrib/inventory/openshift.py ++++ b/contrib/inventory/openshift.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2013, Michael Scherer <misc@zarb.org> + # +diff --git a/contrib/inventory/openstack.py b/contrib/inventory/openstack.py +index 6679a2c..eb38742 100755 +--- a/contrib/inventory/openstack.py ++++ b/contrib/inventory/openstack.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Copyright (c) 2012, Marco Vito Moscaritolo <marco@agavee.com> + # Copyright (c) 2013, Jesse Keating <jesse.keating@rackspace.com> +diff --git a/contrib/inventory/openvz.py b/contrib/inventory/openvz.py +index 1ef8ab1..d4dfcde 100755 +--- a/contrib/inventory/openvz.py ++++ b/contrib/inventory/openvz.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + # + # openvz.py +diff --git a/contrib/inventory/ovirt.py b/contrib/inventory/ovirt.py +index 7f505d9..ada01fa 100755 +--- a/contrib/inventory/ovirt.py ++++ b/contrib/inventory/ovirt.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2015 IIX Inc. + # + # This file is part of Ansible +diff --git a/contrib/inventory/ovirt4.py b/contrib/inventory/ovirt4.py +index 5ee5986..9d9e940 100755 +--- a/contrib/inventory/ovirt4.py ++++ b/contrib/inventory/ovirt4.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + # + # Copyright (c) 2016 Red Hat, Inc. +diff --git a/contrib/inventory/packet_net.py b/contrib/inventory/packet_net.py +index c40c821..d23eba1 100755 +--- a/contrib/inventory/packet_net.py ++++ b/contrib/inventory/packet_net.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + ''' + Packet.net external inventory script +diff --git a/contrib/inventory/proxmox.py b/contrib/inventory/proxmox.py +index c0ffb0b..ef7a394 100755 +--- a/contrib/inventory/proxmox.py ++++ b/contrib/inventory/proxmox.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Copyright (C) 2014 Mathieu GAUTHIER-LAFAYE <gauthierl@lapth.cnrs.fr> + # +diff --git a/contrib/inventory/rackhd.py b/contrib/inventory/rackhd.py +index a89cb04..05b3ada 100755 +--- a/contrib/inventory/rackhd.py ++++ b/contrib/inventory/rackhd.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import json + import requests +diff --git a/contrib/inventory/rax.py b/contrib/inventory/rax.py +index d20a8ab..6c34753 100755 +--- a/contrib/inventory/rax.py ++++ b/contrib/inventory/rax.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2013, Jesse Keating <jesse.keating@rackspace.com, + # Paul Durivage <paul.durivage@rackspace.com>, +diff --git a/contrib/inventory/rhv.py b/contrib/inventory/rhv.py +index 5ee5986..9d9e940 100755 +--- a/contrib/inventory/rhv.py ++++ b/contrib/inventory/rhv.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + # + # Copyright (c) 2016 Red Hat, Inc. +diff --git a/contrib/inventory/rudder.py b/contrib/inventory/rudder.py +index 5cf16c9..a669c37 100755 +--- a/contrib/inventory/rudder.py ++++ b/contrib/inventory/rudder.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Copyright (c) 2015, Normation SAS + # +diff --git a/contrib/inventory/serf.py b/contrib/inventory/serf.py +index e1340da..6242eda 100755 +--- a/contrib/inventory/serf.py ++++ b/contrib/inventory/serf.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2015, Marc Abramowitz <marca@surveymonkey.com> + # +diff --git a/contrib/inventory/softlayer.py b/contrib/inventory/softlayer.py +index 3933eb4..519092f 100755 +--- a/contrib/inventory/softlayer.py ++++ b/contrib/inventory/softlayer.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """ + SoftLayer external inventory script. + +diff --git a/contrib/inventory/spacewalk.py b/contrib/inventory/spacewalk.py +index 2735a81..2da2720 100755 +--- a/contrib/inventory/spacewalk.py ++++ b/contrib/inventory/spacewalk.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + """ + Spacewalk external inventory script +diff --git a/contrib/inventory/ssh_config.py b/contrib/inventory/ssh_config.py +index ae41e58..05373ec 100755 +--- a/contrib/inventory/ssh_config.py ++++ b/contrib/inventory/ssh_config.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2014, Tomas Karasek <tomas.karasek@digile.fi> + # +diff --git a/contrib/inventory/stacki.py b/contrib/inventory/stacki.py +index fd4cda5..d6acda3 100755 +--- a/contrib/inventory/stacki.py ++++ b/contrib/inventory/stacki.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Copyright (c) 2016, Hugh Ma <hugh.ma@flextronics.com> + # +diff --git a/contrib/inventory/vagrant.py b/contrib/inventory/vagrant.py +index 37a6741..86fc67d 100755 +--- a/contrib/inventory/vagrant.py ++++ b/contrib/inventory/vagrant.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """ + Vagrant external inventory script. Automatically finds the IP of the booted vagrant vm(s), and + returns it under the host group 'vagrant' +diff --git a/contrib/inventory/vbox.py b/contrib/inventory/vbox.py +index 8905fab..141b01a 100755 +--- a/contrib/inventory/vbox.py ++++ b/contrib/inventory/vbox.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # This file is part of Ansible, + # +diff --git a/contrib/inventory/vmware.py b/contrib/inventory/vmware.py +index 377c7cb..cee232a 100755 +--- a/contrib/inventory/vmware.py ++++ b/contrib/inventory/vmware.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + ''' + VMware Inventory Script +diff --git a/contrib/inventory/vmware_inventory.py b/contrib/inventory/vmware_inventory.py +index 58ee473..4300fe5 100755 +--- a/contrib/inventory/vmware_inventory.py ++++ b/contrib/inventory/vmware_inventory.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Requirements + # - pyvmomi >= 6.0.0.2016.4 +diff --git a/contrib/inventory/windows_azure.py b/contrib/inventory/windows_azure.py +index cceed36..f8777be 100755 +--- a/contrib/inventory/windows_azure.py ++++ b/contrib/inventory/windows_azure.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + ''' + Windows Azure external inventory script +diff --git a/contrib/inventory/zabbix.py b/contrib/inventory/zabbix.py +index f6b37b9..241823b 100755 +--- a/contrib/inventory/zabbix.py ++++ b/contrib/inventory/zabbix.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2013, Greg Buehler + # +diff --git a/contrib/inventory/zone.py b/contrib/inventory/zone.py +index 893953e..b049fd7 100755 +--- a/contrib/inventory/zone.py ++++ b/contrib/inventory/zone.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2015, Dagobert Michelsen <dam@baltic-online.de> + # +diff --git a/docs/docsite/rst/dev_guide/developing_api.rst b/docs/docsite/rst/dev_guide/developing_api.rst +index bb2cbc4..55d4212 100644 +--- a/docs/docsite/rst/dev_guide/developing_api.rst ++++ b/docs/docsite/rst/dev_guide/developing_api.rst +@@ -37,7 +37,7 @@ Python API 2.0 + In 2.0 things get a bit more complicated to start, but you end up with much more discrete and readable classes:: + + +- #!/usr/bin/env python ++ #!/usr/bin/env python3 + + import json + from collections import namedtuple +diff --git a/hacking/dump_playbook_attributes.py b/hacking/dump_playbook_attributes.py +index 204fe3f..9d86b66 100755 +--- a/hacking/dump_playbook_attributes.py ++++ b/hacking/dump_playbook_attributes.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import optparse + from jinja2 import Environment, FileSystemLoader +diff --git a/hacking/module_formatter.py b/hacking/module_formatter.py +index 4f132aa..1bee33a 100755 +--- a/hacking/module_formatter.py ++++ b/hacking/module_formatter.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # (c) 2012, Jan-Piet Mens <jpmens () gmail.com> + # (c) 2012-2014, Michael DeHaan <michael@ansible.com> and others + # +diff --git a/lib/ansible/modules/web_infrastructure/django_manage.py b/lib/ansible/modules/web_infrastructure/django_manage.py +index ac24829..90aee1b 100644 +--- a/lib/ansible/modules/web_infrastructure/django_manage.py ++++ b/lib/ansible/modules/web_infrastructure/django_manage.py +@@ -97,7 +97,7 @@ notes: + - This module assumes English error messages for the 'createcachetable' command to detect table existence, unfortunately. + - To be able to use the migrate command with django versions < 1.7, you must have south installed and added as an app in your settings. + - To be able to use the collectstatic command, you must have enabled staticfiles in your settings. +- - As of ansible 2.x, your I(manage.py) application must be executable (rwxr-xr-x), and must have a valid I(shebang), i.e. "#!/usr/bin/env python", for invoking the appropriate Python interpreter. ++ - As of ansible 2.x, your I(manage.py) application must be executable (rwxr-xr-x), and must have a valid I(shebang), i.e. "#!/usr/bin/env python3", for invoking the appropriate Python interpreter. + requirements: [ "virtualenv", "django" ] + author: "Scott Anderson (@tastychutney)" + ''' +diff --git a/lib/ansible/modules/windows/win_file_version.py b/lib/ansible/modules/windows/win_file_version.py +index 399c978..1225a06 100644 +--- a/lib/ansible/modules/windows/win_file_version.py ++++ b/lib/ansible/modules/windows/win_file_version.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + + # Get DLL or EXE build version +diff --git a/lib/ansible/modules/windows/win_firewall_rule.py b/lib/ansible/modules/windows/win_firewall_rule.py +index e4ab1e4..456523d 100644 +--- a/lib/ansible/modules/windows/win_firewall_rule.py ++++ b/lib/ansible/modules/windows/win_firewall_rule.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2014, Timothy Vandenbrande <timothy.vandenbrande@gmail.com> + # +diff --git a/test/compile/compile.py b/test/compile/compile.py +index 01144c6..6e332a9 100755 +--- a/test/compile/compile.py ++++ b/test/compile/compile.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Python syntax checker with lint friendly output.""" + + import os +diff --git a/test/integration/cleanup_rax.py b/test/integration/cleanup_rax.py +index 5c757f5..bc3448b 100755 +--- a/test/integration/cleanup_rax.py ++++ b/test/integration/cleanup_rax.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import os + import re +diff --git a/test/integration/targets/embedded_module/library/test_integration_module b/test/integration/targets/embedded_module/library/test_integration_module +index f564619..0d46d15 100644 +--- a/test/integration/targets/embedded_module/library/test_integration_module ++++ b/test/integration/targets/embedded_module/library/test_integration_module +@@ -1,3 +1,3 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + print('{"changed":false, "msg":"this is the embedded module"}') +diff --git a/test/integration/targets/module_utils/module_utils/foo.py b/test/integration/targets/module_utils/module_utils/foo.py +index 20698f1..0cd5c85 100644 +--- a/test/integration/targets/module_utils/module_utils/foo.py ++++ b/test/integration/targets/module_utils/module_utils/foo.py +@@ -1,3 +1,3 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + foo = "FOO FROM foo.py" +diff --git a/test/integration/targets/module_utils/module_utils/sub/bam.py b/test/integration/targets/module_utils/module_utils/sub/bam.py +index 566f8b7..0814485 100644 +--- a/test/integration/targets/module_utils/module_utils/sub/bam.py ++++ b/test/integration/targets/module_utils/module_utils/sub/bam.py +@@ -1,3 +1,3 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + bam = "BAM FROM sub/bam.py" +diff --git a/test/integration/targets/module_utils/module_utils/sub/bam/bam.py b/test/integration/targets/module_utils/module_utils/sub/bam/bam.py +index b7ed707..97f9eed 100644 +--- a/test/integration/targets/module_utils/module_utils/sub/bam/bam.py ++++ b/test/integration/targets/module_utils/module_utils/sub/bam/bam.py +@@ -1,3 +1,3 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + bam = "BAM FROM sub/bam/bam.py" +diff --git a/test/integration/targets/module_utils/module_utils/sub/bar/bam.py b/test/integration/targets/module_utils/module_utils/sub/bar/bam.py +index 02fafd4..3a93360 100644 +--- a/test/integration/targets/module_utils/module_utils/sub/bar/bam.py ++++ b/test/integration/targets/module_utils/module_utils/sub/bar/bam.py +@@ -1,3 +1,3 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + bam = "BAM FROM sub/bar/bam.py" +diff --git a/test/integration/targets/module_utils/module_utils/sub/bar/bar.py b/test/integration/targets/module_utils/module_utils/sub/bar/bar.py +index 8566901..40f0c94 100644 +--- a/test/integration/targets/module_utils/module_utils/sub/bar/bar.py ++++ b/test/integration/targets/module_utils/module_utils/sub/bar/bar.py +@@ -1,3 +1,3 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + bar = "BAR FROM sub/bar/bar.py" +diff --git a/test/integration/targets/service/files/ansible_test_service b/test/integration/targets/service/files/ansible_test_service +index 682edeb..e858909 100755 +--- a/test/integration/targets/service/files/ansible_test_service ++++ b/test/integration/targets/service/files/ansible_test_service +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # this is mostly based off of the code found here: + # http://code.activestate.com/recipes/278731-creating-a-daemon-the-python-way/ +diff --git a/test/runner/ansible-test b/test/runner/ansible-test +index 801f07f..804aa8f 100755 +--- a/test/runner/ansible-test ++++ b/test/runner/ansible-test +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # PYTHON_ARGCOMPLETE_OK + """Test runner for all Ansible tests.""" + +diff --git a/test/runner/injector/ansible b/test/runner/injector/ansible +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible ++++ b/test/runner/injector/ansible +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/ansible-console b/test/runner/injector/ansible-console +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible-console ++++ b/test/runner/injector/ansible-console +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/ansible-doc b/test/runner/injector/ansible-doc +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible-doc ++++ b/test/runner/injector/ansible-doc +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/ansible-galaxy b/test/runner/injector/ansible-galaxy +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible-galaxy ++++ b/test/runner/injector/ansible-galaxy +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/ansible-playbook b/test/runner/injector/ansible-playbook +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible-playbook ++++ b/test/runner/injector/ansible-playbook +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/ansible-pull b/test/runner/injector/ansible-pull +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible-pull ++++ b/test/runner/injector/ansible-pull +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/ansible-vault b/test/runner/injector/ansible-vault +index 57241c9..c463946 100755 +--- a/test/runner/injector/ansible-vault ++++ b/test/runner/injector/ansible-vault +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover b/test/runner/injector/cover +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover ++++ b/test/runner/injector/cover +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover2 b/test/runner/injector/cover2 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover2 ++++ b/test/runner/injector/cover2 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover2.4 b/test/runner/injector/cover2.4 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover2.4 ++++ b/test/runner/injector/cover2.4 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover2.6 b/test/runner/injector/cover2.6 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover2.6 ++++ b/test/runner/injector/cover2.6 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover2.7 b/test/runner/injector/cover2.7 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover2.7 ++++ b/test/runner/injector/cover2.7 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover3 b/test/runner/injector/cover3 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover3 ++++ b/test/runner/injector/cover3 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover3.5 b/test/runner/injector/cover3.5 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover3.5 ++++ b/test/runner/injector/cover3.5 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/cover3.6 b/test/runner/injector/cover3.6 +index 57241c9..c463946 100755 +--- a/test/runner/injector/cover3.6 ++++ b/test/runner/injector/cover3.6 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/injector.py b/test/runner/injector/injector.py +index 57241c9..c463946 100755 +--- a/test/runner/injector/injector.py ++++ b/test/runner/injector/injector.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/pytest b/test/runner/injector/pytest +index 57241c9..c463946 100755 +--- a/test/runner/injector/pytest ++++ b/test/runner/injector/pytest +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner b/test/runner/injector/runner +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner ++++ b/test/runner/injector/runner +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner2 b/test/runner/injector/runner2 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner2 ++++ b/test/runner/injector/runner2 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner2.4 b/test/runner/injector/runner2.4 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner2.4 ++++ b/test/runner/injector/runner2.4 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner2.6 b/test/runner/injector/runner2.6 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner2.6 ++++ b/test/runner/injector/runner2.6 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner2.7 b/test/runner/injector/runner2.7 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner2.7 ++++ b/test/runner/injector/runner2.7 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner3 b/test/runner/injector/runner3 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner3 ++++ b/test/runner/injector/runner3 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner3.5 b/test/runner/injector/runner3.5 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner3.5 ++++ b/test/runner/injector/runner3.5 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/injector/runner3.6 b/test/runner/injector/runner3.6 +index 57241c9..c463946 100755 +--- a/test/runner/injector/runner3.6 ++++ b/test/runner/injector/runner3.6 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + """Code coverage wrapper.""" + + from __future__ import absolute_import, print_function +diff --git a/test/runner/retry.py b/test/runner/retry.py +index 4972131..a9ffb07 100755 +--- a/test/runner/retry.py ++++ b/test/runner/retry.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # PYTHON_ARGCOMPLETE_OK + """Automatically retry failed commands.""" + +diff --git a/test/runner/test.py b/test/runner/test.py +index 801f07f..804aa8f 100755 +--- a/test/runner/test.py ++++ b/test/runner/test.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # PYTHON_ARGCOMPLETE_OK + """Test runner for all Ansible tests.""" + +diff --git a/test/sanity/code-smell/ansible-var-precedence-check.py b/test/sanity/code-smell/ansible-var-precedence-check.py +index e10c097..13c7a73 100755 +--- a/test/sanity/code-smell/ansible-var-precedence-check.py ++++ b/test/sanity/code-smell/ansible-var-precedence-check.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # A tool to check the order of precedence for ansible variables + # https://github.com/ansible/ansible/blob/devel/test/integration/test_var_precedence.yml +diff --git a/test/sanity/code-smell/integration-aliases.py b/test/sanity/code-smell/integration-aliases.py +index 50301e3..ac53ca9 100755 +--- a/test/sanity/code-smell/integration-aliases.py ++++ b/test/sanity/code-smell/integration-aliases.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + import os + import textwrap +diff --git a/test/sanity/code-smell/shebang.sh b/test/sanity/code-smell/shebang.sh +index 76d72c1..565a198 100755 +--- a/test/sanity/code-smell/shebang.sh ++++ b/test/sanity/code-smell/shebang.sh +@@ -8,11 +8,11 @@ grep '^#!' -rIn . \ + -e '^\./test/integration/targets/[^/]*/library/[^/]*:#!powershell$' \ + -e '^\./test/integration/targets/[^/]*/library/[^/]*:#!/usr/bin/python$' \ + -e '^\./test/integration/targets/module_precedence/.*lib.*:#!/usr/bin/python$' \ +- -e '^\./hacking/cherrypick.py:#!/usr/bin/env python3$' \ ++ -e '^\./hacking/cherrypick.py:#!/usr/bin/env python33$' \ + -e ':#!/bin/sh$' \ + -e ':#!/bin/bash( -[eux]|$)' \ + -e ':#!/usr/bin/make -f$' \ +- -e ':#!/usr/bin/env python$' \ ++ -e ':#!/usr/bin/env python3$' \ + -e ':#!/usr/bin/env bash$' \ + -e ':#!/usr/bin/env fish$' \ + +diff --git a/test/sanity/validate-modules/test_validate_modules_regex.py b/test/sanity/validate-modules/test_validate_modules_regex.py +index 0e41ee7..8a86b07 100644 +--- a/test/sanity/validate-modules/test_validate_modules_regex.py ++++ b/test/sanity/validate-modules/test_validate_modules_regex.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # This is a standalone test for the regex inside validate-modules + # It is not suitable to add to the make tests target because the +diff --git a/test/sanity/validate-modules/validate-modules b/test/sanity/validate-modules/validate-modules +index d03bff1..201cd41 100755 +--- a/test/sanity/validate-modules/validate-modules ++++ b/test/sanity/validate-modules/validate-modules +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # -*- coding: utf-8 -*- + # + # Copyright (C) 2015 Matt Martz <matt@sivel.net> +diff --git a/test/units/executor/module_common/test_module_common.py b/test/units/executor/module_common/test_module_common.py +index edbf836..1f3bb5a 100644 +--- a/test/units/executor/module_common/test_module_common.py ++++ b/test/units/executor/module_common/test_module_common.py +@@ -114,5 +114,5 @@ class TestGetShebang(object): + (u'#!/usr/bin/python3 -tt -OO', u'/usr/bin/python3') + + def test_python_via_env(self): +- assert amc._get_shebang(u'/usr/bin/python', {u'ansible_python_interpreter': u'/usr/bin/env python'}) == \ +- (u'#!/usr/bin/env python', u'/usr/bin/env python') ++ assert amc._get_shebang(u'/usr/bin/python', {u'ansible_python_interpreter': u'/usr/bin/env python3'}) == \ ++ (u'#!/usr/bin/env python3', u'/usr/bin/env python') +diff --git a/test/units/modules/network/nxos/test_nxos_config.py b/test/units/modules/network/nxos/test_nxos_config.py +index 8e3a59c..46764a8 100644 +--- a/test/units/modules/network/nxos/test_nxos_config.py ++++ b/test/units/modules/network/nxos/test_nxos_config.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # (c) 2016 Red Hat Inc. + # +diff --git a/test/utils/shippable/ansible-core-ci b/test/utils/shippable/ansible-core-ci +index e91b426..44f8fb9 100755 +--- a/test/utils/shippable/ansible-core-ci ++++ b/test/utils/shippable/ansible-core-ci +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # (c) 2016 Matt Clay <matt@mystile.com> + # +diff --git a/test/utils/shippable/download.py b/test/utils/shippable/download.py +index cbda144..e86c8e6 100755 +--- a/test/utils/shippable/download.py ++++ b/test/utils/shippable/download.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # PYTHON_ARGCOMPLETE_OK + + # (c) 2016 Red Hat, Inc. +-- +2.7.4 + diff --git a/recipes-devtools/python/python3-ansible_2.3.1.0.bb b/recipes-devtools/python/python3-ansible_2.3.1.0.bb new file mode 100644 index 00000000..55dd118e --- /dev/null +++ b/recipes-devtools/python/python3-ansible_2.3.1.0.bb @@ -0,0 +1,8 @@ +inherit setuptools3 +require python-ansible.inc + +RDEPENDS_${PN} += "python3-pyyaml python3-jinja2 python3-modules" + +SRC_URI += " \ + file://python3-ensure-py-scripts-use-py3-for-shebang.patch \ +" |