Support Ansible 2.8
Ansible has released 2.8 and now zuul also supports it. We've had to update zuul_console to deal with new tasks stats, along with gather_facts also now being exposed directly to the job. Change-Id: Ifa4be7cf408b1f05b0f985fa0c9a5e3947858078 Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
parent
9f7c642ae1
commit
5b31159717
@ -45,6 +45,12 @@
|
||||
vars:
|
||||
zuul_ansible_version: 2.7
|
||||
|
||||
- job:
|
||||
name: zuul-stream-functional-2.8
|
||||
parent: zuul-stream-functional
|
||||
vars:
|
||||
zuul_ansible_version: 2.8
|
||||
|
||||
- job:
|
||||
name: zuul-tox-remote
|
||||
parent: tox
|
||||
@ -187,6 +193,7 @@
|
||||
- zuul-stream-functional-2.5
|
||||
- zuul-stream-functional-2.6
|
||||
- zuul-stream-functional-2.7
|
||||
- zuul-stream-functional-2.8
|
||||
- zuul-tox-remote
|
||||
- zuul-quick-start:
|
||||
dependencies: zuul-build-image
|
||||
@ -223,6 +230,7 @@
|
||||
- zuul-stream-functional-2.5
|
||||
- zuul-stream-functional-2.6
|
||||
- zuul-stream-functional-2.7
|
||||
- zuul-stream-functional-2.8
|
||||
- zuul-tox-remote
|
||||
- zuul-quick-start:
|
||||
dependencies: zuul-upload-image
|
||||
|
4
releasenotes/notes/ansible-2.8-7f3d630503c6192f.yaml
Normal file
4
releasenotes/notes/ansible-2.8-7f3d630503c6192f.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Zuul now supports ansible 2.8 for running jobs.
|
@ -60,6 +60,14 @@
|
||||
test_ansible_version_major: 2
|
||||
test_ansible_version_minor: 7
|
||||
|
||||
- job:
|
||||
name: ansible-28
|
||||
parent: ansible-version
|
||||
ansible-version: 2.8
|
||||
vars:
|
||||
test_ansible_version_major: 2
|
||||
test_ansible_version_minor: 8
|
||||
|
||||
|
||||
- project:
|
||||
name: common-config
|
||||
@ -69,6 +77,7 @@
|
||||
- ansible-25
|
||||
- ansible-26
|
||||
- ansible-27
|
||||
- ansible-28
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
@ -78,3 +87,4 @@
|
||||
- ansible-25
|
||||
- ansible-26
|
||||
- ansible-27
|
||||
- ansible-28
|
||||
|
@ -219,3 +219,7 @@ class TestActionModules26(TestActionModules25):
|
||||
|
||||
class TestActionModules27(TestActionModules25):
|
||||
ansible_version = '2.7'
|
||||
|
||||
|
||||
class TestActionModules28(TestActionModules25):
|
||||
ansible_version = '2.8'
|
||||
|
@ -150,3 +150,44 @@ class TestZuulJSON26(TestZuulJSON25):
|
||||
|
||||
class TestZuulJSON27(TestZuulJSON25):
|
||||
ansible_version = '2.7'
|
||||
|
||||
|
||||
class TestZuulJSON28(TestZuulJSON25):
|
||||
ansible_version = '2.8'
|
||||
|
||||
def test_json_task_action(self):
|
||||
job = self._run_job('no-log')
|
||||
with self.jobLog(job):
|
||||
build = self.history[-1]
|
||||
self.assertEqual(build.result, 'SUCCESS')
|
||||
|
||||
text = self._get_json_as_text(build)
|
||||
json_result = json.loads(text)
|
||||
tasks = json_result[0]['plays'][0]['tasks']
|
||||
# NOTE(pabelanger): In 2.8 gather_facts are now logged as an
|
||||
# expected action.
|
||||
expected_actions = [
|
||||
'gather_facts', 'debug', 'debug', 'debug', 'copy', 'find',
|
||||
'stat', 'debug'
|
||||
]
|
||||
for i, expected in enumerate(expected_actions):
|
||||
host_result = tasks[i]['hosts']['controller']
|
||||
self.assertEquals(expected, host_result['action'])
|
||||
|
||||
def test_json_role_log(self):
|
||||
job = self._run_job('json-role')
|
||||
with self.jobLog(job):
|
||||
build = self.history[-1]
|
||||
self.assertEqual(build.result, 'SUCCESS')
|
||||
|
||||
text = self._get_json_as_text(build)
|
||||
self.assertIn('json-role', text)
|
||||
|
||||
json_result = json.loads(text)
|
||||
# NOTE(pabelanger): In 2.8 gather_facts are now logged as the
|
||||
# first task.
|
||||
role_name = json_result[0]['plays'][0]['tasks'][1]['role']['name']
|
||||
self.assertEqual('json-role', role_name)
|
||||
|
||||
role_path = json_result[0]['plays'][0]['tasks'][1]['role']['path']
|
||||
self.assertEqual('json-role', os.path.basename(role_path))
|
||||
|
@ -192,3 +192,80 @@ class TestZuulStream26(TestZuulStream25):
|
||||
|
||||
class TestZuulStream27(TestZuulStream25):
|
||||
ansible_version = '2.7'
|
||||
|
||||
|
||||
class TestZuulStream28(TestZuulStream25):
|
||||
ansible_version = '2.8'
|
||||
|
||||
def test_command(self):
|
||||
job = self._run_job('command')
|
||||
with self.jobLog(job):
|
||||
build = self.history[-1]
|
||||
self.assertEqual(build.result, 'SUCCESS')
|
||||
|
||||
text = self._get_job_output(build)
|
||||
self.assertLogLine(
|
||||
r'RUN START: \[untrusted : review.example.com/org/project/'
|
||||
r'playbooks/command.yaml@master\]', text)
|
||||
self.assertLogLine(r'PLAY \[all\]', text)
|
||||
self.assertLogLine(
|
||||
r'Ansible version={}'.format(self.ansible_version), text)
|
||||
self.assertLogLine(r'TASK \[Show contents of first file\]', text)
|
||||
self.assertLogLine(r'controller \| command test one', text)
|
||||
self.assertLogLine(
|
||||
r'controller \| ok: Runtime: \d:\d\d:\d\d\.\d\d\d\d\d\d', text)
|
||||
self.assertLogLine(r'TASK \[Show contents of second file\]', text)
|
||||
self.assertLogLine(r'compute1 \| command test two', text)
|
||||
self.assertLogLine(r'controller \| command test two', text)
|
||||
self.assertLogLine(r'compute1 \| This is a rescue task', text)
|
||||
self.assertLogLine(r'controller \| This is a rescue task', text)
|
||||
self.assertLogLine(r'compute1 \| This is an always task', text)
|
||||
self.assertLogLine(r'controller \| This is an always task', text)
|
||||
self.assertLogLine(r'compute1 \| This is a handler', text)
|
||||
self.assertLogLine(r'controller \| This is a handler', text)
|
||||
self.assertLogLine(r'controller \| First free task', text)
|
||||
self.assertLogLine(r'controller \| Second free task', text)
|
||||
self.assertLogLine(r'controller \| This is a shell task after an '
|
||||
'included role', text)
|
||||
self.assertLogLine(r'compute1 \| This is a shell task after an '
|
||||
'included role', text)
|
||||
self.assertLogLine(r'controller \| This is a command task after '
|
||||
'an included role', text)
|
||||
self.assertLogLine(r'compute1 \| This is a command task after an '
|
||||
'included role', text)
|
||||
self.assertLogLine(r'controller \| This is a shell task with '
|
||||
'delegate compute1', text)
|
||||
self.assertLogLine(r'controller \| This is a shell task with '
|
||||
'delegate controller', text)
|
||||
self.assertLogLine(r'compute1 \| item_in_loop1', text)
|
||||
self.assertLogLine(r'compute1 \| ok: Item: item_in_loop1 '
|
||||
r'Runtime: \d:\d\d:\d\d\.\d\d\d\d\d\d', text)
|
||||
self.assertLogLine(r'compute1 \| item_in_loop2', text)
|
||||
self.assertLogLine(r'compute1 \| ok: Item: item_in_loop2 '
|
||||
r'Runtime: \d:\d\d:\d\d\.\d\d\d\d\d\d', text)
|
||||
self.assertLogLine(r'compute1 \| failed_in_loop1', text)
|
||||
self.assertLogLine(r'compute1 \| ok: Item: failed_in_loop1 '
|
||||
r'Result: 1', text)
|
||||
self.assertLogLine(r'compute1 \| failed_in_loop2', text)
|
||||
self.assertLogLine(r'compute1 \| ok: Item: failed_in_loop2 '
|
||||
r'Result: 1', text)
|
||||
self.assertLogLine(r'localhost \| .*No such file or directory: .*'
|
||||
r'\'/local-shelltask/somewhere/'
|
||||
r'that/does/not/exist\'', text)
|
||||
self.assertLogLine(r'compute1 \| .*No such file or directory: .*'
|
||||
r'\'/remote-shelltask/somewhere/'
|
||||
r'that/does/not/exist\'', text)
|
||||
self.assertLogLine(r'controller \| .*No such file or directory: .*'
|
||||
r'\'/remote-shelltask/somewhere/'
|
||||
r'that/does/not/exist\'', text)
|
||||
self.assertLogLine(
|
||||
r'controller \| ok: Runtime: \d:\d\d:\d\d\.\d\d\d\d\d\d', text)
|
||||
self.assertLogLine('PLAY RECAP', text)
|
||||
# NOTE(pabelanger): Ansible 2.8 added new stats
|
||||
# skipped, rescued, ignored.
|
||||
self.assertLogLine(
|
||||
r'controller \| ok: \d+ changed: \d+ unreachable: 0 failed: 0 '
|
||||
'skipped: 0 rescued: 1 ignored: 0', text)
|
||||
self.assertLogLine(
|
||||
r'RUN END RESULT_NORMAL: \[untrusted : review.example.com/'
|
||||
r'org/project/playbooks/command.yaml@master]', text)
|
||||
|
@ -2731,6 +2731,10 @@ class TestAnsible27(TestAnsible25):
|
||||
ansible_version = '2.7'
|
||||
|
||||
|
||||
class TestAnsible28(TestAnsible25):
|
||||
ansible_version = '2.8'
|
||||
|
||||
|
||||
class TestPrePlaybooks(AnsibleZuulTestCase):
|
||||
# A temporary class to hold new tests while others are disabled
|
||||
|
||||
@ -5767,6 +5771,7 @@ class TestAnsibleVersion(AnsibleZuulTestCase):
|
||||
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'),
|
||||
dict(name='ansible-28', result='SUCCESS', changes='1,1'),
|
||||
], ordered=False)
|
||||
|
||||
|
||||
@ -5788,6 +5793,7 @@ class TestDefaultAnsibleVersion(AnsibleZuulTestCase):
|
||||
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'),
|
||||
dict(name='ansible-28', result='SUCCESS', changes='1,1'),
|
||||
], ordered=False)
|
||||
|
||||
|
||||
|
1
zuul/ansible/2.8/action/__init__.py
Symbolic link
1
zuul/ansible/2.8/action/__init__.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/__init__.py
|
1
zuul/ansible/2.8/action/add_host.py
Symbolic link
1
zuul/ansible/2.8/action/add_host.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/add_host.py
|
1
zuul/ansible/2.8/action/add_host.pyi
Symbolic link
1
zuul/ansible/2.8/action/add_host.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/add_host.pyi
|
1
zuul/ansible/2.8/action/aireos.py
Symbolic link
1
zuul/ansible/2.8/action/aireos.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aireos.py
|
1
zuul/ansible/2.8/action/aireos.pyi
Symbolic link
1
zuul/ansible/2.8/action/aireos.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aireos.pyi
|
1
zuul/ansible/2.8/action/aireos_config.py
Symbolic link
1
zuul/ansible/2.8/action/aireos_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aireos_config.py
|
1
zuul/ansible/2.8/action/aireos_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/aireos_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aireos_config.pyi
|
1
zuul/ansible/2.8/action/aruba.py
Symbolic link
1
zuul/ansible/2.8/action/aruba.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aruba.py
|
1
zuul/ansible/2.8/action/aruba.pyi
Symbolic link
1
zuul/ansible/2.8/action/aruba.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aruba.pyi
|
1
zuul/ansible/2.8/action/aruba_config.py
Symbolic link
1
zuul/ansible/2.8/action/aruba_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aruba_config.py
|
1
zuul/ansible/2.8/action/aruba_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/aruba_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aruba_config.pyi
|
1
zuul/ansible/2.8/action/asa.py
Symbolic link
1
zuul/ansible/2.8/action/asa.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/asa.py
|
1
zuul/ansible/2.8/action/asa.pyi
Symbolic link
1
zuul/ansible/2.8/action/asa.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/asa.pyi
|
1
zuul/ansible/2.8/action/asa_config.py
Symbolic link
1
zuul/ansible/2.8/action/asa_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/asa_config.py
|
1
zuul/ansible/2.8/action/asa_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/asa_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/asa_config.pyi
|
1
zuul/ansible/2.8/action/asa_template.py
Symbolic link
1
zuul/ansible/2.8/action/asa_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/asa_template.py
|
1
zuul/ansible/2.8/action/asa_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/asa_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/asa_template.pyi
|
1
zuul/ansible/2.8/action/assemble.py
Symbolic link
1
zuul/ansible/2.8/action/assemble.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/assemble.py
|
1
zuul/ansible/2.8/action/assemble.pyi
Symbolic link
1
zuul/ansible/2.8/action/assemble.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/assemble.pyi
|
1
zuul/ansible/2.8/action/aws_s3.py
Symbolic link
1
zuul/ansible/2.8/action/aws_s3.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aws_s3.py
|
1
zuul/ansible/2.8/action/aws_s3.pyi
Symbolic link
1
zuul/ansible/2.8/action/aws_s3.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/aws_s3.pyi
|
1
zuul/ansible/2.8/action/ce.py
Symbolic link
1
zuul/ansible/2.8/action/ce.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ce.py
|
1
zuul/ansible/2.8/action/ce.pyi
Symbolic link
1
zuul/ansible/2.8/action/ce.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ce.pyi
|
1
zuul/ansible/2.8/action/ce_config.py
Symbolic link
1
zuul/ansible/2.8/action/ce_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ce_config.py
|
1
zuul/ansible/2.8/action/ce_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/ce_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ce_config.pyi
|
1
zuul/ansible/2.8/action/ce_template.py
Symbolic link
1
zuul/ansible/2.8/action/ce_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ce_template.py
|
1
zuul/ansible/2.8/action/ce_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/ce_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ce_template.pyi
|
1
zuul/ansible/2.8/action/copy.py
Symbolic link
1
zuul/ansible/2.8/action/copy.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/copy.py
|
1
zuul/ansible/2.8/action/copy.pyi
Symbolic link
1
zuul/ansible/2.8/action/copy.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/copy.pyi
|
1
zuul/ansible/2.8/action/dellos10_config.py
Symbolic link
1
zuul/ansible/2.8/action/dellos10_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/dellos10_config.py
|
1
zuul/ansible/2.8/action/dellos10_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/dellos10_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/dellos10_config.pyi
|
1
zuul/ansible/2.8/action/dellos6_config.py
Symbolic link
1
zuul/ansible/2.8/action/dellos6_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/dellos6_config.py
|
1
zuul/ansible/2.8/action/dellos6_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/dellos6_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/dellos6_config.pyi
|
1
zuul/ansible/2.8/action/dellos9_config.py
Symbolic link
1
zuul/ansible/2.8/action/dellos9_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/dellos9_config.py
|
1
zuul/ansible/2.8/action/dellos9_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/dellos9_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/dellos9_config.pyi
|
1
zuul/ansible/2.8/action/eos_config.py
Symbolic link
1
zuul/ansible/2.8/action/eos_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/eos_config.py
|
1
zuul/ansible/2.8/action/eos_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/eos_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/eos_config.pyi
|
1
zuul/ansible/2.8/action/eos_template.py
Symbolic link
1
zuul/ansible/2.8/action/eos_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/eos_template.py
|
1
zuul/ansible/2.8/action/eos_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/eos_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/eos_template.pyi
|
1
zuul/ansible/2.8/action/fetch.py
Symbolic link
1
zuul/ansible/2.8/action/fetch.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/fetch.py
|
1
zuul/ansible/2.8/action/fetch.pyi
Symbolic link
1
zuul/ansible/2.8/action/fetch.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/fetch.pyi
|
1
zuul/ansible/2.8/action/fortios_config.py
Symbolic link
1
zuul/ansible/2.8/action/fortios_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/fortios_config.py
|
1
zuul/ansible/2.8/action/fortios_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/fortios_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/fortios_config.pyi
|
1
zuul/ansible/2.8/action/include_vars.py
Symbolic link
1
zuul/ansible/2.8/action/include_vars.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/include_vars.py
|
1
zuul/ansible/2.8/action/include_vars.pyi
Symbolic link
1
zuul/ansible/2.8/action/include_vars.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/include_vars.pyi
|
1
zuul/ansible/2.8/action/ios_config.py
Symbolic link
1
zuul/ansible/2.8/action/ios_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ios_config.py
|
1
zuul/ansible/2.8/action/ios_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/ios_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ios_config.pyi
|
1
zuul/ansible/2.8/action/ios_template.py
Symbolic link
1
zuul/ansible/2.8/action/ios_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ios_template.py
|
1
zuul/ansible/2.8/action/ios_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/ios_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/ios_template.pyi
|
1
zuul/ansible/2.8/action/iosxr_config.py
Symbolic link
1
zuul/ansible/2.8/action/iosxr_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/iosxr_config.py
|
1
zuul/ansible/2.8/action/iosxr_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/iosxr_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/iosxr_config.pyi
|
1
zuul/ansible/2.8/action/iosxr_template.py
Symbolic link
1
zuul/ansible/2.8/action/iosxr_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/iosxr_template.py
|
1
zuul/ansible/2.8/action/iosxr_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/iosxr_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/iosxr_template.pyi
|
1
zuul/ansible/2.8/action/junos_config.py
Symbolic link
1
zuul/ansible/2.8/action/junos_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/junos_config.py
|
1
zuul/ansible/2.8/action/junos_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/junos_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/junos_config.pyi
|
1
zuul/ansible/2.8/action/junos_template.py
Symbolic link
1
zuul/ansible/2.8/action/junos_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/junos_template.py
|
1
zuul/ansible/2.8/action/junos_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/junos_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/junos_template.pyi
|
1
zuul/ansible/2.8/action/net_banner.py
Symbolic link
1
zuul/ansible/2.8/action/net_banner.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_banner.py
|
1
zuul/ansible/2.8/action/net_banner.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_banner.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_banner.pyi
|
1
zuul/ansible/2.8/action/net_base.py
Symbolic link
1
zuul/ansible/2.8/action/net_base.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_base.py
|
1
zuul/ansible/2.8/action/net_base.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_base.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_base.pyi
|
1
zuul/ansible/2.8/action/net_config.py
Symbolic link
1
zuul/ansible/2.8/action/net_config.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_config.py
|
1
zuul/ansible/2.8/action/net_config.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_config.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_config.pyi
|
1
zuul/ansible/2.8/action/net_get.py
Symbolic link
1
zuul/ansible/2.8/action/net_get.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_get.py
|
1
zuul/ansible/2.8/action/net_get.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_get.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_get.pyi
|
1
zuul/ansible/2.8/action/net_interface.py
Symbolic link
1
zuul/ansible/2.8/action/net_interface.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_interface.py
|
1
zuul/ansible/2.8/action/net_interface.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_interface.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_interface.pyi
|
1
zuul/ansible/2.8/action/net_l2_interface.py
Symbolic link
1
zuul/ansible/2.8/action/net_l2_interface.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_l2_interface.py
|
1
zuul/ansible/2.8/action/net_l2_interface.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_l2_interface.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_l2_interface.pyi
|
1
zuul/ansible/2.8/action/net_l3_interface.py
Symbolic link
1
zuul/ansible/2.8/action/net_l3_interface.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_l3_interface.py
|
1
zuul/ansible/2.8/action/net_l3_interface.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_l3_interface.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_l3_interface.pyi
|
1
zuul/ansible/2.8/action/net_linkagg.py
Symbolic link
1
zuul/ansible/2.8/action/net_linkagg.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_linkagg.py
|
1
zuul/ansible/2.8/action/net_linkagg.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_linkagg.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_linkagg.pyi
|
1
zuul/ansible/2.8/action/net_lldp.py
Symbolic link
1
zuul/ansible/2.8/action/net_lldp.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_lldp.py
|
1
zuul/ansible/2.8/action/net_lldp.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_lldp.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_lldp.pyi
|
1
zuul/ansible/2.8/action/net_lldp_interface.py
Symbolic link
1
zuul/ansible/2.8/action/net_lldp_interface.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_lldp_interface.py
|
1
zuul/ansible/2.8/action/net_lldp_interface.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_lldp_interface.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_lldp_interface.pyi
|
1
zuul/ansible/2.8/action/net_logging.py
Symbolic link
1
zuul/ansible/2.8/action/net_logging.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_logging.py
|
1
zuul/ansible/2.8/action/net_logging.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_logging.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_logging.pyi
|
1
zuul/ansible/2.8/action/net_ping.py
Symbolic link
1
zuul/ansible/2.8/action/net_ping.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_ping.py
|
1
zuul/ansible/2.8/action/net_ping.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_ping.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_ping.pyi
|
1
zuul/ansible/2.8/action/net_static_route.py
Symbolic link
1
zuul/ansible/2.8/action/net_static_route.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_static_route.py
|
1
zuul/ansible/2.8/action/net_static_route.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_static_route.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_static_route.pyi
|
1
zuul/ansible/2.8/action/net_system.py
Symbolic link
1
zuul/ansible/2.8/action/net_system.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_system.py
|
1
zuul/ansible/2.8/action/net_system.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_system.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_system.pyi
|
1
zuul/ansible/2.8/action/net_template.py
Symbolic link
1
zuul/ansible/2.8/action/net_template.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_template.py
|
1
zuul/ansible/2.8/action/net_template.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_template.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_template.pyi
|
1
zuul/ansible/2.8/action/net_user.py
Symbolic link
1
zuul/ansible/2.8/action/net_user.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_user.py
|
1
zuul/ansible/2.8/action/net_user.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_user.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_user.pyi
|
1
zuul/ansible/2.8/action/net_vlan.py
Symbolic link
1
zuul/ansible/2.8/action/net_vlan.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_vlan.py
|
1
zuul/ansible/2.8/action/net_vlan.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_vlan.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_vlan.pyi
|
1
zuul/ansible/2.8/action/net_vrf.py
Symbolic link
1
zuul/ansible/2.8/action/net_vrf.py
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_vrf.py
|
1
zuul/ansible/2.8/action/net_vrf.pyi
Symbolic link
1
zuul/ansible/2.8/action/net_vrf.pyi
Symbolic link
@ -0,0 +1 @@
|
||||
../../base/action/net_vrf.pyi
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user