Support ansible 2.7
We should keep up with recent ansible versions so support 2.7. Change-Id: Ic4234784f104690d72cfac71e09ecd170ccce1b5
This commit is contained in:
parent
6504f24caa
commit
fed4d627ce
14
.zuul.yaml
14
.zuul.yaml
|
@ -39,6 +39,12 @@
|
|||
vars:
|
||||
zuul_ansible_version: 2.6
|
||||
|
||||
- job:
|
||||
name: zuul-stream-functional-2.7
|
||||
parent: zuul-stream-functional
|
||||
vars:
|
||||
zuul_ansible_version: 2.7
|
||||
|
||||
- job:
|
||||
name: zuul-tox-remote
|
||||
parent: tox
|
||||
|
@ -156,7 +162,7 @@
|
|||
parent: upload-docker-image
|
||||
description: Build Docker images and upload to Docker Hub.
|
||||
allowed-projects: openstack-infra/zuul
|
||||
secrets:
|
||||
secrets:
|
||||
name: docker_credentials
|
||||
secret: zuul-dockerhub
|
||||
pass-to-parent: true
|
||||
|
@ -185,10 +191,12 @@
|
|||
- zuul/cmd/migrate.py
|
||||
- playbooks/zuul-migrate/.*
|
||||
nodeset: ubuntu-xenial
|
||||
timeout: 2700 # 45 minutes
|
||||
- tox-py36:
|
||||
irrelevant-files:
|
||||
- zuul/cmd/migrate.py
|
||||
- playbooks/zuul-migrate/.*
|
||||
timeout: 2700 # 45 minutes
|
||||
- zuul-build-dashboard
|
||||
- zuul-build-dashboard-multi-tenant
|
||||
- nodejs-npm-run-lint:
|
||||
|
@ -204,6 +212,7 @@
|
|||
- web/.*
|
||||
- zuul-stream-functional-2.5
|
||||
- zuul-stream-functional-2.6
|
||||
- zuul-stream-functional-2.7
|
||||
- zuul-tox-remote
|
||||
- zuul-quick-start
|
||||
- nodepool-zuul-functional:
|
||||
|
@ -218,10 +227,12 @@
|
|||
- zuul/cmd/migrate.py
|
||||
- playbooks/zuul-migrate/.*
|
||||
nodeset: ubuntu-xenial
|
||||
timeout: 2700 # 45 minutes
|
||||
- tox-py36:
|
||||
irrelevant-files:
|
||||
- zuul/cmd/migrate.py
|
||||
- playbooks/zuul-migrate/.*
|
||||
timeout: 2700 # 45 minutes
|
||||
- zuul-build-dashboard
|
||||
- nodejs-npm-run-lint:
|
||||
vars:
|
||||
|
@ -236,6 +247,7 @@
|
|||
- web/.*
|
||||
- zuul-stream-functional-2.5
|
||||
- zuul-stream-functional-2.6
|
||||
- zuul-stream-functional-2.7
|
||||
- zuul-tox-remote
|
||||
- zuul-quick-start
|
||||
- zuul-upload-image
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Zuul now supports ansible 2.7 for running jobs.
|
|
@ -43,6 +43,14 @@
|
|||
test_ansible_version_major: 2
|
||||
test_ansible_version_minor: 6
|
||||
|
||||
- job:
|
||||
name: ansible-27
|
||||
parent: ansible-version
|
||||
ansible-version: 2.7
|
||||
vars:
|
||||
test_ansible_version_major: 2
|
||||
test_ansible_version_minor: 7
|
||||
|
||||
|
||||
- project:
|
||||
name: common-config
|
||||
|
@ -51,3 +59,4 @@
|
|||
- ansible-default
|
||||
- ansible-25
|
||||
- ansible-26
|
||||
- ansible-27
|
||||
|
|
15
tests/fixtures/config/remote-zuul-stream/git/org_project/playbooks/library/broken_module_exception.py
vendored
Executable file
15
tests/fixtures/config/remote-zuul-stream/git/org_project/playbooks/library/broken_module_exception.py
vendored
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
|
||||
def main():
|
||||
raise Exception('This module is broken')
|
||||
|
||||
|
||||
try:
|
||||
from ansible.module_utils.basic import * # noqa
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
|
@ -3,4 +3,4 @@
|
|||
- name: Start zuul_console daemon
|
||||
zuul_console:
|
||||
- name: Module failure
|
||||
broken_module:
|
||||
broken_module_exception:
|
|
@ -0,0 +1,6 @@
|
|||
- hosts: all
|
||||
tasks:
|
||||
- name: Start zuul_console daemon
|
||||
zuul_console:
|
||||
- name: Module failure
|
||||
broken_module_no_result:
|
|
@ -215,3 +215,7 @@ class TestActionModules25(AnsibleZuulTestCase):
|
|||
|
||||
class TestActionModules26(TestActionModules25):
|
||||
ansible_version = '2.6'
|
||||
|
||||
|
||||
class TestActionModules27(TestActionModules25):
|
||||
ansible_version = '2.7'
|
||||
|
|
|
@ -146,3 +146,7 @@ class TestZuulJSON25(AnsibleZuulTestCase):
|
|||
|
||||
class TestZuulJSON26(TestZuulJSON25):
|
||||
ansible_version = '2.6'
|
||||
|
||||
|
||||
class TestZuulJSON27(TestZuulJSON25):
|
||||
ansible_version = '2.7'
|
||||
|
|
|
@ -156,8 +156,8 @@ class TestZuulStream25(AnsibleZuulTestCase):
|
|||
r'RUN END RESULT_NORMAL: \[untrusted : review.example.com/'
|
||||
r'org/project/playbooks/command.yaml@master]', text)
|
||||
|
||||
def test_module_failure(self):
|
||||
job = self._run_job('module_failure')
|
||||
def test_module_exception(self):
|
||||
job = self._run_job('module_failure_exception')
|
||||
with self.jobLog(job):
|
||||
build = self.history[-1]
|
||||
self.assertEqual(build.result, 'FAILURE')
|
||||
|
@ -165,8 +165,33 @@ class TestZuulStream25(AnsibleZuulTestCase):
|
|||
text = self._get_job_output(build)
|
||||
self.assertLogLine(r'TASK \[Module failure\]', text)
|
||||
self.assertLogLine(
|
||||
r'controller \| MODULE FAILURE: This module is broken', text)
|
||||
r'controller \| MODULE FAILURE:', text)
|
||||
self.assertLogLine(
|
||||
r'controller \| Exception: This module is broken', text)
|
||||
|
||||
def test_module_no_result(self):
|
||||
job = self._run_job('module_failure_no_result')
|
||||
with self.jobLog(job):
|
||||
build = self.history[-1]
|
||||
self.assertEqual(build.result, 'FAILURE')
|
||||
|
||||
text = self._get_job_output(build)
|
||||
self.assertLogLine(r'TASK \[Module failure\]', text)
|
||||
|
||||
if self.ansible_version in ('2.5', '2.6'):
|
||||
regex = r'controller \| MODULE FAILURE: This module is broken'
|
||||
else:
|
||||
# Ansible starting with 2.7 emits a different error message
|
||||
# if a module exits without an exception or the ansible
|
||||
# supplied methods.
|
||||
regex = r'controller \| "msg": "New-style module did not ' \
|
||||
r'handle its own exit"'
|
||||
self.assertLogLine(regex, text)
|
||||
|
||||
|
||||
class TestZuulStream26(TestZuulStream25):
|
||||
ansible_version = '2.6'
|
||||
|
||||
|
||||
class TestZuulStream27(TestZuulStream25):
|
||||
ansible_version = '2.7'
|
||||
|
|
|
@ -2443,6 +2443,10 @@ class TestAnsible26(TestAnsible25):
|
|||
ansible_version = '2.6'
|
||||
|
||||
|
||||
class TestAnsible27(TestAnsible25):
|
||||
ansible_version = '2.7'
|
||||
|
||||
|
||||
class TestPrePlaybooks(AnsibleZuulTestCase):
|
||||
# A temporary class to hold new tests while others are disabled
|
||||
|
||||
|
@ -5309,4 +5313,5 @@ class TestAnsibleVersion(AnsibleZuulTestCase):
|
|||
dict(name='ansible-default', result='SUCCESS', changes='1,1'),
|
||||
dict(name='ansible-25', result='SUCCESS', changes='1,1'),
|
||||
dict(name='ansible-26', result='SUCCESS', changes='1,1'),
|
||||
dict(name='ansible-27', result='SUCCESS', changes='1,1'),
|
||||
], ordered=False)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../base/action/__init__.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/add_host.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/add_host.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aireos.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aireos.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aireos_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aireos_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aruba.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aruba.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aruba_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aruba_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/asa.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/asa.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/asa_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/asa_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/asa_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/asa_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/assemble.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/assemble.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aws_s3.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/aws_s3.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ce.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ce.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ce_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ce_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ce_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ce_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/copy.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/copy.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/dellos10_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/dellos10_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/dellos6_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/dellos6_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/dellos9_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/dellos9_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/eos_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/eos_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/eos_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/eos_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/fetch.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/fetch.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/fortios_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/fortios_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/include_vars.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/include_vars.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ios_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ios_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ios_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/ios_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/iosxr_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/iosxr_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/iosxr_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/iosxr_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/junos_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/junos_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/junos_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/junos_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_banner.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_banner.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_base.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_base.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_config.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_config.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_get.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_get.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_interface.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_interface.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_l2_interface.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_l2_interface.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_l3_interface.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_l3_interface.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_linkagg.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_linkagg.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_lldp.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_lldp.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_lldp_interface.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_lldp_interface.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_logging.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_logging.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_ping.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_ping.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_static_route.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_static_route.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_system.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_system.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_template.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_template.pyi
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_user.py
|
|
@ -0,0 +1 @@
|
|||
../../base/action/net_user.pyi
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue