# STDOUT: ---v---v---v---v---v--- Using /etc/ansible/ansible.cfg as config file PLAY [Setup for test running] ************************************************** TASK [Gathering Facts] ********************************************************* Tuesday 31 May 2022 02:38:45 +0000 (0:00:00.029) 0:00:00.029 *********** ok: [sut] TASK [include_tasks] *********************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.820) 0:00:00.850 *********** included: /WORKDIR/dist-git-network-bond_fix-RiXHNB/tests/tasks/el_repo_setup.yml for sut TASK [Fix CentOS6 Base repo] *************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.028) 0:00:00.878 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [include_tasks] *********************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.071) 0:00:00.950 *********** included: /WORKDIR/dist-git-network-bond_fix-RiXHNB/tests/tasks/enable_epel.yml for sut TASK [Create EPEL 34] ********************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.046) 0:00:00.996 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 7] *********************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.024) 0:00:01.021 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 8] *********************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.024) 0:00:01.045 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 6] *********************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.024) 0:00:01.069 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Install dependencies] **************************************************** Tuesday 31 May 2022 02:38:46 +0000 (0:00:00.025) 0:00:01.094 *********** ok: [sut] => (item=NetworkManager-libnm) => { "ansible_loop_var": "item", "changed": false, "item": "NetworkManager-libnm", "rc": 0, "results": [] } MSG: Nothing to do failed: [sut] (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: [sut] => (item=python3-gobject-base) => { "ansible_loop_var": "item", "changed": false, "item": "python3-gobject-base", "rc": 0, "results": [] } MSG: Nothing to do ok: [sut] => (item=python-gobject-base) => { "ansible_loop_var": "item", "changed": false, "item": "python-gobject-base", "rc": 0, "results": [] } MSG: Nothing to do failed: [sut] (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 PLAY [execute python unit tests] *********************************************** TASK [Gathering Facts] ********************************************************* Tuesday 31 May 2022 02:39:01 +0000 (0:00:14.091) 0:00:15.186 *********** ok: [sut] TASK [create tempdir for code to test] ***************************************** Tuesday 31 May 2022 02:39:01 +0000 (0:00:00.567) 0:00:15.753 *********** changed: [sut] => { "changed": true, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/tmp/lsrtest_w8161pzj", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 40, "state": "directory", "uid": 0 } TASK [get tempfile for tar] **************************************************** Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.384) 0:00:16.138 *********** changed: [sut -> localhost] => { "changed": true, "gid": 1001, "group": "jenkins", "mode": "0600", "owner": "jenkins", "path": "/tmp/lsrtest_2zg7iqfu.tar", "size": 0, "state": "file", "uid": 1000090000 } TASK [include_tasks] *********************************************************** Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.199) 0:00:16.337 *********** included: /WORKDIR/dist-git-network-bond_fix-RiXHNB/tests/tasks/get_modules_and_utils_paths.yml for sut TASK [set collection paths] **************************************************** Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.036) 0:00:16.374 *********** ok: [sut] => { "ansible_facts": { "collection_paths": [ "/home/jenkins/.ansible/collections", "/usr/share/ansible/collections" ] }, "changed": false } TASK [set search paths] ******************************************************** Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.042) 0:00:16.416 *********** ok: [sut] => { "ansible_facts": { "module_utils_search_path": [ "../../module_utils", "../module_utils", "/home/jenkins/.ansible/plugins/module_utils", "/usr/share/ansible/plugins/module_utils" ], "modules_search_path": [ "../../library", "../library", "/home/jenkins/.ansible/plugins/modules", "/usr/share/ansible/plugins/modules" ] }, "changed": false } TASK [find parent directory and path of modules] ******************************* Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.047) 0:00:16.464 *********** ok: [sut -> localhost] => { "changed": false, "cmd": "set -euxo pipefail\nfor dir in ../../library ../library /home/jenkins/.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 /home/jenkins/.ansible/collections /usr/share/ansible/collections; 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.014601", "end": "2022-05-31 02:39:02.725262", "rc": 0, "start": "2022-05-31 02:39:02.710661" } STDOUT: /WORKDIR/dist-git-network-bond_fix-RiXHNB library STDERR: + for dir in ../../library ../library /home/jenkins/.ansible/plugins/modules /usr/share/ansible/plugins/modules + '[' -f ../../library/network_connections.py ']' + for dir in ../../library ../library /home/jenkins/.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] ************************** Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.398) 0:00:16.862 *********** ok: [sut -> localhost] => { "changed": false, "cmd": "set -euxo pipefail\nfor dir in ../../module_utils ../module_utils /home/jenkins/.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 /home/jenkins/.ansible/collections /usr/share/ansible/collections; 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.013315", "end": "2022-05-31 02:39:02.955779", "rc": 0, "start": "2022-05-31 02:39:02.942464" } STDOUT: /WORKDIR/dist-git-network-bond_fix-RiXHNB module_utils STDERR: + for dir in ../../module_utils ../module_utils /home/jenkins/.ansible/plugins/module_utils /usr/share/ansible/plugins/module_utils + '[' -d ../../module_utils/network_lsr ']' + for dir in ../../module_utils ../module_utils /home/jenkins/.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] ********************************************************* Tuesday 31 May 2022 02:39:02 +0000 (0:00:00.230) 0:00:17.093 *********** changed: [sut -> localhost] => { "changed": true, "cmd": [ "tar", "-cvf", "/tmp/lsrtest_2zg7iqfu.tar", "--exclude", "*.pyc", "--exclude", "__pycache__", "-C", "/WORKDIR/dist-git-network-bond_fix-RiXHNB", "library", "-C", "/WORKDIR/dist-git-network-bond_fix-RiXHNB", "module_utils" ], "delta": "0:00:00.007851", "end": "2022-05-31 02:39:03.177664", "rc": 0, "start": "2022-05-31 02:39:03.169813" } STDOUT: library/ library/__init__.py library/network_connections.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] ********************************** Tuesday 31 May 2022 02:39:03 +0000 (0:00:00.219) 0:00:17.312 *********** changed: [sut] => { "changed": true, "checksum": "633971f86dbe1bd4517d4440afee31b95bbcda93", "dest": "/tmp/lsrtest_w8161pzj/lsrtest_2zg7iqfu.tar", "gid": 0, "group": "root", "md5sum": "bb62ed43de0a959d5c4456269da2cd95", "mode": "0600", "owner": "root", "secontext": "unconfined_u:object_r:admin_home_t:s0", "size": 256000, "src": "/root/.ansible/tmp/ansible-tmp-1653964743.2739513-42859-272874422407480/source", "state": "file", "uid": 0 } TASK [Untar testrepo.tar] ****************************************************** Tuesday 31 May 2022 02:39:04 +0000 (0:00:01.291) 0:00:18.603 *********** changed: [sut] => { "changed": true, "cmd": [ "tar", "-xvf", "lsrtest_2zg7iqfu.tar" ], "delta": "0:00:00.008588", "end": "2022-05-31 02:39:04.117142", "rc": 0, "start": "2022-05-31 02:39:04.108554" } STDOUT: library/ library/__init__.py library/network_connections.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_w8161pzj/ansible/module_utils] *********************** Tuesday 31 May 2022 02:39:04 +0000 (0:00:00.253) 0:00:18.856 *********** changed: [sut] => (item=/tmp/lsrtest_w8161pzj/ansible) => { "ansible_loop_var": "item", "changed": true, "gid": 0, "group": "root", "item": "/tmp/lsrtest_w8161pzj/ansible", "mode": "0755", "owner": "root", "path": "/tmp/lsrtest_w8161pzj/ansible", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 40, "state": "directory", "uid": 0 } changed: [sut] => (item=/tmp/lsrtest_w8161pzj/ansible/module_utils) => { "ansible_loop_var": "item", "changed": true, "gid": 0, "group": "root", "item": "/tmp/lsrtest_w8161pzj/ansible/module_utils", "mode": "0755", "owner": "root", "path": "/tmp/lsrtest_w8161pzj/ansible/module_utils", "secontext": "unconfined_u:object_r:user_tmp_t:s0", "size": 40, "state": "directory", "uid": 0 } TASK [Move module_utils to ansible directory] ********************************** Tuesday 31 May 2022 02:39:05 +0000 (0:00:00.624) 0:00:19.481 *********** changed: [sut] => { "changed": true, "cmd": "if [ -d /tmp/lsrtest_w8161pzj/module_utils ]; then\n mv /tmp/lsrtest_w8161pzj/module_utils /tmp/lsrtest_w8161pzj/ansible\nfi\n", "delta": "0:00:00.005199", "end": "2022-05-31 02:39:04.987804", "rc": 0, "start": "2022-05-31 02:39:04.982605" } TASK [Fake out python module directories, primarily for python2] *************** Tuesday 31 May 2022 02:39:05 +0000 (0:00:00.242) 0:00:19.724 *********** changed: [sut] => { "changed": true, "cmd": "for dir in $(find /tmp/lsrtest_w8161pzj -type d -print); do\n if [ ! -f \"$dir/__init__.py\" ]; then\n touch \"$dir/__init__.py\"\n fi\ndone\n", "delta": "0:00:00.100164", "end": "2022-05-31 02:39:05.327448", "rc": 0, "start": "2022-05-31 02:39:05.227284" } TASK [Copy unit test to remote system] ***************************************** Tuesday 31 May 2022 02:39:05 +0000 (0:00:00.340) 0:00:20.064 *********** changed: [sut] => { "changed": true, "checksum": "11b2fee4857cdb158b514d66f23e1ee6ac4a4f87", "dest": "/tmp/lsrtest_w8161pzj/test_network_connections.py", "gid": 0, "group": "root", "md5sum": "431760542cf2b1ceae2c665a4a3e4a77", "mode": "0644", "owner": "root", "secontext": "unconfined_u:object_r:admin_home_t:s0", "size": 186922, "src": "/root/.ansible/tmp/ansible-tmp-1653964746.0270593-42883-42517114615766/source", "state": "file", "uid": 0 } TASK [Set _lsr_python_path] **************************************************** Tuesday 31 May 2022 02:39:06 +0000 (0:00:00.999) 0:00:21.064 *********** ok: [sut] => { "ansible_facts": { "_lsr_python_path": "/tmp/lsrtest_w8161pzj/library:/tmp/lsrtest_w8161pzj/ansible/module_utils:/tmp/lsrtest_w8161pzj/module_utils:/tmp/lsrtest_w8161pzj" }, "changed": false } TASK [ls -alrtFR /tmp/lsrtest_w8161pzj] **************************************** Tuesday 31 May 2022 02:39:06 +0000 (0:00:00.030) 0:00:21.094 *********** changed: [sut] => { "changed": true, "cmd": [ "ls", "-alrtFR", "/tmp/lsrtest_w8161pzj" ], "delta": "0:00:00.007778", "end": "2022-05-31 02:39:06.605789", "rc": 0, "start": "2022-05-31 02:39:06.598011" } STDOUT: /tmp/lsrtest_w8161pzj: total 436 drwxr-xr-x. 2 1000090000 1001 80 May 30 22:45 library/ -rw-------. 1 root root 256000 May 31 02:39 lsrtest_2zg7iqfu.tar -rw-r--r--. 1 root root 0 May 31 02:39 __init__.py drwxr-xr-x. 3 root root 80 May 31 02:39 ansible/ -rw-r--r--. 1 root root 186922 May 31 02:39 test_network_connections.py drwx------. 4 root root 140 May 31 02:39 ./ drwxrwxrwt. 14 root root 280 May 31 02:39 ../ /tmp/lsrtest_w8161pzj/library: total 100 -rw-r--r--. 1 1000090000 1001 101576 May 30 22:45 network_connections.py -rw-r--r--. 1 1000090000 1001 0 May 30 22:45 __init__.py drwxr-xr-x. 2 1000090000 1001 80 May 30 22:45 ./ drwx------. 4 root root 140 May 31 02:39 ../ /tmp/lsrtest_w8161pzj/ansible: total 0 -rw-r--r--. 1 root root 0 May 31 02:39 __init__.py drwxr-xr-x. 3 root root 80 May 31 02:39 ./ drwxr-xr-x. 3 1000090000 1001 80 May 31 02:39 module_utils/ drwx------. 4 root root 140 May 31 02:39 ../ /tmp/lsrtest_w8161pzj/ansible/module_utils: total 0 drwxr-xr-x. 3 1000090000 1001 180 May 30 22:45 network_lsr/ drwxr-xr-x. 3 root root 80 May 31 02:39 ../ -rw-r--r--. 1 root root 0 May 31 02:39 __init__.py drwxr-xr-x. 3 1000090000 1001 80 May 31 02:39 ./ /tmp/lsrtest_w8161pzj/ansible/module_utils/network_lsr: total 128 -rw-r--r--. 1 1000090000 1001 11351 May 30 22:45 utils.py -rw-r--r--. 1 1000090000 1001 1594 May 30 22:45 nm_provider.py drwxr-xr-x. 2 1000090000 1001 160 May 30 22:45 nm/ -rw-r--r--. 1 1000090000 1001 190 May 30 22:45 myerror.py -rw-r--r--. 1 1000090000 1001 1706 May 30 22:45 ethtool.py -rw-r--r--. 1 1000090000 1001 105622 May 30 22:45 argument_validator.py -rw-r--r--. 1 1000090000 1001 0 May 30 22:45 __init__.py drwxr-xr-x. 3 1000090000 1001 180 May 30 22:45 ./ drwxr-xr-x. 3 1000090000 1001 80 May 31 02:39 ../ /tmp/lsrtest_w8161pzj/ansible/module_utils/network_lsr/nm: total 24 -rw-r--r--. 1 1000090000 1001 3154 May 30 22:45 provider.py -rw-r--r--. 1 1000090000 1001 175 May 30 22:45 error.py -rw-r--r--. 1 1000090000 1001 3546 May 30 22:45 connection.py -rw-r--r--. 1 1000090000 1001 2834 May 30 22:45 client.py -rw-r--r--. 1 1000090000 1001 4012 May 30 22:45 active_connection.py -rw-r--r--. 1 1000090000 1001 343 May 30 22:45 __init__.py drwxr-xr-x. 3 1000090000 1001 180 May 30 22:45 ../ drwxr-xr-x. 2 1000090000 1001 160 May 30 22:45 ./ TASK [debug] ******************************************************************* Tuesday 31 May 2022 02:39:07 +0000 (0:00:00.249) 0:00:21.344 *********** ok: [sut] => {} MSG: path /tmp/lsrtest_w8161pzj/library:/tmp/lsrtest_w8161pzj/ansible/module_utils:/tmp/lsrtest_w8161pzj/module_utils:/tmp/lsrtest_w8161pzj TASK [Check if python2 is available] ******************************************* Tuesday 31 May 2022 02:39:07 +0000 (0:00:00.024) 0:00:21.369 *********** fatal: [sut]: FAILED! => { "changed": false, "cmd": "python2 --version", "rc": 2 } MSG: [Errno 2] No such file or directory: b'python2' ...ignoring TASK [Run python2 unit tests] ************************************************** Tuesday 31 May 2022 02:39:07 +0000 (0:00:00.235) 0:00:21.604 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Check if python3 is available] ******************************************* Tuesday 31 May 2022 02:39:07 +0000 (0:00:00.024) 0:00:21.629 *********** changed: [sut] => { "changed": true, "cmd": [ "python3", "--version" ], "delta": "0:00:00.003947", "end": "2022-05-31 02:39:07.129040", "rc": 0, "start": "2022-05-31 02:39:07.125093" } STDOUT: Python 3.9.12 TASK [Run python3 unit tests] ************************************************** Tuesday 31 May 2022 02:39:07 +0000 (0:00:00.236) 0:00:21.865 *********** changed: [sut] => { "changed": true, "cmd": [ "python3", "/tmp/lsrtest_w8161pzj/test_network_connections.py", "--verbose" ], "delta": "0:00:00.746556", "end": "2022-05-31 02:39:08.121768", "rc": 0, "start": "2022-05-31 02:39:07.375212" } 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.120s OK TASK [Show python2 unit test results] ****************************************** Tuesday 31 May 2022 02:39:08 +0000 (0:00:01.001) 0:00:22.867 *********** ok: [sut] => { "python2_result.stderr_lines": "VARIABLE IS NOT DEFINED!: 'dict object' has no attribute 'stderr_lines'" } TASK [Show python3 unit test results] ****************************************** Tuesday 31 May 2022 02:39:08 +0000 (0:00:00.031) 0:00:22.898 *********** ok: [sut] => { "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.120s", "", "OK" ] } TASK [remove local tar file] *************************************************** Tuesday 31 May 2022 02:39:08 +0000 (0:00:00.040) 0:00:22.939 *********** changed: [sut -> localhost] => { "changed": true, "path": "/tmp/lsrtest_2zg7iqfu.tar", "state": "absent" } TASK [remove tempdir] ********************************************************** Tuesday 31 May 2022 02:39:09 +0000 (0:00:00.211) 0:00:23.150 *********** changed: [sut] => { "changed": true, "path": "/tmp/lsrtest_w8161pzj", "state": "absent" } TASK [Ensure that at least one python unit test ran] *************************** Tuesday 31 May 2022 02:39:09 +0000 (0:00:00.253) 0:00:23.404 *********** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } PLAY RECAP ********************************************************************* sut : ok=29 changed=14 unreachable=0 failed=0 skipped=7 rescued=0 ignored=2 Tuesday 31 May 2022 02:39:09 +0000 (0:00:00.021) 0:00:23.425 *********** =============================================================================== Install dependencies --------------------------------------------------- 14.09s Copy testrepo.tar to the remote system ---------------------------------- 1.29s Run python3 unit tests -------------------------------------------------- 1.00s Copy unit test to remote system ----------------------------------------- 1.00s Gathering Facts --------------------------------------------------------- 0.82s Create /tmp/lsrtest_w8161pzj/ansible/module_utils ----------------------- 0.62s Gathering Facts --------------------------------------------------------- 0.57s find parent directory and path of modules ------------------------------- 0.40s create tempdir for code to test ----------------------------------------- 0.38s Fake out python module directories, primarily for python2 --------------- 0.34s remove tempdir ---------------------------------------------------------- 0.25s Untar testrepo.tar ------------------------------------------------------ 0.25s ls -alrtFR /tmp/lsrtest_w8161pzj ---------------------------------------- 0.25s Move module_utils to ansible directory ---------------------------------- 0.24s Check if python3 is available ------------------------------------------- 0.24s Check if python2 is available ------------------------------------------- 0.24s find parent directory and path of module_utils -------------------------- 0.23s Create Tar file --------------------------------------------------------- 0.22s remove local tar file --------------------------------------------------- 0.21s get tempfile for tar ---------------------------------------------------- 0.20s ---^---^---^---^---^--- # STDERR: ---v---v---v---v---v--- /opt/ansible-2.9/lib/python3.6/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release. from cryptography.exceptions import InvalidSignature [WARNING]: Consider using the unarchive module rather than running 'tar'. If you need to use command because unarchive is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message. ---^---^---^---^---^---