diff --git a/releasenotes/notes/ansible-2.7-uri-module-3143c326474740ee.yaml b/releasenotes/notes/ansible-2.7-uri-module-3143c326474740ee.yaml new file mode 100644 index 0000000000..61aa77f8c4 --- /dev/null +++ b/releasenotes/notes/ansible-2.7-uri-module-3143c326474740ee.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + When using Ansible 2.7 the uri module crashed with a module failure. diff --git a/releasenotes/notes/ansible-default-version-4d4e622b0be39e12.yaml b/releasenotes/notes/ansible-default-version-4d4e622b0be39e12.yaml new file mode 100644 index 0000000000..3313e7e922 --- /dev/null +++ b/releasenotes/notes/ansible-default-version-4d4e622b0be39e12.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + The :attr:`scheduler.default_ansible_version` has been ignored. diff --git a/tests/fixtures/config/ansible-versions/git/common-config/zuul.yaml b/tests/fixtures/config/ansible-versions/git/common-config/zuul.yaml index 9732bba447..5707b4dfa6 100644 --- a/tests/fixtures/config/ansible-versions/git/common-config/zuul.yaml +++ b/tests/fixtures/config/ansible-versions/git/common-config/zuul.yaml @@ -27,6 +27,15 @@ test_ansible_version_major: 2 test_ansible_version_minor: 7 +# This job is used by a test case specifying a different ansible version in +# zuul.conf +- job: + name: ansible-default-zuul-conf + parent: ansible-version + vars: + test_ansible_version_major: 2 + test_ansible_version_minor: 6 + - job: name: ansible-25 parent: ansible-version @@ -60,3 +69,12 @@ - ansible-25 - ansible-26 - ansible-27 + +- project: + name: org/project + check: + jobs: + - ansible-default-zuul-conf + - ansible-25 + - ansible-26 + - ansible-27 diff --git a/tests/fixtures/config/ansible-versions/git/org_project/README b/tests/fixtures/config/ansible-versions/git/org_project/README new file mode 100644 index 0000000000..9daeafb986 --- /dev/null +++ b/tests/fixtures/config/ansible-versions/git/org_project/README @@ -0,0 +1 @@ +test diff --git a/tests/fixtures/config/ansible-versions/main.yaml b/tests/fixtures/config/ansible-versions/main.yaml index 9d01f542f9..208e274b13 100644 --- a/tests/fixtures/config/ansible-versions/main.yaml +++ b/tests/fixtures/config/ansible-versions/main.yaml @@ -4,3 +4,5 @@ gerrit: config-projects: - common-config + untrusted-projects: + - org/project diff --git a/tests/fixtures/zuul-default-ansible-version.conf b/tests/fixtures/zuul-default-ansible-version.conf new file mode 100644 index 0000000000..3a63ad8928 --- /dev/null +++ b/tests/fixtures/zuul-default-ansible-version.conf @@ -0,0 +1,36 @@ +[gearman] +server=127.0.0.1 + +[statsd] +# note, use 127.0.0.1 rather than localhost to avoid getting ipv6 +# see: https://github.com/jsocol/pystatsd/issues/61 +server=127.0.0.1 + +[scheduler] +tenant_config=main.yaml +relative_priority=true +default_ansible_version=2.6 + +[merger] +git_dir=/tmp/zuul-test/merger-git +git_user_email=zuul@example.com +git_user_name=zuul + +[executor] +git_dir=/tmp/zuul-test/executor-git + +[connection gerrit] +driver=gerrit +server=review.example.com +user=jenkins +sshkey=fake_id_rsa_path + +[connection smtp] +driver=smtp +server=localhost +port=25 +default_from=zuul@example.com +default_to=you@example.com + +[web] +static_cache_expiry=1200 diff --git a/tests/unit/test_v3.py b/tests/unit/test_v3.py index a0b7e678b2..61f0bedd08 100644 --- a/tests/unit/test_v3.py +++ b/tests/unit/test_v3.py @@ -5534,3 +5534,24 @@ class TestAnsibleVersion(AnsibleZuulTestCase): dict(name='ansible-26', result='SUCCESS', changes='1,1'), dict(name='ansible-27', result='SUCCESS', changes='1,1'), ], ordered=False) + + +class TestDefaultAnsibleVersion(AnsibleZuulTestCase): + config_file = 'zuul-default-ansible-version.conf' + tenant_config_file = 'config/ansible-versions/main.yaml' + + def test_ansible_versions(self): + """ + Tests that jobs run with the requested ansible version. + """ + A = self.fake_gerrit.addFakeChange('org/project', 'master', 'A') + self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1)) + self.waitUntilSettled() + + self.assertHistory([ + dict(name='ansible-default-zuul-conf', 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) diff --git a/zuul/scheduler.py b/zuul/scheduler.py index d62709e1dd..3db88c6941 100644 --- a/zuul/scheduler.py +++ b/zuul/scheduler.py @@ -326,7 +326,8 @@ class Scheduler(threading.Thread): default_ansible_version = get_default( self.config, 'scheduler', 'default_ansible_version', None) - self.ansible_manager = AnsibleManager(default_ansible_version) + self.ansible_manager = AnsibleManager( + default_version=default_ansible_version) def start(self): super(Scheduler, self).start() @@ -673,7 +674,8 @@ class Scheduler(threading.Thread): # changed. default_ansible_version = get_default( self.config, 'scheduler', 'default_ansible_version', None) - self.ansible_manager = AnsibleManager(default_ansible_version) + self.ansible_manager = AnsibleManager( + default_version=default_ansible_version) for connection in self.connections.connections.values(): self.log.debug("Clear branch cache for: %s" % connection)