ansible-playbook [core 2.12.6] config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.9/site-packages/ansible ansible collection location = /tmp/tmp40vowjjo executable location = /usr/bin/ansible-playbook python version = 3.9.13 (main, May 18 2022, 00:00:00) [GCC 11.3.1 20220421 (Red Hat 11.3.1-2)] jinja version = 2.11.3 libyaml = True Using /etc/ansible/ansible.cfg as config file Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'default', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. PLAYBOOK: _backup.yml ********************************************************** 1 plays in /tmp/tmp05ac0kav/tests/_backup.yml PLAY [all] ********************************************************************* META: ran handlers TASK [Get stats of system files] *********************************************** task path: /tmp/tmp05ac0kav/tests/_backup.yml:6 Wednesday 03 August 2022 16:21:23 +0000 (0:00:00.018) 0:00:00.018 ****** ok: [/cache/centos-9.qcow2.snap] => (item=/etc/resolv.conf) => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "ansible_loop_var": "item", "changed": false, "item": "/etc/resolv.conf", "stat": { "atime": 1659543681.7989354, "attr_flags": "", "attributes": [], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "fba82b5b78ea37322e584bf452f6f8e163f0869b", "ctime": 1659543681.7989354, "dev": 64513, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 4210438, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0644", "mtime": 1659542505.0, "nlink": 1, "path": "/etc/resolv.conf", "pw_name": "root", "readable": true, "rgrp": true, "roth": true, "rusr": true, "size": 90, "uid": 0, "version": "1127737535", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Check if system files exist] ********************************************* task path: /tmp/tmp05ac0kav/tests/_backup.yml:13 Wednesday 03 August 2022 16:21:23 +0000 (0:00:00.578) 0:00:00.597 ****** [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ item.stat.exists }} ok: [/cache/centos-9.qcow2.snap] => (item={'changed': False, 'stat': {'exists': True, 'path': '/etc/resolv.conf', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 90, 'inode': 4210438, 'dev': 64513, 'nlink': 1, 'atime': 1659543681.7989354, 'mtime': 1659542505.0, 'ctime': 1659543681.7989354, 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False, 'blocks': 8, 'block_size': 4096, 'device_type': 0, 'readable': True, 'writeable': True, 'executable': False, 'pw_name': 'root', 'gr_name': 'root', 'checksum': 'fba82b5b78ea37322e584bf452f6f8e163f0869b', 'mimetype': 'text/plain', 'charset': 'us-ascii', 'version': '1127737535', 'attributes': [], 'attr_flags': ''}, 'invocation': {'module_args': {'path': '/etc/resolv.conf', 'follow': False, 'get_md5': False, 'get_checksum': True, 'get_mime': True, 'get_attributes': True, 'checksum_algorithm': 'sha1'}}, 'ansible_facts': {'discovered_interpreter_python': '/usr/bin/python3'}, 'failed': False, 'item': '/etc/resolv.conf', 'ansible_loop_var': 'item'}) => { "ansible_facts": { "_existing_files": " /etc/resolv.conf" }, "ansible_loop_var": "item", "changed": false, "item": { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "ansible_loop_var": "item", "changed": false, "failed": false, "invocation": { "module_args": { "checksum_algorithm": "sha1", "follow": false, "get_attributes": true, "get_checksum": true, "get_md5": false, "get_mime": true, "path": "/etc/resolv.conf" } }, "item": "/etc/resolv.conf", "stat": { "atime": 1659543681.7989354, "attr_flags": "", "attributes": [], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "fba82b5b78ea37322e584bf452f6f8e163f0869b", "ctime": 1659543681.7989354, "dev": 64513, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 4210438, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0644", "mtime": 1659542505.0, "nlink": 1, "path": "/etc/resolv.conf", "pw_name": "root", "readable": true, "rgrp": true, "roth": true, "rusr": true, "size": 90, "uid": 0, "version": "1127737535", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } } TASK [Back up system files] **************************************************** task path: /tmp/tmp05ac0kav/tests/_backup.yml:19 Wednesday 03 August 2022 16:21:23 +0000 (0:00:00.036) 0:00:00.633 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "tar", "-cf", "/tmp/network.backup.tar", "--same-owner", "--same-permissions", "/etc/resolv.conf" ], "delta": "0:00:00.003612", "end": "2022-08-03 12:21:23.526565", "rc": 0, "start": "2022-08-03 12:21:23.522953" } STDERR: tar: Removing leading `/' from member names META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* /cache/centos-9.qcow2.snap : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 Wednesday 03 August 2022 16:21:24 +0000 (0:00:00.483) 0:00:01.117 ****** =============================================================================== Get stats of system files ----------------------------------------------- 0.58s /tmp/tmp05ac0kav/tests/_backup.yml:6 ------------------------------------------ Back up system files ---------------------------------------------------- 0.48s /tmp/tmp05ac0kav/tests/_backup.yml:19 ----------------------------------------- Check if system files exist --------------------------------------------- 0.04s /tmp/tmp05ac0kav/tests/_backup.yml:13 ----------------------------------------- PLAYBOOK: tests_unit.yml ******************************************************* 2 plays in /tmp/tmp05ac0kav/tests/tests_unit.yml PLAY [Setup for test running] ************************************************** TASK [Gathering Facts] ********************************************************* task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:3 Wednesday 03 August 2022 16:21:24 +0000 (0:00:00.018) 0:00:01.135 ****** ok: [/cache/centos-9.qcow2.snap] META: ran handlers TASK [include_tasks] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:6 Wednesday 03 August 2022 16:21:25 +0000 (0:00:01.103) 0:00:02.239 ****** included: /tmp/tmp05ac0kav/tests/tasks/el_repo_setup.yml for /cache/centos-9.qcow2.snap TASK [Fix CentOS6 Base repo] *************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/el_repo_setup.yml:2 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.027) 0:00:02.266 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [include_tasks] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/el_repo_setup.yml:27 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.023) 0:00:02.290 ****** included: /tmp/tmp05ac0kav/tests/tasks/enable_epel.yml for /cache/centos-9.qcow2.snap TASK [Create EPEL 9] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/enable_epel.yml:4 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.028) 0:00:02.318 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 7] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/enable_epel.yml:11 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.019) 0:00:02.338 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 8] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/enable_epel.yml:17 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.021) 0:00:02.360 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 6] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/enable_epel.yml:26 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.019) 0:00:02.379 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Install dependencies] **************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:8 Wednesday 03 August 2022 16:21:25 +0000 (0:00:00.020) 0:00:02.400 ****** ok: [/cache/centos-9.qcow2.snap] => (item=NetworkManager-libnm) => { "ansible_loop_var": "item", "changed": false, "item": "NetworkManager-libnm", "rc": 0, "results": [] } MSG: Nothing to do failed: [/cache/centos-9.qcow2.snap] (item=python2-gobject-base) => { "ansible_loop_var": "item", "changed": false, "failures": [ "No package python2-gobject-base available." ], "item": "python2-gobject-base", "rc": 1, "results": [] } MSG: Failed to install some of the specified packages ok: [/cache/centos-9.qcow2.snap] => (item=python3-gobject-base) => { "ansible_loop_var": "item", "changed": false, "item": "python3-gobject-base", "rc": 0, "results": [] } MSG: Nothing to do changed: [/cache/centos-9.qcow2.snap] => (item=python-gobject-base) => { "ansible_loop_var": "item", "changed": true, "item": "python-gobject-base", "rc": 0, "results": [ "Installed: python3-gobject-base-3.40.1-6.el9.x86_64", "Installed: python3-gobject-base-noarch-3.40.1-6.el9.noarch", "Removed: python3-gobject-base-3.40.1-5.el9.x86_64" ] } failed: [/cache/centos-9.qcow2.snap] (item=python2-mock) => { "ansible_loop_var": "item", "changed": false, "failures": [ "No package python2-mock available." ], "item": "python2-mock", "rc": 1, "results": [] } MSG: Failed to install some of the specified packages ...ignoring META: ran handlers META: ran handlers PLAY [execute python unit tests] *********************************************** TASK [Gathering Facts] ********************************************************* task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:21 Wednesday 03 August 2022 16:21:30 +0000 (0:00:05.106) 0:00:07.507 ****** ok: [/cache/centos-9.qcow2.snap] META: ran handlers TASK [create tempdir for code to test] ***************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:25 Wednesday 03 August 2022 16:21:31 +0000 (0:00:00.822) 0:00:08.330 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/tmp/lsrtest_zn1jqoyb", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } TASK [get tempfile for tar] **************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:31 Wednesday 03 August 2022 16:21:31 +0000 (0:00:00.500) 0:00:08.830 ****** changed: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": true, "gid": 0, "group": "root", "mode": "0600", "owner": "root", "path": "/tmp/lsrtest_bqfx5ssl.tar", "size": 0, "state": "file", "uid": 0 } TASK [include_tasks] *********************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:38 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.203) 0:00:09.034 ****** included: /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml for /cache/centos-9.qcow2.snap TASK [set collection paths] **************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:3 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.029) 0:00:09.063 ****** ok: [/cache/centos-9.qcow2.snap] => { "ansible_facts": { "collection_paths": [ "/tmp/tmp40vowjjo", "/tmp/tmp40vowjjo" ] }, "changed": false } TASK [set search paths] ******************************************************** task path: /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:13 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.047) 0:00:09.111 ****** ok: [/cache/centos-9.qcow2.snap] => { "ansible_facts": { "module_utils_search_path": [ "../../module_utils", "../module_utils", "/root/.ansible/plugins/module_utils", "/usr/share/ansible/plugins/module_utils" ], "modules_search_path": [ "../../library", "../library", "/root/.ansible/plugins/modules", "/usr/share/ansible/plugins/modules" ] }, "changed": false } TASK [find parent directory and path of modules] ******************************* task path: /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:42 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.053) 0:00:09.164 ****** ok: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": false, "cmd": "set -euxo pipefail\nfor dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules; do\n if [ -f \"$dir/network_connections.py\" ]; then\n readlink -f \"$(dirname \"$dir\")\"\n basename \"$dir\"\n exit 0\n fi\ndone\nfor dir in /tmp/tmp40vowjjo /tmp/tmp40vowjjo; do\n if [ ! -d \"$dir\" ]; then continue; fi\n cd \"$dir\"\n for subdir in ansible_collections/*/*/plugins/modules; do\n if [ -f \"$subdir/network_connections.py\" ]; then\n echo \"$dir\"\n echo \"$subdir\"\n exit 0\n fi\n done\ndone\necho network_connections.py not found\nexit 1\n", "delta": "0:00:00.008103", "end": "2022-08-03 16:21:32.414474", "rc": 0, "start": "2022-08-03 16:21:32.406371" } STDOUT: /tmp/tmp05ac0kav library STDERR: + for dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f ../../library/network_connections.py ']' + for dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f ../library/network_connections.py ']' ++ dirname ../library + readlink -f .. + basename ../library + exit 0 TASK [find parent directory and path of module_utils] ************************** task path: /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:69 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.235) 0:00:09.400 ****** ok: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": false, "cmd": "set -euxo pipefail\nfor dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils; do\n if [ -d \"$dir/network_lsr\" ]; then\n readlink -f \"$(dirname \"$dir\")\"\n basename \"$dir\"\n exit 0\n fi\ndone\nfor dir in /tmp/tmp40vowjjo /tmp/tmp40vowjjo; do\n if [ ! -d \"$dir\" ]; then continue; fi\n cd \"$dir\"\n for subdir in ansible_collections/*/*/plugins/module_utils; do\n if [ -d \"$subdir/network_lsr\" ]; then\n echo \"$dir\"\n echo \"$subdir\"\n exit 0\n fi\n done\ndone\necho network_lsr not found\nexit 1\n", "delta": "0:00:00.007938", "end": "2022-08-03 16:21:32.644465", "rc": 0, "start": "2022-08-03 16:21:32.636527" } STDOUT: /tmp/tmp05ac0kav module_utils STDERR: + for dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d ../../module_utils/network_lsr ']' + for dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d ../module_utils/network_lsr ']' ++ dirname ../module_utils + readlink -f .. + basename ../module_utils + exit 0 TASK [Create Tar file] ********************************************************* task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:44 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.228) 0:00:09.628 ****** changed: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": true, "cmd": [ "tar", "-cvf", "/tmp/lsrtest_bqfx5ssl.tar", "--exclude", "*.pyc", "--exclude", "__pycache__", "-C", "/tmp/tmp05ac0kav", "library", "-C", "/tmp/tmp05ac0kav", "module_utils" ], "delta": "0:00:00.005295", "end": "2022-08-03 16:21:32.862260", "rc": 0, "start": "2022-08-03 16:21:32.856965" } STDOUT: library/ library/__init__.py library/network_connections.py library/network_state.py module_utils/ module_utils/network_lsr/ module_utils/network_lsr/__init__.py module_utils/network_lsr/argument_validator.py module_utils/network_lsr/ethtool.py module_utils/network_lsr/myerror.py module_utils/network_lsr/nm/ module_utils/network_lsr/nm/__init__.py module_utils/network_lsr/nm/active_connection.py module_utils/network_lsr/nm/client.py module_utils/network_lsr/nm/connection.py module_utils/network_lsr/nm/error.py module_utils/network_lsr/nm/provider.py module_utils/network_lsr/nm_provider.py module_utils/network_lsr/utils.py TASK [Copy testrepo.tar to the remote system] ********************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:54 Wednesday 03 August 2022 16:21:32 +0000 (0:00:00.212) 0:00:09.841 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "checksum": "76983a3c72401f92298f50799a333d5ca995ca45", "dest": "/tmp/lsrtest_zn1jqoyb/lsrtest_bqfx5ssl.tar", "gid": 0, "group": "root", "md5sum": "6f49eb926130759a7eed1e2962911eca", "mode": "0600", "owner": "root", "secontext": "unconfined_u:object_r:admin_home_t:s0", "size": 256000, "src": "/root/.ansible/tmp/ansible-tmp-1659543692.9493246-92859-188192850875095/source", "state": "file", "uid": 0 } TASK [Untar testrepo.tar] ****************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:60 Wednesday 03 August 2022 16:21:33 +0000 (0:00:01.043) 0:00:10.884 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "tar", "-xvf", "lsrtest_bqfx5ssl.tar" ], "delta": "0:00:00.004414", "end": "2022-08-03 12:21:33.674032", "rc": 0, "start": "2022-08-03 12:21:33.669618" } STDOUT: library/ library/__init__.py library/network_connections.py library/network_state.py module_utils/ module_utils/network_lsr/ module_utils/network_lsr/__init__.py module_utils/network_lsr/argument_validator.py module_utils/network_lsr/ethtool.py module_utils/network_lsr/myerror.py module_utils/network_lsr/nm/ module_utils/network_lsr/nm/__init__.py module_utils/network_lsr/nm/active_connection.py module_utils/network_lsr/nm/client.py module_utils/network_lsr/nm/connection.py module_utils/network_lsr/nm/error.py module_utils/network_lsr/nm/provider.py module_utils/network_lsr/nm_provider.py module_utils/network_lsr/utils.py TASK [Create /tmp/lsrtest_zn1jqoyb/ansible/module_utils] *********************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:65 Wednesday 03 August 2022 16:21:34 +0000 (0:00:00.374) 0:00:11.259 ****** changed: [/cache/centos-9.qcow2.snap] => (item=/tmp/lsrtest_zn1jqoyb/ansible) => { "ansible_loop_var": "item", "changed": true, "gid": 0, "group": "root", "item": "/tmp/lsrtest_zn1jqoyb/ansible", "mode": "0755", "owner": "root", "path": "/tmp/lsrtest_zn1jqoyb/ansible", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } changed: [/cache/centos-9.qcow2.snap] => (item=/tmp/lsrtest_zn1jqoyb/ansible/module_utils) => { "ansible_loop_var": "item", "changed": true, "gid": 0, "group": "root", "item": "/tmp/lsrtest_zn1jqoyb/ansible/module_utils", "mode": "0755", "owner": "root", "path": "/tmp/lsrtest_zn1jqoyb/ansible/module_utils", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } TASK [Move module_utils to ansible directory] ********************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:74 Wednesday 03 August 2022 16:21:35 +0000 (0:00:00.850) 0:00:12.109 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": "if [ -d /tmp/lsrtest_zn1jqoyb/module_utils ]; then\n mv /tmp/lsrtest_zn1jqoyb/module_utils /tmp/lsrtest_zn1jqoyb/ansible\nfi\n", "delta": "0:00:00.005771", "end": "2022-08-03 12:21:34.904554", "rc": 0, "start": "2022-08-03 12:21:34.898783" } TASK [Fake out python module directories, primarily for python2] *************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:80 Wednesday 03 August 2022 16:21:35 +0000 (0:00:00.373) 0:00:12.483 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": "for dir in $(find /tmp/lsrtest_zn1jqoyb -type d -print); do\n if [ ! -f \"$dir/__init__.py\" ]; then\n touch \"$dir/__init__.py\"\n fi\ndone\n", "delta": "0:00:00.007645", "end": "2022-08-03 12:21:35.258115", "rc": 0, "start": "2022-08-03 12:21:35.250470" } TASK [Copy unit test to remote system] ***************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:88 Wednesday 03 August 2022 16:21:35 +0000 (0:00:00.355) 0:00:12.839 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "checksum": "24cd18a43f41e2401686623ab6f6bd9aa826a6c6", "dest": "/tmp/lsrtest_zn1jqoyb/test_network_connections.py", "gid": 0, "group": "root", "md5sum": "d6ec79ab07e96a6b7e58442a6e4de723", "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:admin_home_t:s0", "size": 188004, "src": "/root/.ansible/tmp/ansible-tmp-1659543695.9469297-92971-204693742625186/source", "state": "file", "uid": 0 } TASK [Set _lsr_python_path] **************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:94 Wednesday 03 August 2022 16:21:36 +0000 (0:00:00.869) 0:00:13.709 ****** ok: [/cache/centos-9.qcow2.snap] => { "ansible_facts": { "_lsr_python_path": "/tmp/lsrtest_zn1jqoyb/library:/tmp/lsrtest_zn1jqoyb/ansible/module_utils:/tmp/lsrtest_zn1jqoyb/module_utils:/tmp/lsrtest_zn1jqoyb" }, "changed": false } TASK [ls -alrtFR /tmp/lsrtest_zn1jqoyb] **************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:106 Wednesday 03 August 2022 16:21:36 +0000 (0:00:00.032) 0:00:13.742 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "ls", "-alrtFR", "/tmp/lsrtest_zn1jqoyb" ], "delta": "0:00:01.005985", "end": "2022-08-03 12:21:37.538924", "rc": 0, "start": "2022-08-03 12:21:36.532939" } STDOUT: /tmp/lsrtest_zn1jqoyb: total 440 drwxr-xr-x. 2 root root 79 Aug 3 11:56 library/ -rw-------. 1 root root 256000 Aug 3 12:21 lsrtest_bqfx5ssl.tar -rw-r--r--. 1 root root 0 Aug 3 12:21 __init__.py drwxr-xr-x. 3 root root 45 Aug 3 12:21 ansible/ -rw-r--r--. 1 root root 188004 Aug 3 12:21 test_network_connections.py drwx------. 4 root root 118 Aug 3 12:21 ./ drwxrwxrwt. 13 root root 4096 Aug 3 12:21 ../ /tmp/lsrtest_zn1jqoyb/library: total 104 -rw-r--r--. 1 root root 2211 Aug 3 11:56 network_state.py -rw-r--r--. 1 root root 101576 Aug 3 11:56 network_connections.py -rw-r--r--. 1 root root 0 Aug 3 11:56 __init__.py drwxr-xr-x. 2 root root 79 Aug 3 11:56 ./ drwx------. 4 root root 118 Aug 3 12:21 ../ /tmp/lsrtest_zn1jqoyb/ansible: total 0 -rw-r--r--. 1 root root 0 Aug 3 12:21 __init__.py drwxr-xr-x. 3 root root 45 Aug 3 12:21 ./ drwxr-xr-x. 3 root root 44 Aug 3 12:21 module_utils/ drwx------. 4 root root 118 Aug 3 12:21 ../ /tmp/lsrtest_zn1jqoyb/ansible/module_utils: total 0 drwxr-xr-x. 3 root root 138 Aug 3 11:56 network_lsr/ drwxr-xr-x. 3 root root 45 Aug 3 12:21 ../ -rw-r--r--. 1 root root 0 Aug 3 12:21 __init__.py drwxr-xr-x. 3 root root 44 Aug 3 12:21 ./ /tmp/lsrtest_zn1jqoyb/ansible/module_utils/network_lsr: total 128 -rw-r--r--. 1 root root 11351 Aug 3 11:56 utils.py -rw-r--r--. 1 root root 1594 Aug 3 11:56 nm_provider.py drwxr-xr-x. 2 root root 126 Aug 3 11:56 nm/ -rw-r--r--. 1 root root 190 Aug 3 11:56 myerror.py -rw-r--r--. 1 root root 0 Aug 3 11:56 __init__.py -rw-r--r--. 1 root root 1706 Aug 3 11:56 ethtool.py -rw-r--r--. 1 root root 105942 Aug 3 11:56 argument_validator.py drwxr-xr-x. 3 root root 138 Aug 3 11:56 ./ drwxr-xr-x. 3 root root 44 Aug 3 12:21 ../ /tmp/lsrtest_zn1jqoyb/ansible/module_utils/network_lsr/nm: total 24 -rw-r--r--. 1 root root 3154 Aug 3 11:56 provider.py -rw-r--r--. 1 root root 343 Aug 3 11:56 __init__.py -rw-r--r--. 1 root root 175 Aug 3 11:56 error.py -rw-r--r--. 1 root root 3546 Aug 3 11:56 connection.py -rw-r--r--. 1 root root 2834 Aug 3 11:56 client.py -rw-r--r--. 1 root root 4012 Aug 3 11:56 active_connection.py drwxr-xr-x. 3 root root 138 Aug 3 11:56 ../ drwxr-xr-x. 2 root root 126 Aug 3 11:56 ./ TASK [debug] ******************************************************************* task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:108 Wednesday 03 August 2022 16:21:38 +0000 (0:00:01.380) 0:00:15.122 ****** ok: [/cache/centos-9.qcow2.snap] => {} MSG: path /tmp/lsrtest_zn1jqoyb/library:/tmp/lsrtest_zn1jqoyb/ansible/module_utils:/tmp/lsrtest_zn1jqoyb/module_utils:/tmp/lsrtest_zn1jqoyb TASK [Check if python2 is available] ******************************************* task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:111 Wednesday 03 August 2022 16:21:38 +0000 (0:00:00.031) 0:00:15.153 ****** fatal: [/cache/centos-9.qcow2.snap]: FAILED! => { "changed": false, "cmd": "python2 --version", "rc": 2 } MSG: [Errno 2] No such file or directory: b'python2' ...ignoring TASK [Run python2 unit tests] ************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:117 Wednesday 03 August 2022 16:21:38 +0000 (0:00:00.354) 0:00:15.508 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Check if python3 is available] ******************************************* task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:126 Wednesday 03 August 2022 16:21:38 +0000 (0:00:00.025) 0:00:15.533 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "python3", "--version" ], "delta": "0:00:00.003522", "end": "2022-08-03 12:21:38.320889", "rc": 0, "start": "2022-08-03 12:21:38.317367" } STDOUT: Python 3.9.10 TASK [Run python3 unit tests] ************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:132 Wednesday 03 August 2022 16:21:38 +0000 (0:00:00.373) 0:00:15.907 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "python3", "/tmp/lsrtest_zn1jqoyb/test_network_connections.py", "--verbose" ], "delta": "0:00:00.264002", "end": "2022-08-03 12:21:38.969496", "rc": 0, "start": "2022-08-03 12:21:38.705494" } STDERR: test_connection_ensure_setting (__main__.TestNM) ... ok test_connection_list (__main__.TestNM) ... ok test_path_to_glib_bytes (__main__.TestNM) ... ok test_link_read_permaddress (__main__.TestSysUtils) ... ok test_convert_passwd_flags_nm (__main__.TestUtils) ... ok test_mac_ntoa (__main__.TestUtils) ... ok test_802_1x_1 (__main__.TestValidator) Test private key with password ... ok test_802_1x_2 (__main__.TestValidator) Test 802.1x profile with unencrypted private key, ... ok test_802_1x_3 (__main__.TestValidator) Test 802.1x profile with unencrypted private key and ca_path ... ok test_802_1x_ca_path_and_system_ca_certs (__main__.TestValidator) should fail if ca_path and system_ca_certs are used together ... ok test_802_1x_initscripts (__main__.TestValidator) should fail to create ieee802_1x connection with initscripts ... ok test_802_1x_unsupported_type (__main__.TestValidator) should fail if a non ethernet/wireless connection has 802.1x settings defined ... ok test_absent (__main__.TestValidator) ... ok test_auto6_enabled_ipv6_disabled (__main__.TestValidator) Test that enabling `auto6` and disabling IPv6 are mutually exclusive. ... ok test_auto_gateway_false (__main__.TestValidator) ... ok test_auto_gateway_no_gateway (__main__.TestValidator) ... ok test_auto_gateway_true (__main__.TestValidator) ... ok test_bond (__main__.TestValidator) ... ok test_bond_active_backup (__main__.TestValidator) ... ok test_bridge2 (__main__.TestValidator) ... ok test_bridge_no_dhcp4_auto6 (__main__.TestValidator) ... ok test_default_states (__main__.TestValidator) ... ok test_default_states_type (__main__.TestValidator) ... ok test_deprecated_ethtool_names (__main__.TestValidator) Test that for each validator in ... ok test_dns_options_argvalidator (__main__.TestValidator) Test that argvalidator for validating dns_options value is correctly defined. ... ok test_dns_search_without_ipv4_and_ipv6_configuration (__main__.TestValidator) Test that configuring DNS search setting is not allowed when both IPv4 and ... ok test_empty (__main__.TestValidator) ... ok test_ethernet_mac_address (__main__.TestValidator) ... ok test_ethernet_speed_settings (__main__.TestValidator) ... ok test_ethernet_two_defaults (__main__.TestValidator) ... ok test_full_state_absent_defaults (__main__.TestValidator) ... ok test_full_state_absent_no_type (__main__.TestValidator) ... ok test_full_state_present_no_type (__main__.TestValidator) ... ok test_full_state_present_type_defaults (__main__.TestValidator) ... ok test_gateway6_configured_ipv6_disabled (__main__.TestValidator) Test that configuring `gateway6` and disabling IPv6 are mutually exclusive. ... ok test_infiniband (__main__.TestValidator) ... ok test_infiniband2 (__main__.TestValidator) ... ok test_infiniband3 (__main__.TestValidator) ... ok test_interface_name_bond_empty_interface_name (__main__.TestValidator) ... ok test_interface_name_bond_profile_as_interface_name (__main__.TestValidator) ... ok test_interface_name_ethernet_None (__main__.TestValidator) Check that interface_name cannot be None ... ok test_interface_name_ethernet_default (__main__.TestValidator) Use the profile name as interface_name for ethernet profiles ... ok test_interface_name_ethernet_empty (__main__.TestValidator) Allow not to restrict the profile to an interface ... ok test_interface_name_ethernet_explicit (__main__.TestValidator) Use the explicitly provided interface name ... ok test_interface_name_ethernet_invalid_interface_name (__main__.TestValidator) ... ok test_interface_name_ethernet_invalid_profile (__main__.TestValidator) Require explicit interface_name when the profile name is not a ... ok test_interface_name_ethernet_mac (__main__.TestValidator) Do not set interface_name when mac is specified ... ok test_invalid_autoconnect (__main__.TestValidator) ... ok test_invalid_cert_path (__main__.TestValidator) should fail if a relative path is used for 802.1x certs/keys ... ok test_invalid_ethtool_settings (__main__.TestValidator) When both the deprecated and current version of a feature are stated, ... ok test_invalid_mac (__main__.TestValidator) ... ok test_invalid_password_flag (__main__.TestValidator) should fail if an invalid private key password flag is set ... ok test_invalid_persistent_state_down (__main__.TestValidator) ... ok test_invalid_persistent_state_up (__main__.TestValidator) ... ok test_invalid_state_test (__main__.TestValidator) ... ok test_invalid_values (__main__.TestValidator) ... ok test_ipv4_dns_without_ipv4_config (__main__.TestValidator) Test that configuring IPv4 DNS is not allowed when IPv4 is disabled. ... ok test_ipv6_dns_options_without_ipv6_config (__main__.TestValidator) Test that configuring IPv6 DNS options is not allowed when IPv6 is disabled. ... ok test_ipv6_dns_with_ipv6_disabled (__main__.TestValidator) Test that configuring IPv6 DNS is not allowed when IPv6 is disabled. ... ok test_ipv6_dns_with_static_ipv6_configuration (__main__.TestValidator) Test that configuring IPv6 DNS is allowed when static IPv6 is configured. ... ok test_ipv6_dns_without_ipv6_configuration (__main__.TestValidator) Test that configuring IPv6 DNS is not allowed when IPv6 is not configured. ... ok test_ipv6_static (__main__.TestValidator) ... ok test_macvlan (__main__.TestValidator) ... ok test_persistent_state_absent (__main__.TestValidator) ... ok test_persistent_state_present (__main__.TestValidator) ... ok test_route_metric6_configured_ipv6_disabled (__main__.TestValidator) Test that configuring `route_metric6` and disabling IPv6 are mutually ... ok test_route_metric_prefix (__main__.TestValidator) ... ok test_route_v6 (__main__.TestValidator) ... ok test_routes (__main__.TestValidator) ... ok test_set_deprecated_ethtool_feature (__main__.TestValidator) When passing a deprecated name, their current version is updated. ... ok test_set_deprecated_master (__main__.TestValidator) When passing the deprecated "master" it is updated to "controller". ... ok test_set_deprecated_slave_type (__main__.TestValidator) When passing the deprecated "slave_type" it is updated to "port_type". ... ok test_set_ethtool_feature (__main__.TestValidator) When passing the name of an non-deprecated ethtool feature, their ... ok test_state_absent (__main__.TestValidator) ... ok test_state_absent_down (__main__.TestValidator) ... ok test_state_absent_up_no_type (__main__.TestValidator) ... ok test_state_absent_up_type (__main__.TestValidator) ... ok test_state_down_no_type (__main__.TestValidator) ... ok test_state_present (__main__.TestValidator) ... ok test_state_present_down (__main__.TestValidator) ... ok test_state_present_up (__main__.TestValidator) ... ok test_state_up_no_type (__main__.TestValidator) ... ok test_state_up_type (__main__.TestValidator) ... ok test_static_ipv6_configured_ipv6_disabled (__main__.TestValidator) Test that configuring static IPv6 and disabling IPv6 are mutually exclusive. ... ok test_up_ethernet (__main__.TestValidator) ... ok test_up_ethernet_mac_mtu_static_ip (__main__.TestValidator) ... ok test_up_ethernet_no_autoconnect (__main__.TestValidator) ... ok test_up_single_v4_dns (__main__.TestValidator) ... ok test_valid_persistent_state (__main__.TestValidator) Test that when persistent_state is present and state is set to present ... ok test_validate_allow_empty_string_in_list (__main__.TestValidator) Test that when ArgValidatorStr.allow_empty is True, empty string is allowed in ... ok test_validate_bool (__main__.TestValidator) ... ok test_validate_dict (__main__.TestValidator) ... ok test_validate_disallow_none_in_list (__main__.TestValidator) Test that None is not allowed in ArgValidatorList ... ok test_validate_int (__main__.TestValidator) ... ok test_validate_list (__main__.TestValidator) ... ok test_validate_list_remove_none_or_empty (__main__.TestValidator) Test that when ArgValidatorStr.remove_none_or_empty is True, None or empty ... ok test_validate_range (__main__.TestValidator) ... ok test_validate_str (__main__.TestValidator) ... ok test_vlan (__main__.TestValidator) ... ok test_wireless_eap (__main__.TestValidator) Test wireless connection with wpa-eap ... ok test_wireless_initscripts (__main__.TestValidator) should fail to create wireless connection with initscripts ... ok test_wireless_no_802_1x_for_wpa_eap (__main__.TestValidator) should fail if no 802.1x parameters are defined for a wireless ... ok test_wireless_no_options_defined (__main__.TestValidator) should fail if a connection of type='wireless' does not ... ok test_wireless_no_password (__main__.TestValidator) should fail if wpa-psk is selected and no password provided ... ok test_wireless_password_too_long (__main__.TestValidator) should fail if wpa-psk is selected and no password provided ... ok test_wireless_psk (__main__.TestValidator) Test wireless connection with wpa-psk auth ... ok test_wireless_ssid_too_long (__main__.TestValidator) should fail if ssid longer than 32 bytes ... ok test_wireless_unsupported_type (__main__.TestValidator) should fail if a non wireless connection has wireless settings defined ... ok test_invalid_bond_option_ad (__main__.TestValidatorDictBond) Test the ad bond option restrictions ... ok test_invalid_bond_option_arp (__main__.TestValidatorDictBond) Test the arp bond option restrictions ... ok test_invalid_bond_option_downdelay_updelay (__main__.TestValidatorDictBond) Test the downdelay or updelay bond option restrictions ... ok test_invalid_bond_option_infiniband_port (__main__.TestValidatorDictBond) Test that bond only supports infiniband ports in active-backup mode ... ok test_invalid_bond_option_packets_per_port (__main__.TestValidatorDictBond) Test the packets_per_port bond option restrictions ... ok test_invalid_bond_option_peer_arp_ip_target_arp_interval (__main__.TestValidatorDictBond) Test the arp_ip_target or arp_interval bond option restrictions ... ok test_invalid_bond_option_peer_notif_delay (__main__.TestValidatorDictBond) Test the peer_notif_delay bond option restrictions ... ok test_invalid_bond_option_primary (__main__.TestValidatorDictBond) Test the primary bond option restrictions ... ok test_invalid_bond_option_tlb_dynamic_lb (__main__.TestValidatorDictBond) Test the tlb_dynamic_lb bond option restrictions ... ok test_invalid_pkey_values (__main__.TestValidatorDictInfiniband) ... ok test_interface_name_and_match_when_match_is_None (__main__.TestValidatorMatch) Test that when 'match' setting is None, interface name should be profile name ... ok test_interface_name_when_match_not_specified (__main__.TestValidatorMatch) Test that when 'match' setting is not specified, interface name should be ... ok test_interface_name_when_match_path_is_empty_list (__main__.TestValidatorMatch) Test that when 'match.path' setting is empty list, interface name should be ... ok test_interface_name_when_match_path_is_valid (__main__.TestValidatorMatch) Test that when 'match.path' setting contains interface path, interface name ... ok test_match_path_empty_list (__main__.TestValidatorMatch) Test that 'match.path' setting can be defined as None, [], [""], [None] or "" ... ok test_match_path_invalid_connection_type (__main__.TestValidatorMatch) Test that when 'match.path' setting is correctly defined but the connection ... ok test_match_path_invalid_setting (__main__.TestValidatorMatch) Test that values like ["&"] and ["|"] are invalid values for 'match.path' ... ok test_match_path_setting_normalization (__main__.TestValidatorMatch) Test that 'match.path' setting ["", "usb123", None] will be normalized into ... ok test_match_path_valid_setting (__main__.TestValidatorMatch) Test that values like ["pci-0000:00:03.0"] and ["&!pci-0000:00:0[1-3].0"] are ... ok test_empty_route_table_name (__main__.TestValidatorRouteTable) Test that empty string is invalid value for route table name ... ok test_invalid_numeric_route_tables (__main__.TestValidatorRouteTable) Test that the value less than 1 or greater than 4294967295 are the invalid ... ok test_invalid_route_table_names (__main__.TestValidatorRouteTable) Test that the route table names should not be composed from the characters ... ok test_invalid_value_types_for_route_tables (__main__.TestValidatorRouteTable) Test that the value types apart from string type and integer type are all ... ok test_parse_rt_tables (__main__.TestValidatorRouteTable) Test that the `IPRouteUtils._parse_route_tables_mapping()` will create the ... ok test_table_found_when_validate_route_tables (__main__.TestValidatorRouteTable) Test that the `validate_route_tables()` will find the table id mapping from ... ok test_table_not_found_when_validate_route_tables (__main__.TestValidatorRouteTable) Test that the validation error is raised when the `validate_route_tables()` cannot ... ok test_valid_numeric_route_tables (__main__.TestValidatorRouteTable) Test that the value between 1 and 4294967295 are the valid value for numeric ... ok test_routing_rule_invalid_from_prefix_length (__main__.TestValidatorRoutingRules) Test that the prefix length for from/src cannot be zero when from/src is ... ok test_routing_rule_invalid_incoming_interface_name (__main__.TestValidatorRoutingRules) Test the invalid incoming interface name specified in the routing rule ... ok test_routing_rule_invalid_outgoing_interface_name (__main__.TestValidatorRoutingRules) Test the invalid outgoing interface name specified in the routing rule ... ok test_routing_rule_invalid_to_prefix_length (__main__.TestValidatorRoutingRules) Test that the prefix length for to/dst cannot be zero when to/dst is specified ... ok test_routing_rule_missing_address_family (__main__.TestValidatorRoutingRules) Test that the address family has to be specified if cannot be derived from src ... ok test_routing_rule_missing_table (__main__.TestValidatorRoutingRules) Test that table has to be defined when the action of the routing rule is ... ok test_routing_rule_validate_address_family (__main__.TestValidatorRoutingRules) Test that the derived address family and the specified address family should be ... ok test_routing_rule_validate_fwmark (__main__.TestValidatorRoutingRules) Test that fwmark requires fwmask to be specified ... ok test_routing_rule_validate_fwmask (__main__.TestValidatorRoutingRules) Test that fwmask requires fwmark to be specified ... ok test_routing_rule_validate_suppress_prefixlength (__main__.TestValidatorRoutingRules) Test the invalid suppress_prefixlength setting ... ok test_routing_rule_validate_uid (__main__.TestValidatorRoutingRules) Test the invalid uid specified in the routing rule ... ok ---------------------------------------------------------------------- Ran 146 tests in 0.073s OK TASK [Show python2 unit test results] ****************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:140 Wednesday 03 August 2022 16:21:39 +0000 (0:00:00.649) 0:00:16.557 ****** ok: [/cache/centos-9.qcow2.snap] => { "python2_result.stderr_lines": "VARIABLE IS NOT DEFINED!: 'dict object' has no attribute 'stderr_lines'" } TASK [Show python3 unit test results] ****************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:145 Wednesday 03 August 2022 16:21:39 +0000 (0:00:00.037) 0:00:16.595 ****** ok: [/cache/centos-9.qcow2.snap] => { "python3_result.stderr_lines": [ "test_connection_ensure_setting (__main__.TestNM) ... ok", "test_connection_list (__main__.TestNM) ... ok", "test_path_to_glib_bytes (__main__.TestNM) ... ok", "test_link_read_permaddress (__main__.TestSysUtils) ... ok", "test_convert_passwd_flags_nm (__main__.TestUtils) ... ok", "test_mac_ntoa (__main__.TestUtils) ... ok", "test_802_1x_1 (__main__.TestValidator)", "Test private key with password ... ok", "test_802_1x_2 (__main__.TestValidator)", "Test 802.1x profile with unencrypted private key, ... ok", "test_802_1x_3 (__main__.TestValidator)", "Test 802.1x profile with unencrypted private key and ca_path ... ok", "test_802_1x_ca_path_and_system_ca_certs (__main__.TestValidator)", "should fail if ca_path and system_ca_certs are used together ... ok", "test_802_1x_initscripts (__main__.TestValidator)", "should fail to create ieee802_1x connection with initscripts ... ok", "test_802_1x_unsupported_type (__main__.TestValidator)", "should fail if a non ethernet/wireless connection has 802.1x settings defined ... ok", "test_absent (__main__.TestValidator) ... ok", "test_auto6_enabled_ipv6_disabled (__main__.TestValidator)", "Test that enabling `auto6` and disabling IPv6 are mutually exclusive. ... ok", "test_auto_gateway_false (__main__.TestValidator) ... ok", "test_auto_gateway_no_gateway (__main__.TestValidator) ... ok", "test_auto_gateway_true (__main__.TestValidator) ... ok", "test_bond (__main__.TestValidator) ... ok", "test_bond_active_backup (__main__.TestValidator) ... ok", "test_bridge2 (__main__.TestValidator) ... ok", "test_bridge_no_dhcp4_auto6 (__main__.TestValidator) ... ok", "test_default_states (__main__.TestValidator) ... ok", "test_default_states_type (__main__.TestValidator) ... ok", "test_deprecated_ethtool_names (__main__.TestValidator)", "Test that for each validator in ... ok", "test_dns_options_argvalidator (__main__.TestValidator)", "Test that argvalidator for validating dns_options value is correctly defined. ... ok", "test_dns_search_without_ipv4_and_ipv6_configuration (__main__.TestValidator)", "Test that configuring DNS search setting is not allowed when both IPv4 and ... ok", "test_empty (__main__.TestValidator) ... ok", "test_ethernet_mac_address (__main__.TestValidator) ... ok", "test_ethernet_speed_settings (__main__.TestValidator) ... ok", "test_ethernet_two_defaults (__main__.TestValidator) ... ok", "test_full_state_absent_defaults (__main__.TestValidator) ... ok", "test_full_state_absent_no_type (__main__.TestValidator) ... ok", "test_full_state_present_no_type (__main__.TestValidator) ... ok", "test_full_state_present_type_defaults (__main__.TestValidator) ... ok", "test_gateway6_configured_ipv6_disabled (__main__.TestValidator)", "Test that configuring `gateway6` and disabling IPv6 are mutually exclusive. ... ok", "test_infiniband (__main__.TestValidator) ... ok", "test_infiniband2 (__main__.TestValidator) ... ok", "test_infiniband3 (__main__.TestValidator) ... ok", "test_interface_name_bond_empty_interface_name (__main__.TestValidator) ... ok", "test_interface_name_bond_profile_as_interface_name (__main__.TestValidator) ... ok", "test_interface_name_ethernet_None (__main__.TestValidator)", "Check that interface_name cannot be None ... ok", "test_interface_name_ethernet_default (__main__.TestValidator)", "Use the profile name as interface_name for ethernet profiles ... ok", "test_interface_name_ethernet_empty (__main__.TestValidator)", "Allow not to restrict the profile to an interface ... ok", "test_interface_name_ethernet_explicit (__main__.TestValidator)", "Use the explicitly provided interface name ... ok", "test_interface_name_ethernet_invalid_interface_name (__main__.TestValidator) ... ok", "test_interface_name_ethernet_invalid_profile (__main__.TestValidator)", "Require explicit interface_name when the profile name is not a ... ok", "test_interface_name_ethernet_mac (__main__.TestValidator)", "Do not set interface_name when mac is specified ... ok", "test_invalid_autoconnect (__main__.TestValidator) ... ok", "test_invalid_cert_path (__main__.TestValidator)", "should fail if a relative path is used for 802.1x certs/keys ... ok", "test_invalid_ethtool_settings (__main__.TestValidator)", "When both the deprecated and current version of a feature are stated, ... ok", "test_invalid_mac (__main__.TestValidator) ... ok", "test_invalid_password_flag (__main__.TestValidator)", "should fail if an invalid private key password flag is set ... ok", "test_invalid_persistent_state_down (__main__.TestValidator) ... ok", "test_invalid_persistent_state_up (__main__.TestValidator) ... ok", "test_invalid_state_test (__main__.TestValidator) ... ok", "test_invalid_values (__main__.TestValidator) ... ok", "test_ipv4_dns_without_ipv4_config (__main__.TestValidator)", "Test that configuring IPv4 DNS is not allowed when IPv4 is disabled. ... ok", "test_ipv6_dns_options_without_ipv6_config (__main__.TestValidator)", "Test that configuring IPv6 DNS options is not allowed when IPv6 is disabled. ... ok", "test_ipv6_dns_with_ipv6_disabled (__main__.TestValidator)", "Test that configuring IPv6 DNS is not allowed when IPv6 is disabled. ... ok", "test_ipv6_dns_with_static_ipv6_configuration (__main__.TestValidator)", "Test that configuring IPv6 DNS is allowed when static IPv6 is configured. ... ok", "test_ipv6_dns_without_ipv6_configuration (__main__.TestValidator)", "Test that configuring IPv6 DNS is not allowed when IPv6 is not configured. ... ok", "test_ipv6_static (__main__.TestValidator) ... ok", "test_macvlan (__main__.TestValidator) ... ok", "test_persistent_state_absent (__main__.TestValidator) ... ok", "test_persistent_state_present (__main__.TestValidator) ... ok", "test_route_metric6_configured_ipv6_disabled (__main__.TestValidator)", "Test that configuring `route_metric6` and disabling IPv6 are mutually ... ok", "test_route_metric_prefix (__main__.TestValidator) ... ok", "test_route_v6 (__main__.TestValidator) ... ok", "test_routes (__main__.TestValidator) ... ok", "test_set_deprecated_ethtool_feature (__main__.TestValidator)", "When passing a deprecated name, their current version is updated. ... ok", "test_set_deprecated_master (__main__.TestValidator)", "When passing the deprecated \"master\" it is updated to \"controller\". ... ok", "test_set_deprecated_slave_type (__main__.TestValidator)", "When passing the deprecated \"slave_type\" it is updated to \"port_type\". ... ok", "test_set_ethtool_feature (__main__.TestValidator)", "When passing the name of an non-deprecated ethtool feature, their ... ok", "test_state_absent (__main__.TestValidator) ... ok", "test_state_absent_down (__main__.TestValidator) ... ok", "test_state_absent_up_no_type (__main__.TestValidator) ... ok", "test_state_absent_up_type (__main__.TestValidator) ... ok", "test_state_down_no_type (__main__.TestValidator) ... ok", "test_state_present (__main__.TestValidator) ... ok", "test_state_present_down (__main__.TestValidator) ... ok", "test_state_present_up (__main__.TestValidator) ... ok", "test_state_up_no_type (__main__.TestValidator) ... ok", "test_state_up_type (__main__.TestValidator) ... ok", "test_static_ipv6_configured_ipv6_disabled (__main__.TestValidator)", "Test that configuring static IPv6 and disabling IPv6 are mutually exclusive. ... ok", "test_up_ethernet (__main__.TestValidator) ... ok", "test_up_ethernet_mac_mtu_static_ip (__main__.TestValidator) ... ok", "test_up_ethernet_no_autoconnect (__main__.TestValidator) ... ok", "test_up_single_v4_dns (__main__.TestValidator) ... ok", "test_valid_persistent_state (__main__.TestValidator)", "Test that when persistent_state is present and state is set to present ... ok", "test_validate_allow_empty_string_in_list (__main__.TestValidator)", "Test that when ArgValidatorStr.allow_empty is True, empty string is allowed in ... ok", "test_validate_bool (__main__.TestValidator) ... ok", "test_validate_dict (__main__.TestValidator) ... ok", "test_validate_disallow_none_in_list (__main__.TestValidator)", "Test that None is not allowed in ArgValidatorList ... ok", "test_validate_int (__main__.TestValidator) ... ok", "test_validate_list (__main__.TestValidator) ... ok", "test_validate_list_remove_none_or_empty (__main__.TestValidator)", "Test that when ArgValidatorStr.remove_none_or_empty is True, None or empty ... ok", "test_validate_range (__main__.TestValidator) ... ok", "test_validate_str (__main__.TestValidator) ... ok", "test_vlan (__main__.TestValidator) ... ok", "test_wireless_eap (__main__.TestValidator)", "Test wireless connection with wpa-eap ... ok", "test_wireless_initscripts (__main__.TestValidator)", "should fail to create wireless connection with initscripts ... ok", "test_wireless_no_802_1x_for_wpa_eap (__main__.TestValidator)", "should fail if no 802.1x parameters are defined for a wireless ... ok", "test_wireless_no_options_defined (__main__.TestValidator)", "should fail if a connection of type='wireless' does not ... ok", "test_wireless_no_password (__main__.TestValidator)", "should fail if wpa-psk is selected and no password provided ... ok", "test_wireless_password_too_long (__main__.TestValidator)", "should fail if wpa-psk is selected and no password provided ... ok", "test_wireless_psk (__main__.TestValidator)", "Test wireless connection with wpa-psk auth ... ok", "test_wireless_ssid_too_long (__main__.TestValidator)", "should fail if ssid longer than 32 bytes ... ok", "test_wireless_unsupported_type (__main__.TestValidator)", "should fail if a non wireless connection has wireless settings defined ... ok", "test_invalid_bond_option_ad (__main__.TestValidatorDictBond)", "Test the ad bond option restrictions ... ok", "test_invalid_bond_option_arp (__main__.TestValidatorDictBond)", "Test the arp bond option restrictions ... ok", "test_invalid_bond_option_downdelay_updelay (__main__.TestValidatorDictBond)", "Test the downdelay or updelay bond option restrictions ... ok", "test_invalid_bond_option_infiniband_port (__main__.TestValidatorDictBond)", "Test that bond only supports infiniband ports in active-backup mode ... ok", "test_invalid_bond_option_packets_per_port (__main__.TestValidatorDictBond)", "Test the packets_per_port bond option restrictions ... ok", "test_invalid_bond_option_peer_arp_ip_target_arp_interval (__main__.TestValidatorDictBond)", "Test the arp_ip_target or arp_interval bond option restrictions ... ok", "test_invalid_bond_option_peer_notif_delay (__main__.TestValidatorDictBond)", "Test the peer_notif_delay bond option restrictions ... ok", "test_invalid_bond_option_primary (__main__.TestValidatorDictBond)", "Test the primary bond option restrictions ... ok", "test_invalid_bond_option_tlb_dynamic_lb (__main__.TestValidatorDictBond)", "Test the tlb_dynamic_lb bond option restrictions ... ok", "test_invalid_pkey_values (__main__.TestValidatorDictInfiniband) ... ok", "test_interface_name_and_match_when_match_is_None (__main__.TestValidatorMatch)", "Test that when 'match' setting is None, interface name should be profile name ... ok", "test_interface_name_when_match_not_specified (__main__.TestValidatorMatch)", "Test that when 'match' setting is not specified, interface name should be ... ok", "test_interface_name_when_match_path_is_empty_list (__main__.TestValidatorMatch)", "Test that when 'match.path' setting is empty list, interface name should be ... ok", "test_interface_name_when_match_path_is_valid (__main__.TestValidatorMatch)", "Test that when 'match.path' setting contains interface path, interface name ... ok", "test_match_path_empty_list (__main__.TestValidatorMatch)", "Test that 'match.path' setting can be defined as None, [], [\"\"], [None] or \"\" ... ok", "test_match_path_invalid_connection_type (__main__.TestValidatorMatch)", "Test that when 'match.path' setting is correctly defined but the connection ... ok", "test_match_path_invalid_setting (__main__.TestValidatorMatch)", "Test that values like [\"&\"] and [\"|\"] are invalid values for 'match.path' ... ok", "test_match_path_setting_normalization (__main__.TestValidatorMatch)", "Test that 'match.path' setting [\"\", \"usb123\", None] will be normalized into ... ok", "test_match_path_valid_setting (__main__.TestValidatorMatch)", "Test that values like [\"pci-0000:00:03.0\"] and [\"&!pci-0000:00:0[1-3].0\"] are ... ok", "test_empty_route_table_name (__main__.TestValidatorRouteTable)", "Test that empty string is invalid value for route table name ... ok", "test_invalid_numeric_route_tables (__main__.TestValidatorRouteTable)", "Test that the value less than 1 or greater than 4294967295 are the invalid ... ok", "test_invalid_route_table_names (__main__.TestValidatorRouteTable)", "Test that the route table names should not be composed from the characters ... ok", "test_invalid_value_types_for_route_tables (__main__.TestValidatorRouteTable)", "Test that the value types apart from string type and integer type are all ... ok", "test_parse_rt_tables (__main__.TestValidatorRouteTable)", "Test that the `IPRouteUtils._parse_route_tables_mapping()` will create the ... ok", "test_table_found_when_validate_route_tables (__main__.TestValidatorRouteTable)", "Test that the `validate_route_tables()` will find the table id mapping from ... ok", "test_table_not_found_when_validate_route_tables (__main__.TestValidatorRouteTable)", "Test that the validation error is raised when the `validate_route_tables()` cannot ... ok", "test_valid_numeric_route_tables (__main__.TestValidatorRouteTable)", "Test that the value between 1 and 4294967295 are the valid value for numeric ... ok", "test_routing_rule_invalid_from_prefix_length (__main__.TestValidatorRoutingRules)", "Test that the prefix length for from/src cannot be zero when from/src is ... ok", "test_routing_rule_invalid_incoming_interface_name (__main__.TestValidatorRoutingRules)", "Test the invalid incoming interface name specified in the routing rule ... ok", "test_routing_rule_invalid_outgoing_interface_name (__main__.TestValidatorRoutingRules)", "Test the invalid outgoing interface name specified in the routing rule ... ok", "test_routing_rule_invalid_to_prefix_length (__main__.TestValidatorRoutingRules)", "Test that the prefix length for to/dst cannot be zero when to/dst is specified ... ok", "test_routing_rule_missing_address_family (__main__.TestValidatorRoutingRules)", "Test that the address family has to be specified if cannot be derived from src ... ok", "test_routing_rule_missing_table (__main__.TestValidatorRoutingRules)", "Test that table has to be defined when the action of the routing rule is ... ok", "test_routing_rule_validate_address_family (__main__.TestValidatorRoutingRules)", "Test that the derived address family and the specified address family should be ... ok", "test_routing_rule_validate_fwmark (__main__.TestValidatorRoutingRules)", "Test that fwmark requires fwmask to be specified ... ok", "test_routing_rule_validate_fwmask (__main__.TestValidatorRoutingRules)", "Test that fwmask requires fwmark to be specified ... ok", "test_routing_rule_validate_suppress_prefixlength (__main__.TestValidatorRoutingRules)", "Test the invalid suppress_prefixlength setting ... ok", "test_routing_rule_validate_uid (__main__.TestValidatorRoutingRules)", "Test the invalid uid specified in the routing rule ... ok", "", "----------------------------------------------------------------------", "Ran 146 tests in 0.073s", "", "OK" ] } TASK [remove local tar file] *************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:151 Wednesday 03 August 2022 16:21:39 +0000 (0:00:00.051) 0:00:16.646 ****** changed: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": true, "path": "/tmp/lsrtest_bqfx5ssl.tar", "state": "absent" } TASK [remove tempdir] ********************************************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:157 Wednesday 03 August 2022 16:21:39 +0000 (0:00:00.211) 0:00:16.858 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "path": "/tmp/lsrtest_zn1jqoyb", "state": "absent" } TASK [Ensure that at least one python unit test ran] *************************** task path: /tmp/tmp05ac0kav/tests/tests_unit.yml:162 Wednesday 03 August 2022 16:21:40 +0000 (0:00:00.376) 0:00:17.235 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* /cache/centos-9.qcow2.snap : ok=32 changed=16 unreachable=0 failed=0 skipped=7 rescued=0 ignored=2 Wednesday 03 August 2022 16:21:40 +0000 (0:00:00.032) 0:00:17.268 ****** =============================================================================== Install dependencies ---------------------------------------------------- 5.11s /tmp/tmp05ac0kav/tests/tests_unit.yml:8 --------------------------------------- ls -alrtFR /tmp/lsrtest_zn1jqoyb ---------------------------------------- 1.38s /tmp/tmp05ac0kav/tests/tests_unit.yml:106 ------------------------------------- Gathering Facts --------------------------------------------------------- 1.10s /tmp/tmp05ac0kav/tests/tests_unit.yml:3 --------------------------------------- Copy testrepo.tar to the remote system ---------------------------------- 1.04s /tmp/tmp05ac0kav/tests/tests_unit.yml:54 -------------------------------------- Copy unit test to remote system ----------------------------------------- 0.87s /tmp/tmp05ac0kav/tests/tests_unit.yml:88 -------------------------------------- Create /tmp/lsrtest_zn1jqoyb/ansible/module_utils ----------------------- 0.85s /tmp/tmp05ac0kav/tests/tests_unit.yml:65 -------------------------------------- Gathering Facts --------------------------------------------------------- 0.82s /tmp/tmp05ac0kav/tests/tests_unit.yml:21 -------------------------------------- Run python3 unit tests -------------------------------------------------- 0.65s /tmp/tmp05ac0kav/tests/tests_unit.yml:132 ------------------------------------- Get stats of system files ----------------------------------------------- 0.58s /tmp/tmp05ac0kav/tests/_backup.yml:6 ------------------------------------------ create tempdir for code to test ----------------------------------------- 0.50s /tmp/tmp05ac0kav/tests/tests_unit.yml:25 -------------------------------------- Back up system files ---------------------------------------------------- 0.48s /tmp/tmp05ac0kav/tests/_backup.yml:19 ----------------------------------------- remove tempdir ---------------------------------------------------------- 0.38s /tmp/tmp05ac0kav/tests/tests_unit.yml:157 ------------------------------------- Untar testrepo.tar ------------------------------------------------------ 0.37s /tmp/tmp05ac0kav/tests/tests_unit.yml:60 -------------------------------------- Check if python3 is available ------------------------------------------- 0.37s /tmp/tmp05ac0kav/tests/tests_unit.yml:126 ------------------------------------- Move module_utils to ansible directory ---------------------------------- 0.37s /tmp/tmp05ac0kav/tests/tests_unit.yml:74 -------------------------------------- Fake out python module directories, primarily for python2 --------------- 0.36s /tmp/tmp05ac0kav/tests/tests_unit.yml:80 -------------------------------------- Check if python2 is available ------------------------------------------- 0.35s /tmp/tmp05ac0kav/tests/tests_unit.yml:111 ------------------------------------- find parent directory and path of modules ------------------------------- 0.24s /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:42 --------------- find parent directory and path of module_utils -------------------------- 0.23s /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:69 --------------- Create Tar file --------------------------------------------------------- 0.21s /tmp/tmp05ac0kav/tests/tests_unit.yml:44 -------------------------------------- PLAYBOOK: _restore.yml ********************************************************* 1 plays in /tmp/tmp05ac0kav/tests/_restore.yml PLAY [all] ********************************************************************* META: ran handlers TASK [Restore system files] **************************************************** task path: /tmp/tmp05ac0kav/tests/_restore.yml:4 Wednesday 03 August 2022 16:21:40 +0000 (0:00:00.019) 0:00:17.287 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": "(cd /; tar -xf /tmp/network.backup.tar)", "delta": "0:00:00.005542", "end": "2022-08-03 12:21:40.065042", "rc": 0, "start": "2022-08-03 12:21:40.059500" } META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* /cache/centos-9.qcow2.snap : ok=33 changed=17 unreachable=0 failed=0 skipped=7 rescued=0 ignored=2 Wednesday 03 August 2022 16:21:40 +0000 (0:00:00.368) 0:00:17.656 ****** =============================================================================== Install dependencies ---------------------------------------------------- 5.11s /tmp/tmp05ac0kav/tests/tests_unit.yml:8 --------------------------------------- ls -alrtFR /tmp/lsrtest_zn1jqoyb ---------------------------------------- 1.38s /tmp/tmp05ac0kav/tests/tests_unit.yml:106 ------------------------------------- Gathering Facts --------------------------------------------------------- 1.10s /tmp/tmp05ac0kav/tests/tests_unit.yml:3 --------------------------------------- Copy testrepo.tar to the remote system ---------------------------------- 1.04s /tmp/tmp05ac0kav/tests/tests_unit.yml:54 -------------------------------------- Copy unit test to remote system ----------------------------------------- 0.87s /tmp/tmp05ac0kav/tests/tests_unit.yml:88 -------------------------------------- Create /tmp/lsrtest_zn1jqoyb/ansible/module_utils ----------------------- 0.85s /tmp/tmp05ac0kav/tests/tests_unit.yml:65 -------------------------------------- Gathering Facts --------------------------------------------------------- 0.82s /tmp/tmp05ac0kav/tests/tests_unit.yml:21 -------------------------------------- Run python3 unit tests -------------------------------------------------- 0.65s /tmp/tmp05ac0kav/tests/tests_unit.yml:132 ------------------------------------- Get stats of system files ----------------------------------------------- 0.58s /tmp/tmp05ac0kav/tests/_backup.yml:6 ------------------------------------------ create tempdir for code to test ----------------------------------------- 0.50s /tmp/tmp05ac0kav/tests/tests_unit.yml:25 -------------------------------------- Back up system files ---------------------------------------------------- 0.48s /tmp/tmp05ac0kav/tests/_backup.yml:19 ----------------------------------------- remove tempdir ---------------------------------------------------------- 0.38s /tmp/tmp05ac0kav/tests/tests_unit.yml:157 ------------------------------------- Untar testrepo.tar ------------------------------------------------------ 0.37s /tmp/tmp05ac0kav/tests/tests_unit.yml:60 -------------------------------------- Check if python3 is available ------------------------------------------- 0.37s /tmp/tmp05ac0kav/tests/tests_unit.yml:126 ------------------------------------- Move module_utils to ansible directory ---------------------------------- 0.37s /tmp/tmp05ac0kav/tests/tests_unit.yml:74 -------------------------------------- Restore system files ---------------------------------------------------- 0.37s /tmp/tmp05ac0kav/tests/_restore.yml:4 ----------------------------------------- Fake out python module directories, primarily for python2 --------------- 0.36s /tmp/tmp05ac0kav/tests/tests_unit.yml:80 -------------------------------------- Check if python2 is available ------------------------------------------- 0.35s /tmp/tmp05ac0kav/tests/tests_unit.yml:111 ------------------------------------- find parent directory and path of modules ------------------------------- 0.24s /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:42 --------------- find parent directory and path of module_utils -------------------------- 0.23s /tmp/tmp05ac0kav/tests/tasks/get_modules_and_utils_paths.yml:69 --------------- ansible-playbook [core 2.12.6] config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.9/site-packages/ansible ansible collection location = /tmp/tmp40vowjjo executable location = /usr/bin/ansible-playbook python version = 3.9.13 (main, May 18 2022, 00:00:00) [GCC 11.3.1 20220421 (Red Hat 11.3.1-2)] jinja version = 2.11.3 libyaml = True Using /etc/ansible/ansible.cfg as config file Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'default', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. PLAYBOOK: _backup.yml ********************************************************** 1 plays in /tmp/tmpem3y1lsc/tests/network/_backup.yml PLAY [all] ********************************************************************* META: ran handlers TASK [Get stats of system files] *********************************************** task path: /tmp/tmpem3y1lsc/tests/network/_backup.yml:6 Wednesday 03 August 2022 16:42:38 +0000 (0:00:00.018) 0:00:00.018 ****** ok: [/cache/centos-9.qcow2.snap] => (item=/etc/resolv.conf) => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "ansible_loop_var": "item", "changed": false, "item": "/etc/resolv.conf", "stat": { "atime": 1659544956.9729025, "attr_flags": "", "attributes": [], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "fba82b5b78ea37322e584bf452f6f8e163f0869b", "ctime": 1659544956.9739025, "dev": 64513, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 4210118, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0644", "mtime": 1659543778.0, "nlink": 1, "path": "/etc/resolv.conf", "pw_name": "root", "readable": true, "rgrp": true, "roth": true, "rusr": true, "size": 90, "uid": 0, "version": "561080196", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Check if system files exist] ********************************************* task path: /tmp/tmpem3y1lsc/tests/network/_backup.yml:13 Wednesday 03 August 2022 16:42:39 +0000 (0:00:00.594) 0:00:00.612 ****** [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ item.stat.exists }} ok: [/cache/centos-9.qcow2.snap] => (item={'changed': False, 'stat': {'exists': True, 'path': '/etc/resolv.conf', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 0, 'gid': 0, 'size': 90, 'inode': 4210118, 'dev': 64513, 'nlink': 1, 'atime': 1659544956.9729025, 'mtime': 1659543778.0, 'ctime': 1659544956.9739025, 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False, 'blocks': 8, 'block_size': 4096, 'device_type': 0, 'readable': True, 'writeable': True, 'executable': False, 'pw_name': 'root', 'gr_name': 'root', 'checksum': 'fba82b5b78ea37322e584bf452f6f8e163f0869b', 'mimetype': 'text/plain', 'charset': 'us-ascii', 'version': '561080196', 'attributes': [], 'attr_flags': ''}, 'invocation': {'module_args': {'path': '/etc/resolv.conf', 'follow': False, 'get_md5': False, 'get_checksum': True, 'get_mime': True, 'get_attributes': True, 'checksum_algorithm': 'sha1'}}, 'ansible_facts': {'discovered_interpreter_python': '/usr/bin/python3'}, 'failed': False, 'item': '/etc/resolv.conf', 'ansible_loop_var': 'item'}) => { "ansible_facts": { "_existing_files": " /etc/resolv.conf" }, "ansible_loop_var": "item", "changed": false, "item": { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "ansible_loop_var": "item", "changed": false, "failed": false, "invocation": { "module_args": { "checksum_algorithm": "sha1", "follow": false, "get_attributes": true, "get_checksum": true, "get_md5": false, "get_mime": true, "path": "/etc/resolv.conf" } }, "item": "/etc/resolv.conf", "stat": { "atime": 1659544956.9729025, "attr_flags": "", "attributes": [], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "fba82b5b78ea37322e584bf452f6f8e163f0869b", "ctime": 1659544956.9739025, "dev": 64513, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 4210118, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0644", "mtime": 1659543778.0, "nlink": 1, "path": "/etc/resolv.conf", "pw_name": "root", "readable": true, "rgrp": true, "roth": true, "rusr": true, "size": 90, "uid": 0, "version": "561080196", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } } TASK [Back up system files] **************************************************** task path: /tmp/tmpem3y1lsc/tests/network/_backup.yml:19 Wednesday 03 August 2022 16:42:39 +0000 (0:00:00.033) 0:00:00.646 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "tar", "-cf", "/tmp/network.backup.tar", "--same-owner", "--same-permissions", "/etc/resolv.conf" ], "delta": "0:00:00.004677", "end": "2022-08-03 12:42:38.736456", "rc": 0, "start": "2022-08-03 12:42:38.731779" } STDERR: tar: Removing leading `/' from member names META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* /cache/centos-9.qcow2.snap : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 Wednesday 03 August 2022 16:42:39 +0000 (0:00:00.500) 0:00:01.147 ****** =============================================================================== Get stats of system files ----------------------------------------------- 0.59s /tmp/tmpem3y1lsc/tests/network/_backup.yml:6 ---------------------------------- Back up system files ---------------------------------------------------- 0.50s /tmp/tmpem3y1lsc/tests/network/_backup.yml:19 --------------------------------- Check if system files exist --------------------------------------------- 0.03s /tmp/tmpem3y1lsc/tests/network/_backup.yml:13 --------------------------------- PLAYBOOK: tests_unit.yml ******************************************************* 2 plays in /tmp/tmpem3y1lsc/tests/network/tests_unit.yml PLAY [Setup for test running] ************************************************** TASK [Gathering Facts] ********************************************************* task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:3 Wednesday 03 August 2022 16:42:39 +0000 (0:00:00.017) 0:00:01.164 ****** ok: [/cache/centos-9.qcow2.snap] META: ran handlers TASK [include_tasks] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:6 Wednesday 03 August 2022 16:42:41 +0000 (0:00:01.077) 0:00:02.242 ****** included: /tmp/tmpem3y1lsc/tests/network/tasks/el_repo_setup.yml for /cache/centos-9.qcow2.snap TASK [Fix CentOS6 Base repo] *************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/el_repo_setup.yml:2 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.027) 0:00:02.270 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [include_tasks] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/el_repo_setup.yml:27 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.023) 0:00:02.293 ****** included: /tmp/tmpem3y1lsc/tests/network/tasks/enable_epel.yml for /cache/centos-9.qcow2.snap TASK [Create EPEL 9] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/enable_epel.yml:4 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.030) 0:00:02.323 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 7] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/enable_epel.yml:11 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.020) 0:00:02.344 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 8] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/enable_epel.yml:17 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.021) 0:00:02.365 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 6] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/enable_epel.yml:26 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.023) 0:00:02.389 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Install dependencies] **************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:8 Wednesday 03 August 2022 16:42:41 +0000 (0:00:00.021) 0:00:02.411 ****** ok: [/cache/centos-9.qcow2.snap] => (item=NetworkManager-libnm) => { "ansible_loop_var": "item", "changed": false, "item": "NetworkManager-libnm", "rc": 0, "results": [] } MSG: Nothing to do failed: [/cache/centos-9.qcow2.snap] (item=python2-gobject-base) => { "ansible_loop_var": "item", "changed": false, "failures": [ "No package python2-gobject-base available." ], "item": "python2-gobject-base", "rc": 1, "results": [] } MSG: Failed to install some of the specified packages ok: [/cache/centos-9.qcow2.snap] => (item=python3-gobject-base) => { "ansible_loop_var": "item", "changed": false, "item": "python3-gobject-base", "rc": 0, "results": [] } MSG: Nothing to do changed: [/cache/centos-9.qcow2.snap] => (item=python-gobject-base) => { "ansible_loop_var": "item", "changed": true, "item": "python-gobject-base", "rc": 0, "results": [ "Installed: python3-gobject-base-3.40.1-6.el9.x86_64", "Installed: python3-gobject-base-noarch-3.40.1-6.el9.noarch", "Removed: python3-gobject-base-3.40.1-5.el9.x86_64" ] } failed: [/cache/centos-9.qcow2.snap] (item=python2-mock) => { "ansible_loop_var": "item", "changed": false, "failures": [ "No package python2-mock available." ], "item": "python2-mock", "rc": 1, "results": [] } MSG: Failed to install some of the specified packages ...ignoring META: ran handlers META: ran handlers PLAY [execute python unit tests] *********************************************** TASK [Gathering Facts] ********************************************************* task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:21 Wednesday 03 August 2022 16:42:45 +0000 (0:00:04.546) 0:00:06.957 ****** ok: [/cache/centos-9.qcow2.snap] META: ran handlers TASK [create tempdir for code to test] ***************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:25 Wednesday 03 August 2022 16:42:46 +0000 (0:00:00.827) 0:00:07.785 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/tmp/lsrtest_w03eykme", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } TASK [get tempfile for tar] **************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:31 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.516) 0:00:08.302 ****** changed: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": true, "gid": 0, "group": "root", "mode": "0600", "owner": "root", "path": "/tmp/lsrtest_9s97hnm_.tar", "size": 0, "state": "file", "uid": 0 } TASK [include_tasks] *********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:38 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.197) 0:00:08.499 ****** included: /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml for /cache/centos-9.qcow2.snap TASK [set collection paths] **************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:3 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.030) 0:00:08.530 ****** ok: [/cache/centos-9.qcow2.snap] => { "ansible_facts": { "collection_paths": [ "/tmp/tmp40vowjjo", "/tmp/tmp40vowjjo" ] }, "changed": false } TASK [set search paths] ******************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:13 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.049) 0:00:08.579 ****** ok: [/cache/centos-9.qcow2.snap] => { "ansible_facts": { "module_utils_search_path": [ "../../module_utils", "../module_utils", "/root/.ansible/plugins/module_utils", "/usr/share/ansible/plugins/module_utils" ], "modules_search_path": [ "../../library", "../library", "/root/.ansible/plugins/modules", "/usr/share/ansible/plugins/modules" ] }, "changed": false } TASK [find parent directory and path of modules] ******************************* task path: /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:42 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.055) 0:00:08.634 ****** ok: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": false, "cmd": "set -euxo pipefail\nfor dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules; do\n if [ -f \"$dir/network_connections.py\" ]; then\n readlink -f \"$(dirname \"$dir\")\"\n basename \"$dir\"\n exit 0\n fi\ndone\nfor dir in /tmp/tmp40vowjjo /tmp/tmp40vowjjo; do\n if [ ! -d \"$dir\" ]; then continue; fi\n cd \"$dir\"\n for subdir in ansible_collections/*/*/plugins/modules; do\n if [ -f \"$subdir/network_connections.py\" ]; then\n echo \"$dir\"\n echo \"$subdir\"\n exit 0\n fi\n done\ndone\necho network_connections.py not found\nexit 1\n", "delta": "0:00:00.004459", "end": "2022-08-03 16:42:47.634869", "rc": 0, "start": "2022-08-03 16:42:47.630410" } STDOUT: /tmp/tmp40vowjjo ansible_collections/fedora/linux_system_roles/plugins/modules STDERR: + for dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f ../../library/network_connections.py ']' + for dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f ../library/network_connections.py ']' + for dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f /root/.ansible/plugins/modules/network_connections.py ']' + for dir in ../../library ../library /root/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f /usr/share/ansible/plugins/modules/network_connections.py ']' + for dir in /tmp/tmp40vowjjo /tmp/tmp40vowjjo + '[' '!' -d /tmp/tmp40vowjjo ']' + cd /tmp/tmp40vowjjo + for subdir in ansible_collections/*/*/plugins/modules + '[' -f ansible_collections/fedora/linux_system_roles/plugins/modules/network_connections.py ']' + echo /tmp/tmp40vowjjo + echo ansible_collections/fedora/linux_system_roles/plugins/modules + exit 0 TASK [find parent directory and path of module_utils] ************************** task path: /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:69 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.227) 0:00:08.862 ****** ok: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": false, "cmd": "set -euxo pipefail\nfor dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils; do\n if [ -d \"$dir/network_lsr\" ]; then\n readlink -f \"$(dirname \"$dir\")\"\n basename \"$dir\"\n exit 0\n fi\ndone\nfor dir in /tmp/tmp40vowjjo /tmp/tmp40vowjjo; do\n if [ ! -d \"$dir\" ]; then continue; fi\n cd \"$dir\"\n for subdir in ansible_collections/*/*/plugins/module_utils; do\n if [ -d \"$subdir/network_lsr\" ]; then\n echo \"$dir\"\n echo \"$subdir\"\n exit 0\n fi\n done\ndone\necho network_lsr not found\nexit 1\n", "delta": "0:00:00.004438", "end": "2022-08-03 16:42:47.865786", "rc": 0, "start": "2022-08-03 16:42:47.861348" } STDOUT: /tmp/tmp40vowjjo ansible_collections/fedora/linux_system_roles/plugins/module_utils STDERR: + for dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d ../../module_utils/network_lsr ']' + for dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d ../module_utils/network_lsr ']' + for dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d /root/.ansible/plugins/module_utils/network_lsr ']' + for dir in ../../module_utils ../module_utils /root/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d /usr/share/ansible/plugins/module_utils/network_lsr ']' + for dir in /tmp/tmp40vowjjo /tmp/tmp40vowjjo + '[' '!' -d /tmp/tmp40vowjjo ']' + cd /tmp/tmp40vowjjo + for subdir in ansible_collections/*/*/plugins/module_utils + '[' -d ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr ']' + echo /tmp/tmp40vowjjo + echo ansible_collections/fedora/linux_system_roles/plugins/module_utils + exit 0 TASK [Create Tar file] ********************************************************* task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:44 Wednesday 03 August 2022 16:42:47 +0000 (0:00:00.231) 0:00:09.093 ****** changed: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": true, "cmd": [ "tar", "-cvf", "/tmp/lsrtest_9s97hnm_.tar", "--exclude", "*.pyc", "--exclude", "__pycache__", "-C", "/tmp/tmp40vowjjo", "ansible_collections/fedora/linux_system_roles/plugins/modules", "-C", "/tmp/tmp40vowjjo", "ansible_collections/fedora/linux_system_roles/plugins/module_utils" ], "delta": "0:00:00.005450", "end": "2022-08-03 16:42:48.083185", "rc": 0, "start": "2022-08-03 16:42:48.077735" } STDOUT: ansible_collections/fedora/linux_system_roles/plugins/modules/ ansible_collections/fedora/linux_system_roles/plugins/modules/__init__.py ansible_collections/fedora/linux_system_roles/plugins/modules/network_connections.py ansible_collections/fedora/linux_system_roles/plugins/modules/network_state.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/ ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/ ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/__init__.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/argument_validator.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/ethtool.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/myerror.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/ ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/__init__.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/active_connection.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/client.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/connection.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/error.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/provider.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm_provider.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/utils.py TASK [Copy testrepo.tar to the remote system] ********************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:54 Wednesday 03 August 2022 16:42:48 +0000 (0:00:00.212) 0:00:09.306 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "checksum": "e79bf70291c91387241e369467a5748debb741a0", "dest": "/tmp/lsrtest_w03eykme/lsrtest_9s97hnm_.tar", "gid": 0, "group": "root", "md5sum": "2798f163e6b3f2fb0e7044edfe5af67a", "mode": "0600", "owner": "root", "secontext": "unconfined_u:object_r:admin_home_t:s0", "size": 256000, "src": "/root/.ansible/tmp/ansible-tmp-1659544968.1721282-126526-166522958124475/source", "state": "file", "uid": 0 } TASK [Untar testrepo.tar] ****************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:60 Wednesday 03 August 2022 16:42:49 +0000 (0:00:01.077) 0:00:10.383 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "tar", "-xvf", "lsrtest_9s97hnm_.tar" ], "delta": "0:00:00.004607", "end": "2022-08-03 12:42:48.364905", "rc": 0, "start": "2022-08-03 12:42:48.360298" } STDOUT: ansible_collections/fedora/linux_system_roles/plugins/modules/ ansible_collections/fedora/linux_system_roles/plugins/modules/__init__.py ansible_collections/fedora/linux_system_roles/plugins/modules/network_connections.py ansible_collections/fedora/linux_system_roles/plugins/modules/network_state.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/ ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/ ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/__init__.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/argument_validator.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/ethtool.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/myerror.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/ ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/__init__.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/active_connection.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/client.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/connection.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/error.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm/provider.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm_provider.py ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/utils.py TASK [Create /tmp/lsrtest_w03eykme/ansible/module_utils] *********************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:65 Wednesday 03 August 2022 16:42:49 +0000 (0:00:00.386) 0:00:10.769 ****** changed: [/cache/centos-9.qcow2.snap] => (item=/tmp/lsrtest_w03eykme/ansible) => { "ansible_loop_var": "item", "changed": true, "gid": 0, "group": "root", "item": "/tmp/lsrtest_w03eykme/ansible", "mode": "0755", "owner": "root", "path": "/tmp/lsrtest_w03eykme/ansible", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } changed: [/cache/centos-9.qcow2.snap] => (item=/tmp/lsrtest_w03eykme/ansible/module_utils) => { "ansible_loop_var": "item", "changed": true, "gid": 0, "group": "root", "item": "/tmp/lsrtest_w03eykme/ansible/module_utils", "mode": "0755", "owner": "root", "path": "/tmp/lsrtest_w03eykme/ansible/module_utils", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 6, "state": "directory", "uid": 0 } TASK [Move module_utils to ansible directory] ********************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:74 Wednesday 03 August 2022 16:42:50 +0000 (0:00:00.891) 0:00:11.661 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": "if [ -d /tmp/lsrtest_w03eykme/module_utils ]; then\n mv /tmp/lsrtest_w03eykme/module_utils /tmp/lsrtest_w03eykme/ansible\nfi\n", "delta": "0:00:00.003614", "end": "2022-08-03 12:42:49.630205", "rc": 0, "start": "2022-08-03 12:42:49.626591" } TASK [Fake out python module directories, primarily for python2] *************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:80 Wednesday 03 August 2022 16:42:50 +0000 (0:00:00.378) 0:00:12.039 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": "for dir in $(find /tmp/lsrtest_w03eykme -type d -print); do\n if [ ! -f \"$dir/__init__.py\" ]; then\n touch \"$dir/__init__.py\"\n fi\ndone\n", "delta": "0:00:00.012914", "end": "2022-08-03 12:42:50.012890", "rc": 0, "start": "2022-08-03 12:42:49.999976" } TASK [Copy unit test to remote system] ***************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:88 Wednesday 03 August 2022 16:42:51 +0000 (0:00:00.376) 0:00:12.416 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "checksum": "24cd18a43f41e2401686623ab6f6bd9aa826a6c6", "dest": "/tmp/lsrtest_w03eykme/test_network_connections.py", "gid": 0, "group": "root", "md5sum": "d6ec79ab07e96a6b7e58442a6e4de723", "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:admin_home_t:s0", "size": 188004, "src": "/root/.ansible/tmp/ansible-tmp-1659544971.3216023-126638-216445010254353/source", "state": "file", "uid": 0 } TASK [Set _lsr_python_path] **************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:94 Wednesday 03 August 2022 16:42:52 +0000 (0:00:01.013) 0:00:13.429 ****** ok: [/cache/centos-9.qcow2.snap] => { "ansible_facts": { "_lsr_python_path": "/tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/modules:/tmp/lsrtest_w03eykme/ansible/ansible_collections/fedora/linux_system_roles/plugins/module_utils:/tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/module_utils:/tmp/lsrtest_w03eykme" }, "changed": false } TASK [ls -alrtFR /tmp/lsrtest_w03eykme] **************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:98 Wednesday 03 August 2022 16:42:52 +0000 (0:00:00.060) 0:00:13.490 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "ls", "-alrtFR", "/tmp/lsrtest_w03eykme" ], "delta": "0:00:00.004937", "end": "2022-08-03 12:42:51.496614", "rc": 0, "start": "2022-08-03 12:42:51.491677" } STDOUT: /tmp/lsrtest_w03eykme: total 440 -rw-------. 1 root root 256000 Aug 3 12:42 lsrtest_9s97hnm_.tar -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 3 root root 39 Aug 3 12:42 ansible_collections/ drwxr-xr-x. 3 root root 45 Aug 3 12:42 ansible/ -rw-r--r--. 1 root root 188004 Aug 3 12:42 test_network_connections.py drwx------. 4 root root 130 Aug 3 12:42 ./ drwxrwxrwt. 13 root root 4096 Aug 3 12:42 ../ /tmp/lsrtest_w03eykme/ansible_collections: total 0 -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 3 root root 51 Aug 3 12:42 fedora/ drwxr-xr-x. 3 root root 39 Aug 3 12:42 ./ drwx------. 4 root root 130 Aug 3 12:42 ../ /tmp/lsrtest_w03eykme/ansible_collections/fedora: total 0 -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 3 root root 39 Aug 3 12:42 ../ drwxr-xr-x. 3 root root 51 Aug 3 12:42 ./ drwxr-xr-x. 3 root root 40 Aug 3 12:42 linux_system_roles/ /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles: total 0 drwxr-xr-x. 3 root root 51 Aug 3 12:42 ../ -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 3 root root 40 Aug 3 12:42 ./ drwxr-xr-x. 4 root root 60 Aug 3 12:42 plugins/ /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins: total 0 drwxr-xr-x. 2 root root 79 Aug 3 11:56 modules/ drwxr-xr-x. 3 root root 40 Aug 3 12:42 ../ -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 4 root root 60 Aug 3 12:42 ./ drwxr-xr-x. 3 root root 44 Aug 3 12:42 module_utils/ /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/modules: total 104 -rw-r--r--. 1 root root 2211 Aug 3 11:56 network_state.py -rw-r--r--. 1 root root 0 Aug 3 11:56 __init__.py drwxr-xr-x. 2 root root 79 Aug 3 11:56 ./ -rw-r--r--. 1 root root 101852 Aug 3 11:56 network_connections.py drwxr-xr-x. 4 root root 60 Aug 3 12:42 ../ /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/module_utils: total 0 drwxr-xr-x. 3 root root 138 Aug 3 11:56 network_lsr/ drwxr-xr-x. 4 root root 60 Aug 3 12:42 ../ -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 3 root root 44 Aug 3 12:42 ./ /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr: total 128 drwxr-xr-x. 2 root root 126 Aug 3 11:56 nm/ -rw-r--r--. 1 root root 190 Aug 3 11:56 myerror.py -rw-r--r--. 1 root root 0 Aug 3 11:56 __init__.py -rw-r--r--. 1 root root 1706 Aug 3 11:56 ethtool.py drwxr-xr-x. 3 root root 138 Aug 3 11:56 ./ -rw-r--r--. 1 root root 11397 Aug 3 11:56 utils.py -rw-r--r--. 1 root root 1640 Aug 3 11:56 nm_provider.py -rw-r--r--. 1 root root 106034 Aug 3 11:56 argument_validator.py drwxr-xr-x. 3 root root 44 Aug 3 12:42 ../ /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/module_utils/network_lsr/nm: total 28 -rw-r--r--. 1 root root 175 Aug 3 11:56 error.py drwxr-xr-x. 3 root root 138 Aug 3 11:56 ../ drwxr-xr-x. 2 root root 126 Aug 3 11:56 ./ -rw-r--r--. 1 root root 3292 Aug 3 11:56 provider.py -rw-r--r--. 1 root root 389 Aug 3 11:56 __init__.py -rw-r--r--. 1 root root 3638 Aug 3 11:56 connection.py -rw-r--r--. 1 root root 2880 Aug 3 11:56 client.py -rw-r--r--. 1 root root 4104 Aug 3 11:56 active_connection.py /tmp/lsrtest_w03eykme/ansible: total 0 -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 3 root root 45 Aug 3 12:42 ./ drwxr-xr-x. 2 root root 25 Aug 3 12:42 module_utils/ drwx------. 4 root root 130 Aug 3 12:42 ../ /tmp/lsrtest_w03eykme/ansible/module_utils: total 0 drwxr-xr-x. 3 root root 45 Aug 3 12:42 ../ -rw-r--r--. 1 root root 0 Aug 3 12:42 __init__.py drwxr-xr-x. 2 root root 25 Aug 3 12:42 ./ TASK [debug] ******************************************************************* task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:100 Wednesday 03 August 2022 16:42:52 +0000 (0:00:00.415) 0:00:13.905 ****** ok: [/cache/centos-9.qcow2.snap] => {} MSG: path /tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/modules:/tmp/lsrtest_w03eykme/ansible/ansible_collections/fedora/linux_system_roles/plugins/module_utils:/tmp/lsrtest_w03eykme/ansible_collections/fedora/linux_system_roles/plugins/module_utils:/tmp/lsrtest_w03eykme TASK [Check if python2 is available] ******************************************* task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:103 Wednesday 03 August 2022 16:42:52 +0000 (0:00:00.030) 0:00:13.935 ****** fatal: [/cache/centos-9.qcow2.snap]: FAILED! => { "changed": false, "cmd": "python2 --version", "rc": 2 } MSG: [Errno 2] No such file or directory: b'python2' ...ignoring TASK [Run python2 unit tests] ************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:109 Wednesday 03 August 2022 16:42:53 +0000 (0:00:00.377) 0:00:14.312 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Check if python3 is available] ******************************************* task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:118 Wednesday 03 August 2022 16:42:53 +0000 (0:00:00.025) 0:00:14.338 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "python3", "--version" ], "delta": "0:00:00.003435", "end": "2022-08-03 12:42:52.307805", "rc": 0, "start": "2022-08-03 12:42:52.304370" } STDOUT: Python 3.9.10 TASK [Run python3 unit tests] ************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:124 Wednesday 03 August 2022 16:42:53 +0000 (0:00:00.374) 0:00:14.712 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": [ "python3", "/tmp/lsrtest_w03eykme/test_network_connections.py", "--verbose" ], "delta": "0:00:00.293655", "end": "2022-08-03 12:42:52.982369", "rc": 0, "start": "2022-08-03 12:42:52.688714" } STDERR: test_connection_ensure_setting (__main__.TestNM) ... ok test_connection_list (__main__.TestNM) ... ok test_path_to_glib_bytes (__main__.TestNM) ... ok test_link_read_permaddress (__main__.TestSysUtils) ... ok test_convert_passwd_flags_nm (__main__.TestUtils) ... ok test_mac_ntoa (__main__.TestUtils) ... ok test_802_1x_1 (__main__.TestValidator) Test private key with password ... ok test_802_1x_2 (__main__.TestValidator) Test 802.1x profile with unencrypted private key, ... ok test_802_1x_3 (__main__.TestValidator) Test 802.1x profile with unencrypted private key and ca_path ... ok test_802_1x_ca_path_and_system_ca_certs (__main__.TestValidator) should fail if ca_path and system_ca_certs are used together ... ok test_802_1x_initscripts (__main__.TestValidator) should fail to create ieee802_1x connection with initscripts ... ok test_802_1x_unsupported_type (__main__.TestValidator) should fail if a non ethernet/wireless connection has 802.1x settings defined ... ok test_absent (__main__.TestValidator) ... ok test_auto6_enabled_ipv6_disabled (__main__.TestValidator) Test that enabling `auto6` and disabling IPv6 are mutually exclusive. ... ok test_auto_gateway_false (__main__.TestValidator) ... ok test_auto_gateway_no_gateway (__main__.TestValidator) ... ok test_auto_gateway_true (__main__.TestValidator) ... ok test_bond (__main__.TestValidator) ... ok test_bond_active_backup (__main__.TestValidator) ... ok test_bridge2 (__main__.TestValidator) ... ok test_bridge_no_dhcp4_auto6 (__main__.TestValidator) ... ok test_default_states (__main__.TestValidator) ... ok test_default_states_type (__main__.TestValidator) ... ok test_deprecated_ethtool_names (__main__.TestValidator) Test that for each validator in ... ok test_dns_options_argvalidator (__main__.TestValidator) Test that argvalidator for validating dns_options value is correctly defined. ... ok test_dns_search_without_ipv4_and_ipv6_configuration (__main__.TestValidator) Test that configuring DNS search setting is not allowed when both IPv4 and ... ok test_empty (__main__.TestValidator) ... ok test_ethernet_mac_address (__main__.TestValidator) ... ok test_ethernet_speed_settings (__main__.TestValidator) ... ok test_ethernet_two_defaults (__main__.TestValidator) ... ok test_full_state_absent_defaults (__main__.TestValidator) ... ok test_full_state_absent_no_type (__main__.TestValidator) ... ok test_full_state_present_no_type (__main__.TestValidator) ... ok test_full_state_present_type_defaults (__main__.TestValidator) ... ok test_gateway6_configured_ipv6_disabled (__main__.TestValidator) Test that configuring `gateway6` and disabling IPv6 are mutually exclusive. ... ok test_infiniband (__main__.TestValidator) ... ok test_infiniband2 (__main__.TestValidator) ... ok test_infiniband3 (__main__.TestValidator) ... ok test_interface_name_bond_empty_interface_name (__main__.TestValidator) ... ok test_interface_name_bond_profile_as_interface_name (__main__.TestValidator) ... ok test_interface_name_ethernet_None (__main__.TestValidator) Check that interface_name cannot be None ... ok test_interface_name_ethernet_default (__main__.TestValidator) Use the profile name as interface_name for ethernet profiles ... ok test_interface_name_ethernet_empty (__main__.TestValidator) Allow not to restrict the profile to an interface ... ok test_interface_name_ethernet_explicit (__main__.TestValidator) Use the explicitly provided interface name ... ok test_interface_name_ethernet_invalid_interface_name (__main__.TestValidator) ... ok test_interface_name_ethernet_invalid_profile (__main__.TestValidator) Require explicit interface_name when the profile name is not a ... ok test_interface_name_ethernet_mac (__main__.TestValidator) Do not set interface_name when mac is specified ... ok test_invalid_autoconnect (__main__.TestValidator) ... ok test_invalid_cert_path (__main__.TestValidator) should fail if a relative path is used for 802.1x certs/keys ... ok test_invalid_ethtool_settings (__main__.TestValidator) When both the deprecated and current version of a feature are stated, ... ok test_invalid_mac (__main__.TestValidator) ... ok test_invalid_password_flag (__main__.TestValidator) should fail if an invalid private key password flag is set ... ok test_invalid_persistent_state_down (__main__.TestValidator) ... ok test_invalid_persistent_state_up (__main__.TestValidator) ... ok test_invalid_state_test (__main__.TestValidator) ... ok test_invalid_values (__main__.TestValidator) ... ok test_ipv4_dns_without_ipv4_config (__main__.TestValidator) Test that configuring IPv4 DNS is not allowed when IPv4 is disabled. ... ok test_ipv6_dns_options_without_ipv6_config (__main__.TestValidator) Test that configuring IPv6 DNS options is not allowed when IPv6 is disabled. ... ok test_ipv6_dns_with_ipv6_disabled (__main__.TestValidator) Test that configuring IPv6 DNS is not allowed when IPv6 is disabled. ... ok test_ipv6_dns_with_static_ipv6_configuration (__main__.TestValidator) Test that configuring IPv6 DNS is allowed when static IPv6 is configured. ... ok test_ipv6_dns_without_ipv6_configuration (__main__.TestValidator) Test that configuring IPv6 DNS is not allowed when IPv6 is not configured. ... ok test_ipv6_static (__main__.TestValidator) ... ok test_macvlan (__main__.TestValidator) ... ok test_persistent_state_absent (__main__.TestValidator) ... ok test_persistent_state_present (__main__.TestValidator) ... ok test_route_metric6_configured_ipv6_disabled (__main__.TestValidator) Test that configuring `route_metric6` and disabling IPv6 are mutually ... ok test_route_metric_prefix (__main__.TestValidator) ... ok test_route_v6 (__main__.TestValidator) ... ok test_routes (__main__.TestValidator) ... ok test_set_deprecated_ethtool_feature (__main__.TestValidator) When passing a deprecated name, their current version is updated. ... ok test_set_deprecated_master (__main__.TestValidator) When passing the deprecated "master" it is updated to "controller". ... ok test_set_deprecated_slave_type (__main__.TestValidator) When passing the deprecated "slave_type" it is updated to "port_type". ... ok test_set_ethtool_feature (__main__.TestValidator) When passing the name of an non-deprecated ethtool feature, their ... ok test_state_absent (__main__.TestValidator) ... ok test_state_absent_down (__main__.TestValidator) ... ok test_state_absent_up_no_type (__main__.TestValidator) ... ok test_state_absent_up_type (__main__.TestValidator) ... ok test_state_down_no_type (__main__.TestValidator) ... ok test_state_present (__main__.TestValidator) ... ok test_state_present_down (__main__.TestValidator) ... ok test_state_present_up (__main__.TestValidator) ... ok test_state_up_no_type (__main__.TestValidator) ... ok test_state_up_type (__main__.TestValidator) ... ok test_static_ipv6_configured_ipv6_disabled (__main__.TestValidator) Test that configuring static IPv6 and disabling IPv6 are mutually exclusive. ... ok test_up_ethernet (__main__.TestValidator) ... ok test_up_ethernet_mac_mtu_static_ip (__main__.TestValidator) ... ok test_up_ethernet_no_autoconnect (__main__.TestValidator) ... ok test_up_single_v4_dns (__main__.TestValidator) ... ok test_valid_persistent_state (__main__.TestValidator) Test that when persistent_state is present and state is set to present ... ok test_validate_allow_empty_string_in_list (__main__.TestValidator) Test that when ArgValidatorStr.allow_empty is True, empty string is allowed in ... ok test_validate_bool (__main__.TestValidator) ... ok test_validate_dict (__main__.TestValidator) ... ok test_validate_disallow_none_in_list (__main__.TestValidator) Test that None is not allowed in ArgValidatorList ... ok test_validate_int (__main__.TestValidator) ... ok test_validate_list (__main__.TestValidator) ... ok test_validate_list_remove_none_or_empty (__main__.TestValidator) Test that when ArgValidatorStr.remove_none_or_empty is True, None or empty ... ok test_validate_range (__main__.TestValidator) ... ok test_validate_str (__main__.TestValidator) ... ok test_vlan (__main__.TestValidator) ... ok test_wireless_eap (__main__.TestValidator) Test wireless connection with wpa-eap ... ok test_wireless_initscripts (__main__.TestValidator) should fail to create wireless connection with initscripts ... ok test_wireless_no_802_1x_for_wpa_eap (__main__.TestValidator) should fail if no 802.1x parameters are defined for a wireless ... ok test_wireless_no_options_defined (__main__.TestValidator) should fail if a connection of type='wireless' does not ... ok test_wireless_no_password (__main__.TestValidator) should fail if wpa-psk is selected and no password provided ... ok test_wireless_password_too_long (__main__.TestValidator) should fail if wpa-psk is selected and no password provided ... ok test_wireless_psk (__main__.TestValidator) Test wireless connection with wpa-psk auth ... ok test_wireless_ssid_too_long (__main__.TestValidator) should fail if ssid longer than 32 bytes ... ok test_wireless_unsupported_type (__main__.TestValidator) should fail if a non wireless connection has wireless settings defined ... ok test_invalid_bond_option_ad (__main__.TestValidatorDictBond) Test the ad bond option restrictions ... ok test_invalid_bond_option_arp (__main__.TestValidatorDictBond) Test the arp bond option restrictions ... ok test_invalid_bond_option_downdelay_updelay (__main__.TestValidatorDictBond) Test the downdelay or updelay bond option restrictions ... ok test_invalid_bond_option_infiniband_port (__main__.TestValidatorDictBond) Test that bond only supports infiniband ports in active-backup mode ... ok test_invalid_bond_option_packets_per_port (__main__.TestValidatorDictBond) Test the packets_per_port bond option restrictions ... ok test_invalid_bond_option_peer_arp_ip_target_arp_interval (__main__.TestValidatorDictBond) Test the arp_ip_target or arp_interval bond option restrictions ... ok test_invalid_bond_option_peer_notif_delay (__main__.TestValidatorDictBond) Test the peer_notif_delay bond option restrictions ... ok test_invalid_bond_option_primary (__main__.TestValidatorDictBond) Test the primary bond option restrictions ... ok test_invalid_bond_option_tlb_dynamic_lb (__main__.TestValidatorDictBond) Test the tlb_dynamic_lb bond option restrictions ... ok test_invalid_pkey_values (__main__.TestValidatorDictInfiniband) ... ok test_interface_name_and_match_when_match_is_None (__main__.TestValidatorMatch) Test that when 'match' setting is None, interface name should be profile name ... ok test_interface_name_when_match_not_specified (__main__.TestValidatorMatch) Test that when 'match' setting is not specified, interface name should be ... ok test_interface_name_when_match_path_is_empty_list (__main__.TestValidatorMatch) Test that when 'match.path' setting is empty list, interface name should be ... ok test_interface_name_when_match_path_is_valid (__main__.TestValidatorMatch) Test that when 'match.path' setting contains interface path, interface name ... ok test_match_path_empty_list (__main__.TestValidatorMatch) Test that 'match.path' setting can be defined as None, [], [""], [None] or "" ... ok test_match_path_invalid_connection_type (__main__.TestValidatorMatch) Test that when 'match.path' setting is correctly defined but the connection ... ok test_match_path_invalid_setting (__main__.TestValidatorMatch) Test that values like ["&"] and ["|"] are invalid values for 'match.path' ... ok test_match_path_setting_normalization (__main__.TestValidatorMatch) Test that 'match.path' setting ["", "usb123", None] will be normalized into ... ok test_match_path_valid_setting (__main__.TestValidatorMatch) Test that values like ["pci-0000:00:03.0"] and ["&!pci-0000:00:0[1-3].0"] are ... ok test_empty_route_table_name (__main__.TestValidatorRouteTable) Test that empty string is invalid value for route table name ... ok test_invalid_numeric_route_tables (__main__.TestValidatorRouteTable) Test that the value less than 1 or greater than 4294967295 are the invalid ... ok test_invalid_route_table_names (__main__.TestValidatorRouteTable) Test that the route table names should not be composed from the characters ... ok test_invalid_value_types_for_route_tables (__main__.TestValidatorRouteTable) Test that the value types apart from string type and integer type are all ... ok test_parse_rt_tables (__main__.TestValidatorRouteTable) Test that the `IPRouteUtils._parse_route_tables_mapping()` will create the ... ok test_table_found_when_validate_route_tables (__main__.TestValidatorRouteTable) Test that the `validate_route_tables()` will find the table id mapping from ... ok test_table_not_found_when_validate_route_tables (__main__.TestValidatorRouteTable) Test that the validation error is raised when the `validate_route_tables()` cannot ... ok test_valid_numeric_route_tables (__main__.TestValidatorRouteTable) Test that the value between 1 and 4294967295 are the valid value for numeric ... ok test_routing_rule_invalid_from_prefix_length (__main__.TestValidatorRoutingRules) Test that the prefix length for from/src cannot be zero when from/src is ... ok test_routing_rule_invalid_incoming_interface_name (__main__.TestValidatorRoutingRules) Test the invalid incoming interface name specified in the routing rule ... ok test_routing_rule_invalid_outgoing_interface_name (__main__.TestValidatorRoutingRules) Test the invalid outgoing interface name specified in the routing rule ... ok test_routing_rule_invalid_to_prefix_length (__main__.TestValidatorRoutingRules) Test that the prefix length for to/dst cannot be zero when to/dst is specified ... ok test_routing_rule_missing_address_family (__main__.TestValidatorRoutingRules) Test that the address family has to be specified if cannot be derived from src ... ok test_routing_rule_missing_table (__main__.TestValidatorRoutingRules) Test that table has to be defined when the action of the routing rule is ... ok test_routing_rule_validate_address_family (__main__.TestValidatorRoutingRules) Test that the derived address family and the specified address family should be ... ok test_routing_rule_validate_fwmark (__main__.TestValidatorRoutingRules) Test that fwmark requires fwmask to be specified ... ok test_routing_rule_validate_fwmask (__main__.TestValidatorRoutingRules) Test that fwmask requires fwmark to be specified ... ok test_routing_rule_validate_suppress_prefixlength (__main__.TestValidatorRoutingRules) Test the invalid suppress_prefixlength setting ... ok test_routing_rule_validate_uid (__main__.TestValidatorRoutingRules) Test the invalid uid specified in the routing rule ... ok ---------------------------------------------------------------------- Ran 146 tests in 0.087s OK TASK [Show python2 unit test results] ****************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:132 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.678) 0:00:15.391 ****** ok: [/cache/centos-9.qcow2.snap] => { "python2_result.stderr_lines": "VARIABLE IS NOT DEFINED!: 'dict object' has no attribute 'stderr_lines'" } TASK [Show python3 unit test results] ****************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:137 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.037) 0:00:15.428 ****** ok: [/cache/centos-9.qcow2.snap] => { "python3_result.stderr_lines": [ "test_connection_ensure_setting (__main__.TestNM) ... ok", "test_connection_list (__main__.TestNM) ... ok", "test_path_to_glib_bytes (__main__.TestNM) ... ok", "test_link_read_permaddress (__main__.TestSysUtils) ... ok", "test_convert_passwd_flags_nm (__main__.TestUtils) ... ok", "test_mac_ntoa (__main__.TestUtils) ... ok", "test_802_1x_1 (__main__.TestValidator)", "Test private key with password ... ok", "test_802_1x_2 (__main__.TestValidator)", "Test 802.1x profile with unencrypted private key, ... ok", "test_802_1x_3 (__main__.TestValidator)", "Test 802.1x profile with unencrypted private key and ca_path ... ok", "test_802_1x_ca_path_and_system_ca_certs (__main__.TestValidator)", "should fail if ca_path and system_ca_certs are used together ... ok", "test_802_1x_initscripts (__main__.TestValidator)", "should fail to create ieee802_1x connection with initscripts ... ok", "test_802_1x_unsupported_type (__main__.TestValidator)", "should fail if a non ethernet/wireless connection has 802.1x settings defined ... ok", "test_absent (__main__.TestValidator) ... ok", "test_auto6_enabled_ipv6_disabled (__main__.TestValidator)", "Test that enabling `auto6` and disabling IPv6 are mutually exclusive. ... ok", "test_auto_gateway_false (__main__.TestValidator) ... ok", "test_auto_gateway_no_gateway (__main__.TestValidator) ... ok", "test_auto_gateway_true (__main__.TestValidator) ... ok", "test_bond (__main__.TestValidator) ... ok", "test_bond_active_backup (__main__.TestValidator) ... ok", "test_bridge2 (__main__.TestValidator) ... ok", "test_bridge_no_dhcp4_auto6 (__main__.TestValidator) ... ok", "test_default_states (__main__.TestValidator) ... ok", "test_default_states_type (__main__.TestValidator) ... ok", "test_deprecated_ethtool_names (__main__.TestValidator)", "Test that for each validator in ... ok", "test_dns_options_argvalidator (__main__.TestValidator)", "Test that argvalidator for validating dns_options value is correctly defined. ... ok", "test_dns_search_without_ipv4_and_ipv6_configuration (__main__.TestValidator)", "Test that configuring DNS search setting is not allowed when both IPv4 and ... ok", "test_empty (__main__.TestValidator) ... ok", "test_ethernet_mac_address (__main__.TestValidator) ... ok", "test_ethernet_speed_settings (__main__.TestValidator) ... ok", "test_ethernet_two_defaults (__main__.TestValidator) ... ok", "test_full_state_absent_defaults (__main__.TestValidator) ... ok", "test_full_state_absent_no_type (__main__.TestValidator) ... ok", "test_full_state_present_no_type (__main__.TestValidator) ... ok", "test_full_state_present_type_defaults (__main__.TestValidator) ... ok", "test_gateway6_configured_ipv6_disabled (__main__.TestValidator)", "Test that configuring `gateway6` and disabling IPv6 are mutually exclusive. ... ok", "test_infiniband (__main__.TestValidator) ... ok", "test_infiniband2 (__main__.TestValidator) ... ok", "test_infiniband3 (__main__.TestValidator) ... ok", "test_interface_name_bond_empty_interface_name (__main__.TestValidator) ... ok", "test_interface_name_bond_profile_as_interface_name (__main__.TestValidator) ... ok", "test_interface_name_ethernet_None (__main__.TestValidator)", "Check that interface_name cannot be None ... ok", "test_interface_name_ethernet_default (__main__.TestValidator)", "Use the profile name as interface_name for ethernet profiles ... ok", "test_interface_name_ethernet_empty (__main__.TestValidator)", "Allow not to restrict the profile to an interface ... ok", "test_interface_name_ethernet_explicit (__main__.TestValidator)", "Use the explicitly provided interface name ... ok", "test_interface_name_ethernet_invalid_interface_name (__main__.TestValidator) ... ok", "test_interface_name_ethernet_invalid_profile (__main__.TestValidator)", "Require explicit interface_name when the profile name is not a ... ok", "test_interface_name_ethernet_mac (__main__.TestValidator)", "Do not set interface_name when mac is specified ... ok", "test_invalid_autoconnect (__main__.TestValidator) ... ok", "test_invalid_cert_path (__main__.TestValidator)", "should fail if a relative path is used for 802.1x certs/keys ... ok", "test_invalid_ethtool_settings (__main__.TestValidator)", "When both the deprecated and current version of a feature are stated, ... ok", "test_invalid_mac (__main__.TestValidator) ... ok", "test_invalid_password_flag (__main__.TestValidator)", "should fail if an invalid private key password flag is set ... ok", "test_invalid_persistent_state_down (__main__.TestValidator) ... ok", "test_invalid_persistent_state_up (__main__.TestValidator) ... ok", "test_invalid_state_test (__main__.TestValidator) ... ok", "test_invalid_values (__main__.TestValidator) ... ok", "test_ipv4_dns_without_ipv4_config (__main__.TestValidator)", "Test that configuring IPv4 DNS is not allowed when IPv4 is disabled. ... ok", "test_ipv6_dns_options_without_ipv6_config (__main__.TestValidator)", "Test that configuring IPv6 DNS options is not allowed when IPv6 is disabled. ... ok", "test_ipv6_dns_with_ipv6_disabled (__main__.TestValidator)", "Test that configuring IPv6 DNS is not allowed when IPv6 is disabled. ... ok", "test_ipv6_dns_with_static_ipv6_configuration (__main__.TestValidator)", "Test that configuring IPv6 DNS is allowed when static IPv6 is configured. ... ok", "test_ipv6_dns_without_ipv6_configuration (__main__.TestValidator)", "Test that configuring IPv6 DNS is not allowed when IPv6 is not configured. ... ok", "test_ipv6_static (__main__.TestValidator) ... ok", "test_macvlan (__main__.TestValidator) ... ok", "test_persistent_state_absent (__main__.TestValidator) ... ok", "test_persistent_state_present (__main__.TestValidator) ... ok", "test_route_metric6_configured_ipv6_disabled (__main__.TestValidator)", "Test that configuring `route_metric6` and disabling IPv6 are mutually ... ok", "test_route_metric_prefix (__main__.TestValidator) ... ok", "test_route_v6 (__main__.TestValidator) ... ok", "test_routes (__main__.TestValidator) ... ok", "test_set_deprecated_ethtool_feature (__main__.TestValidator)", "When passing a deprecated name, their current version is updated. ... ok", "test_set_deprecated_master (__main__.TestValidator)", "When passing the deprecated \"master\" it is updated to \"controller\". ... ok", "test_set_deprecated_slave_type (__main__.TestValidator)", "When passing the deprecated \"slave_type\" it is updated to \"port_type\". ... ok", "test_set_ethtool_feature (__main__.TestValidator)", "When passing the name of an non-deprecated ethtool feature, their ... ok", "test_state_absent (__main__.TestValidator) ... ok", "test_state_absent_down (__main__.TestValidator) ... ok", "test_state_absent_up_no_type (__main__.TestValidator) ... ok", "test_state_absent_up_type (__main__.TestValidator) ... ok", "test_state_down_no_type (__main__.TestValidator) ... ok", "test_state_present (__main__.TestValidator) ... ok", "test_state_present_down (__main__.TestValidator) ... ok", "test_state_present_up (__main__.TestValidator) ... ok", "test_state_up_no_type (__main__.TestValidator) ... ok", "test_state_up_type (__main__.TestValidator) ... ok", "test_static_ipv6_configured_ipv6_disabled (__main__.TestValidator)", "Test that configuring static IPv6 and disabling IPv6 are mutually exclusive. ... ok", "test_up_ethernet (__main__.TestValidator) ... ok", "test_up_ethernet_mac_mtu_static_ip (__main__.TestValidator) ... ok", "test_up_ethernet_no_autoconnect (__main__.TestValidator) ... ok", "test_up_single_v4_dns (__main__.TestValidator) ... ok", "test_valid_persistent_state (__main__.TestValidator)", "Test that when persistent_state is present and state is set to present ... ok", "test_validate_allow_empty_string_in_list (__main__.TestValidator)", "Test that when ArgValidatorStr.allow_empty is True, empty string is allowed in ... ok", "test_validate_bool (__main__.TestValidator) ... ok", "test_validate_dict (__main__.TestValidator) ... ok", "test_validate_disallow_none_in_list (__main__.TestValidator)", "Test that None is not allowed in ArgValidatorList ... ok", "test_validate_int (__main__.TestValidator) ... ok", "test_validate_list (__main__.TestValidator) ... ok", "test_validate_list_remove_none_or_empty (__main__.TestValidator)", "Test that when ArgValidatorStr.remove_none_or_empty is True, None or empty ... ok", "test_validate_range (__main__.TestValidator) ... ok", "test_validate_str (__main__.TestValidator) ... ok", "test_vlan (__main__.TestValidator) ... ok", "test_wireless_eap (__main__.TestValidator)", "Test wireless connection with wpa-eap ... ok", "test_wireless_initscripts (__main__.TestValidator)", "should fail to create wireless connection with initscripts ... ok", "test_wireless_no_802_1x_for_wpa_eap (__main__.TestValidator)", "should fail if no 802.1x parameters are defined for a wireless ... ok", "test_wireless_no_options_defined (__main__.TestValidator)", "should fail if a connection of type='wireless' does not ... ok", "test_wireless_no_password (__main__.TestValidator)", "should fail if wpa-psk is selected and no password provided ... ok", "test_wireless_password_too_long (__main__.TestValidator)", "should fail if wpa-psk is selected and no password provided ... ok", "test_wireless_psk (__main__.TestValidator)", "Test wireless connection with wpa-psk auth ... ok", "test_wireless_ssid_too_long (__main__.TestValidator)", "should fail if ssid longer than 32 bytes ... ok", "test_wireless_unsupported_type (__main__.TestValidator)", "should fail if a non wireless connection has wireless settings defined ... ok", "test_invalid_bond_option_ad (__main__.TestValidatorDictBond)", "Test the ad bond option restrictions ... ok", "test_invalid_bond_option_arp (__main__.TestValidatorDictBond)", "Test the arp bond option restrictions ... ok", "test_invalid_bond_option_downdelay_updelay (__main__.TestValidatorDictBond)", "Test the downdelay or updelay bond option restrictions ... ok", "test_invalid_bond_option_infiniband_port (__main__.TestValidatorDictBond)", "Test that bond only supports infiniband ports in active-backup mode ... ok", "test_invalid_bond_option_packets_per_port (__main__.TestValidatorDictBond)", "Test the packets_per_port bond option restrictions ... ok", "test_invalid_bond_option_peer_arp_ip_target_arp_interval (__main__.TestValidatorDictBond)", "Test the arp_ip_target or arp_interval bond option restrictions ... ok", "test_invalid_bond_option_peer_notif_delay (__main__.TestValidatorDictBond)", "Test the peer_notif_delay bond option restrictions ... ok", "test_invalid_bond_option_primary (__main__.TestValidatorDictBond)", "Test the primary bond option restrictions ... ok", "test_invalid_bond_option_tlb_dynamic_lb (__main__.TestValidatorDictBond)", "Test the tlb_dynamic_lb bond option restrictions ... ok", "test_invalid_pkey_values (__main__.TestValidatorDictInfiniband) ... ok", "test_interface_name_and_match_when_match_is_None (__main__.TestValidatorMatch)", "Test that when 'match' setting is None, interface name should be profile name ... ok", "test_interface_name_when_match_not_specified (__main__.TestValidatorMatch)", "Test that when 'match' setting is not specified, interface name should be ... ok", "test_interface_name_when_match_path_is_empty_list (__main__.TestValidatorMatch)", "Test that when 'match.path' setting is empty list, interface name should be ... ok", "test_interface_name_when_match_path_is_valid (__main__.TestValidatorMatch)", "Test that when 'match.path' setting contains interface path, interface name ... ok", "test_match_path_empty_list (__main__.TestValidatorMatch)", "Test that 'match.path' setting can be defined as None, [], [\"\"], [None] or \"\" ... ok", "test_match_path_invalid_connection_type (__main__.TestValidatorMatch)", "Test that when 'match.path' setting is correctly defined but the connection ... ok", "test_match_path_invalid_setting (__main__.TestValidatorMatch)", "Test that values like [\"&\"] and [\"|\"] are invalid values for 'match.path' ... ok", "test_match_path_setting_normalization (__main__.TestValidatorMatch)", "Test that 'match.path' setting [\"\", \"usb123\", None] will be normalized into ... ok", "test_match_path_valid_setting (__main__.TestValidatorMatch)", "Test that values like [\"pci-0000:00:03.0\"] and [\"&!pci-0000:00:0[1-3].0\"] are ... ok", "test_empty_route_table_name (__main__.TestValidatorRouteTable)", "Test that empty string is invalid value for route table name ... ok", "test_invalid_numeric_route_tables (__main__.TestValidatorRouteTable)", "Test that the value less than 1 or greater than 4294967295 are the invalid ... ok", "test_invalid_route_table_names (__main__.TestValidatorRouteTable)", "Test that the route table names should not be composed from the characters ... ok", "test_invalid_value_types_for_route_tables (__main__.TestValidatorRouteTable)", "Test that the value types apart from string type and integer type are all ... ok", "test_parse_rt_tables (__main__.TestValidatorRouteTable)", "Test that the `IPRouteUtils._parse_route_tables_mapping()` will create the ... ok", "test_table_found_when_validate_route_tables (__main__.TestValidatorRouteTable)", "Test that the `validate_route_tables()` will find the table id mapping from ... ok", "test_table_not_found_when_validate_route_tables (__main__.TestValidatorRouteTable)", "Test that the validation error is raised when the `validate_route_tables()` cannot ... ok", "test_valid_numeric_route_tables (__main__.TestValidatorRouteTable)", "Test that the value between 1 and 4294967295 are the valid value for numeric ... ok", "test_routing_rule_invalid_from_prefix_length (__main__.TestValidatorRoutingRules)", "Test that the prefix length for from/src cannot be zero when from/src is ... ok", "test_routing_rule_invalid_incoming_interface_name (__main__.TestValidatorRoutingRules)", "Test the invalid incoming interface name specified in the routing rule ... ok", "test_routing_rule_invalid_outgoing_interface_name (__main__.TestValidatorRoutingRules)", "Test the invalid outgoing interface name specified in the routing rule ... ok", "test_routing_rule_invalid_to_prefix_length (__main__.TestValidatorRoutingRules)", "Test that the prefix length for to/dst cannot be zero when to/dst is specified ... ok", "test_routing_rule_missing_address_family (__main__.TestValidatorRoutingRules)", "Test that the address family has to be specified if cannot be derived from src ... ok", "test_routing_rule_missing_table (__main__.TestValidatorRoutingRules)", "Test that table has to be defined when the action of the routing rule is ... ok", "test_routing_rule_validate_address_family (__main__.TestValidatorRoutingRules)", "Test that the derived address family and the specified address family should be ... ok", "test_routing_rule_validate_fwmark (__main__.TestValidatorRoutingRules)", "Test that fwmark requires fwmask to be specified ... ok", "test_routing_rule_validate_fwmask (__main__.TestValidatorRoutingRules)", "Test that fwmask requires fwmark to be specified ... ok", "test_routing_rule_validate_suppress_prefixlength (__main__.TestValidatorRoutingRules)", "Test the invalid suppress_prefixlength setting ... ok", "test_routing_rule_validate_uid (__main__.TestValidatorRoutingRules)", "Test the invalid uid specified in the routing rule ... ok", "", "----------------------------------------------------------------------", "Ran 146 tests in 0.087s", "", "OK" ] } TASK [remove local tar file] *************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:143 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.045) 0:00:15.474 ****** changed: [/cache/centos-9.qcow2.snap -> localhost] => { "changed": true, "path": "/tmp/lsrtest_9s97hnm_.tar", "state": "absent" } TASK [remove tempdir] ********************************************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:149 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.217) 0:00:15.691 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "path": "/tmp/lsrtest_w03eykme", "state": "absent" } TASK [Ensure that at least one python unit test ran] *************************** task path: /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:154 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.395) 0:00:16.087 ****** skipping: [/cache/centos-9.qcow2.snap] => { "changed": false, "skip_reason": "Conditional result was False" } META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* /cache/centos-9.qcow2.snap : ok=32 changed=16 unreachable=0 failed=0 skipped=7 rescued=0 ignored=2 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.035) 0:00:16.122 ****** =============================================================================== Install dependencies ---------------------------------------------------- 4.55s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:8 ------------------------------- Gathering Facts --------------------------------------------------------- 1.08s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:3 ------------------------------- Copy testrepo.tar to the remote system ---------------------------------- 1.08s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:54 ------------------------------ Copy unit test to remote system ----------------------------------------- 1.01s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:88 ------------------------------ Create /tmp/lsrtest_w03eykme/ansible/module_utils ----------------------- 0.89s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:65 ------------------------------ Gathering Facts --------------------------------------------------------- 0.83s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:21 ------------------------------ Run python3 unit tests -------------------------------------------------- 0.68s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:124 ----------------------------- Get stats of system files ----------------------------------------------- 0.59s /tmp/tmpem3y1lsc/tests/network/_backup.yml:6 ---------------------------------- create tempdir for code to test ----------------------------------------- 0.52s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:25 ------------------------------ Back up system files ---------------------------------------------------- 0.50s /tmp/tmpem3y1lsc/tests/network/_backup.yml:19 --------------------------------- ls -alrtFR /tmp/lsrtest_w03eykme ---------------------------------------- 0.42s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:98 ------------------------------ remove tempdir ---------------------------------------------------------- 0.40s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:149 ----------------------------- Untar testrepo.tar ------------------------------------------------------ 0.39s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:60 ------------------------------ Move module_utils to ansible directory ---------------------------------- 0.38s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:74 ------------------------------ Check if python2 is available ------------------------------------------- 0.38s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:103 ----------------------------- Fake out python module directories, primarily for python2 --------------- 0.38s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:80 ------------------------------ Check if python3 is available ------------------------------------------- 0.37s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:118 ----------------------------- find parent directory and path of module_utils -------------------------- 0.23s /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:69 ------- find parent directory and path of modules ------------------------------- 0.23s /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:42 ------- remove local tar file --------------------------------------------------- 0.22s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:143 ----------------------------- PLAYBOOK: _restore.yml ********************************************************* 1 plays in /tmp/tmpem3y1lsc/tests/network/_restore.yml PLAY [all] ********************************************************************* META: ran handlers TASK [Restore system files] **************************************************** task path: /tmp/tmpem3y1lsc/tests/network/_restore.yml:4 Wednesday 03 August 2022 16:42:54 +0000 (0:00:00.020) 0:00:16.143 ****** changed: [/cache/centos-9.qcow2.snap] => { "changed": true, "cmd": "(cd /; tar -xf /tmp/network.backup.tar)", "delta": "0:00:00.006311", "end": "2022-08-03 12:42:54.113808", "rc": 0, "start": "2022-08-03 12:42:54.107497" } META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* /cache/centos-9.qcow2.snap : ok=33 changed=17 unreachable=0 failed=0 skipped=7 rescued=0 ignored=2 Wednesday 03 August 2022 16:42:55 +0000 (0:00:00.382) 0:00:16.526 ****** =============================================================================== Install dependencies ---------------------------------------------------- 4.55s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:8 ------------------------------- Gathering Facts --------------------------------------------------------- 1.08s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:3 ------------------------------- Copy testrepo.tar to the remote system ---------------------------------- 1.08s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:54 ------------------------------ Copy unit test to remote system ----------------------------------------- 1.01s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:88 ------------------------------ Create /tmp/lsrtest_w03eykme/ansible/module_utils ----------------------- 0.89s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:65 ------------------------------ Gathering Facts --------------------------------------------------------- 0.83s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:21 ------------------------------ Run python3 unit tests -------------------------------------------------- 0.68s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:124 ----------------------------- Get stats of system files ----------------------------------------------- 0.59s /tmp/tmpem3y1lsc/tests/network/_backup.yml:6 ---------------------------------- create tempdir for code to test ----------------------------------------- 0.52s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:25 ------------------------------ Back up system files ---------------------------------------------------- 0.50s /tmp/tmpem3y1lsc/tests/network/_backup.yml:19 --------------------------------- ls -alrtFR /tmp/lsrtest_w03eykme ---------------------------------------- 0.42s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:98 ------------------------------ remove tempdir ---------------------------------------------------------- 0.40s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:149 ----------------------------- Untar testrepo.tar ------------------------------------------------------ 0.39s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:60 ------------------------------ Restore system files ---------------------------------------------------- 0.38s /tmp/tmpem3y1lsc/tests/network/_restore.yml:4 --------------------------------- Move module_utils to ansible directory ---------------------------------- 0.38s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:74 ------------------------------ Check if python2 is available ------------------------------------------- 0.38s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:103 ----------------------------- Fake out python module directories, primarily for python2 --------------- 0.38s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:80 ------------------------------ Check if python3 is available ------------------------------------------- 0.37s /tmp/tmpem3y1lsc/tests/network/tests_unit.yml:118 ----------------------------- find parent directory and path of module_utils -------------------------- 0.23s /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:69 ------- find parent directory and path of modules ------------------------------- 0.23s /tmp/tmpem3y1lsc/tests/network/tasks/get_modules_and_utils_paths.yml:42 -------