# STDOUT: ---v---v---v---v---v--- ansible-playbook [core 2.16.0] config file = /etc/ansible/ansible.cfg configured module search path = ['/home/jenkins/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /opt/ansible-2.16/lib/python3.11/site-packages/ansible ansible collection location = /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection executable location = /opt/ansible-2.16/bin/ansible-playbook python version = 3.11.5 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] (/opt/ansible-2.16/bin/python) jinja version = 3.1.2 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: tests_team_nm.yml **************************************************** 2 plays in /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tests_team_nm.yml PLAY [Run playbook 'playbooks/tests_team.yml' with nm as provider] ************* TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tests_team_nm.yml:6 Wednesday 14 February 2024 00:40:14 +0000 (0:00:00.011) 0:00:00.011 **** ok: [sut] TASK [Include the task 'el_repo_setup.yml'] ************************************ task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tests_team_nm.yml:9 Wednesday 14 February 2024 00:40:14 +0000 (0:00:00.801) 0:00:00.813 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml for sut TASK [Gather the minimum subset of ansible_facts required by the network role test] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:3 Wednesday 14 February 2024 00:40:14 +0000 (0:00:00.011) 0:00:00.825 **** ok: [sut] TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:17 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.254) 0:00:01.079 **** ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:22 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.187) 0:00:01.267 **** ok: [sut] => { "ansible_facts": { "__network_is_ostree": false }, "changed": false } TASK [Fix CentOS6 Base repo] *************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:26 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.013) 0:00:01.280 **** skipping: [sut] => { "changed": false, "false_condition": "ansible_distribution == 'CentOS'", "skip_reason": "Conditional result was False" } TASK [Include the task 'enable_epel.yml'] ************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:51 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.008) 0:00:01.289 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml for sut TASK [Create EPEL 7] *********************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:8 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.021) 0:00:01.311 **** ok: [sut] => { "attempts": 1, "changed": false, "cmd": [ "rpm", "-iv", "https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm" ], "delta": null, "end": null, "rc": 0, "start": null } STDOUT: skipped, since /etc/yum.repos.d/epel.repo exists MSG: Did not run command since '/etc/yum.repos.d/epel.repo' exists TASK [Install yum-utils package] *********************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:24 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.188) 0:00:01.500 **** ok: [sut] => { "changed": false, "rc": 0, "results": [ "yum-utils-1.1.31-54.el7_8.noarch providing yum-utils is already installed" ] } TASK [Enable EPEL 7] *********************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:30 Wednesday 14 February 2024 00:40:15 +0000 (0:00:00.452) 0:00:01.952 **** ok: [sut] => { "changed": false, "cmd": [ "yum-config-manager", "--enable", "epel" ], "delta": "0:00:00.212252", "end": "2024-02-14 00:40:16.281572", "rc": 0, "start": "2024-02-14 00:40:16.069320" } STDOUT: ================================== repo: epel ================================== [epel] async = True bandwidth = 0 base_persistdir = /var/lib/yum/repos/x86_64/7Server baseurl = cache = 0 cachedir = /var/cache/yum/x86_64/7Server/epel check_config_file_age = True compare_providers_priority = 80 cost = 1000 deltarpm_metadata_percentage = 100 deltarpm_percentage = enabled = True enablegroups = True exclude = failovermethod = priority ftp_disable_epsv = False gpgcadir = /var/lib/yum/repos/x86_64/7Server/epel/gpgcadir gpgcakey = gpgcheck = True gpgdir = /var/lib/yum/repos/x86_64/7Server/epel/gpgdir gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 hdrdir = /var/cache/yum/x86_64/7Server/epel/headers http_caching = all includepkgs = ip_resolve = keepalive = True keepcache = False mddownloadpolicy = sqlite mdpolicy = group:small mediaid = metadata_expire = 21600 metadata_expire_filter = read-only:present metalink = https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64&infra=$infra&content=$contentdir minrate = 0 mirrorlist = mirrorlist_expire = 86400 name = Extra Packages for Enterprise Linux 7 - x86_64 old_base_cache_dir = password = persistdir = /var/lib/yum/repos/x86_64/7Server/epel pkgdir = /var/cache/yum/x86_64/7Server/epel/packages proxy = False proxy_dict = proxy_password = proxy_username = repo_gpgcheck = False retries = 10 skip_if_unavailable = False ssl_check_cert_permissions = True sslcacert = sslclientcert = sslclientkey = sslverify = True throttle = 0 timeout = 30.0 ui_id = epel/x86_64 ui_repoid_vars = releasever, basearch username = TASK [Enable EPEL 8] *********************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:35 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.343) 0:00:02.296 **** skipping: [sut] => { "changed": false, "false_condition": "ansible_distribution_major_version == '8'", "skip_reason": "Conditional result was False" } TASK [Enable EPEL 6] *********************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:40 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.009) 0:00:02.305 **** skipping: [sut] => { "changed": false, "false_condition": "ansible_distribution_major_version == '6'", "skip_reason": "Conditional result was False" } TASK [Set network provider to 'nm'] ******************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tests_team_nm.yml:11 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.007) 0:00:02.313 **** ok: [sut] => { "ansible_facts": { "network_provider": "nm" }, "changed": false } PLAY [Play for testing team connection] **************************************** TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tests_team.yml:3 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.015) 0:00:02.329 **** ok: [sut] TASK [Show playbook name] ****************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tests_team.yml:11 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.572) 0:00:02.901 **** ok: [sut] => {} MSG: this is: playbooks/tests_team.yml TASK [Include the task 'run_test.yml'] ***************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tests_team.yml:21 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.010) 0:00:02.912 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml for sut TASK [TEST: Create a team interface without any port attached] ***************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:5 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.013) 0:00:02.925 **** ok: [sut] => {} MSG: ########## Create a team interface without any port attached ########## TASK [Show item] *************************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:9 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.011) 0:00:02.937 **** ok: [sut] => (item=lsr_description) => { "ansible_loop_var": "item", "item": "lsr_description", "lsr_description": "Create a team interface without any port attached" } ok: [sut] => (item=lsr_setup) => { "ansible_loop_var": "item", "item": "lsr_setup", "lsr_setup": [ "tasks/delete_interface.yml", "tasks/assert_device_absent.yml" ] } ok: [sut] => (item=lsr_test) => { "ansible_loop_var": "item", "item": "lsr_test", "lsr_test": [ "tasks/create_team_profile.yml" ] } ok: [sut] => (item=lsr_assert) => { "ansible_loop_var": "item", "item": "lsr_assert", "lsr_assert": [ "tasks/assert_profile_present.yml", "tasks/assert_device_present.yml" ] } ok: [sut] => (item=lsr_assert_when) => { "ansible_loop_var": "item", "item": "lsr_assert_when", "lsr_assert_when": "VARIABLE IS NOT DEFINED!: 'lsr_assert_when' is undefined. 'lsr_assert_when' is undefined" } ok: [sut] => (item=lsr_fail_debug) => { "ansible_loop_var": "item", "item": "lsr_fail_debug", "lsr_fail_debug": [ "__network_connections_result" ] } ok: [sut] => (item=lsr_cleanup) => { "ansible_loop_var": "item", "item": "lsr_cleanup", "lsr_cleanup": [ "tasks/cleanup_profile+device.yml", "tasks/check_network_dns.yml" ] } TASK [Include the task 'show_interfaces.yml'] ********************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:21 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.035) 0:00:02.972 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/show_interfaces.yml for sut TASK [Include the task 'get_current_interfaces.yml'] *************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/show_interfaces.yml:3 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.012) 0:00:02.985 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_current_interfaces.yml for sut TASK [Gather current interface info] ******************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_current_interfaces.yml:3 Wednesday 14 February 2024 00:40:16 +0000 (0:00:00.012) 0:00:02.998 **** ok: [sut] => { "changed": false, "cmd": [ "ls", "-1" ], "delta": "0:00:00.004011", "end": "2024-02-14 00:40:17.118283", "rc": 0, "start": "2024-02-14 00:40:17.114272" } STDOUT: bond0 bonding_masters eth0 lo rpltstbr TASK [Set current_interfaces] ************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_current_interfaces.yml:9 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.134) 0:00:03.132 **** ok: [sut] => { "ansible_facts": { "current_interfaces": [ "bond0", "bonding_masters", "eth0", "lo", "rpltstbr" ] }, "changed": false } TASK [Show current_interfaces] ************************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/show_interfaces.yml:5 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.011) 0:00:03.143 **** ok: [sut] => {} MSG: current_interfaces: ['bond0', 'bonding_masters', 'eth0', 'lo', 'rpltstbr'] TASK [Setup] ******************************************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:24 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.010) 0:00:03.154 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/delete_interface.yml for sut => (item=tasks/delete_interface.yml) included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_device_absent.yml for sut => (item=tasks/assert_device_absent.yml) TASK [Remove test interface if necessary] ************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/delete_interface.yml:3 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.019) 0:00:03.173 **** fatal: [sut]: FAILED! => { "changed": false, "cmd": [ "ip", "link", "del", "team0" ], "delta": "0:00:00.011889", "end": "2024-02-14 00:40:17.300752", "rc": 1, "start": "2024-02-14 00:40:17.288863" } STDERR: Cannot find device "team0" MSG: non-zero return code ...ignoring TASK [Include the task 'get_interface_stat.yml'] ******************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_device_absent.yml:3 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.140) 0:00:03.314 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_interface_stat.yml for sut TASK [Get stat for interface team0] ******************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_interface_stat.yml:3 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.013) 0:00:03.328 **** ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [Assert that the interface is absent - 'team0'] *************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_device_absent.yml:5 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.130) 0:00:03.459 **** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Test] ******************************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:30 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.011) 0:00:03.470 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/create_team_profile.yml for sut => (item=tasks/create_team_profile.yml) TASK [Include network role] **************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/create_team_profile.yml:3 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.016) 0:00:03.486 **** TASK [fedora.linux_system_roles.network : Ensure ansible_facts used by role] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:4 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.023) 0:00:03.510 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml for sut TASK [fedora.linux_system_roles.network : Ensure ansible_facts used by role are present] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:3 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.020) 0:00:03.530 **** skipping: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [fedora.linux_system_roles.network : Check if system is ostree] *********** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:12 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.019) 0:00:03.550 **** skipping: [sut] => { "changed": false, "false_condition": "not __network_is_ostree is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Set flag to indicate system is ostree] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:17 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.012) 0:00:03.562 **** skipping: [sut] => { "changed": false, "false_condition": "not __network_is_ostree is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Check which services are running] **** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:21 Wednesday 14 February 2024 00:40:17 +0000 (0:00:00.013) 0:00:03.575 **** ok: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [fedora.linux_system_roles.network : Check which packages are installed] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:26 Wednesday 14 February 2024 00:40:18 +0000 (0:00:00.946) 0:00:04.522 **** ok: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [fedora.linux_system_roles.network : Print network provider] ************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:7 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.831) 0:00:05.354 **** ok: [sut] => {} MSG: Using network provider: nm TASK [fedora.linux_system_roles.network : Abort applying the network state configuration if using the `network_state` variable with the initscripts provider] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:11 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.021) 0:00:05.375 **** skipping: [sut] => { "changed": false, "false_condition": "network_state is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Abort applying the network state configuration if the system version of the managed host is below 8] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:18 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.021) 0:00:05.397 **** skipping: [sut] => { "changed": false, "false_condition": "network_state is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Install packages] ******************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:27 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.022) 0:00:05.420 **** skipping: [sut] => { "changed": false, "false_condition": "not network_packages is subset(ansible_facts.packages.keys())", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Install NetworkManager and nmstate when using network_state variable] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:39 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.050) 0:00:05.470 **** skipping: [sut] => { "changed": false, "false_condition": "network_state is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Install python3-libnmstate when using network_state variable] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:50 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.021) 0:00:05.491 **** skipping: [sut] => { "changed": false, "false_condition": "network_state is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Restart NetworkManager due to wireless or team interfaces] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:62 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.021) 0:00:05.512 **** skipping: [sut] => { "changed": false, "false_condition": "network_allow_restart", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Enable and start NetworkManager] ***** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:75 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.034) 0:00:05.546 **** ok: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [fedora.linux_system_roles.network : Enable and start wpa_supplicant] ***** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:86 Wednesday 14 February 2024 00:40:19 +0000 (0:00:00.423) 0:00:05.970 **** skipping: [sut] => { "changed": false, "false_condition": "__network_wpa_supplicant_required", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Enable network service] ************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:95 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.082) 0:00:06.053 **** skipping: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [fedora.linux_system_roles.network : Ensure initscripts network file dependency is present] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:103 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.019) 0:00:06.073 **** skipping: [sut] => { "changed": false, "false_condition": "network_provider == \"initscripts\"", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Configure networking connection profiles] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:112 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.019) 0:00:06.092 **** changed: [sut] => { "_invocation": { "module_args": { "__debug_flags": "", "__header": "#\n# Ansible managed\n#\n# system_role:network\n", "connections": [ { "ip": { "auto6": false, "dhcp4": false }, "name": "team0", "persistent_state": "present", "type": "team" } ], "force_state_change": false, "ignore_errors": false, "provider": "nm" } }, "changed": true } STDERR: [002] #0, state:None persistent_state:present, 'team0': add connection team0, adf40d75-4969-45f2-9008-6810ac5ce753 TASK [fedora.linux_system_roles.network : Configure networking state] ********** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:124 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.692) 0:00:06.785 **** skipping: [sut] => { "changed": false, "false_condition": "network_state is defined", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.network : Show stderr messages for the network_connections] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:130 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.021) 0:00:06.806 **** ok: [sut] => { "__network_connections_result.stderr_lines": [ "[002] #0, state:None persistent_state:present, 'team0': add connection team0, adf40d75-4969-45f2-9008-6810ac5ce753" ] } TASK [fedora.linux_system_roles.network : Show debug messages for the network_connections] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:134 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.021) 0:00:06.828 **** ok: [sut] => { "__network_connections_result": { "_invocation": { "module_args": { "__debug_flags": "", "__header": "#\n# Ansible managed\n#\n# system_role:network\n", "connections": [ { "ip": { "auto6": false, "dhcp4": false }, "name": "team0", "persistent_state": "present", "type": "team" } ], "force_state_change": false, "ignore_errors": false, "provider": "nm" } }, "changed": true, "failed": false, "stderr": "[002] #0, state:None persistent_state:present, 'team0': add connection team0, adf40d75-4969-45f2-9008-6810ac5ce753\n", "stderr_lines": [ "[002] #0, state:None persistent_state:present, 'team0': add connection team0, adf40d75-4969-45f2-9008-6810ac5ce753" ] } } TASK [fedora.linux_system_roles.network : Show debug messages for the network_state] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:139 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.021) 0:00:06.849 **** skipping: [sut] => { "false_condition": "network_state is defined" } TASK [fedora.linux_system_roles.network : Re-test connectivity] **************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:145 Wednesday 14 February 2024 00:40:20 +0000 (0:00:00.023) 0:00:06.872 **** ok: [sut] => { "changed": false, "ping": "pong" } TASK [Show result] ************************************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/create_team_profile.yml:14 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.203) 0:00:07.076 **** ok: [sut] => { "__network_connections_result": { "_invocation": { "module_args": { "__debug_flags": "", "__header": "#\n# Ansible managed\n#\n# system_role:network\n", "connections": [ { "ip": { "auto6": false, "dhcp4": false }, "name": "team0", "persistent_state": "present", "type": "team" } ], "force_state_change": false, "ignore_errors": false, "provider": "nm" } }, "changed": true, "failed": false, "stderr": "[002] #0, state:None persistent_state:present, 'team0': add connection team0, adf40d75-4969-45f2-9008-6810ac5ce753\n", "stderr_lines": [ "[002] #0, state:None persistent_state:present, 'team0': add connection team0, adf40d75-4969-45f2-9008-6810ac5ce753" ] } } TASK [Asserts] ***************************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:36 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.021) 0:00:07.098 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_profile_present.yml for sut => (item=tasks/assert_profile_present.yml) included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_device_present.yml for sut => (item=tasks/assert_device_present.yml) TASK [Include the task 'get_profile_stat.yml'] ********************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_profile_present.yml:3 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.037) 0:00:07.135 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml for sut TASK [Initialize NM profile exist and ansible_managed comment flag] ************ task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:3 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.031) 0:00:07.167 **** ok: [sut] => { "ansible_facts": { "lsr_net_profile_ansible_managed": false, "lsr_net_profile_exists": false, "lsr_net_profile_fingerprint": false }, "changed": false } TASK [Stat profile file] ******************************************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:9 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.019) 0:00:07.186 **** ok: [sut] => { "changed": false, "stat": { "atime": 1707871220.818815, "block_size": 4096, "blocks": 8, "ctime": 1707871220.4898279, "dev": 51713, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 4416151, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1707871220.4898279, "nlink": 1, "path": "/etc/sysconfig/network-scripts/ifcfg-team0", "pw_name": "root", "readable": true, "rgrp": true, "roth": true, "rusr": true, "size": 139, "uid": 0, "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Set NM profile exist flag based on the profile files] ******************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:17 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.137) 0:00:07.324 **** ok: [sut] => { "ansible_facts": { "lsr_net_profile_exists": true }, "changed": false } TASK [Get NM profile info] ***************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:25 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.019) 0:00:07.344 **** ok: [sut] => { "changed": false, "cmd": "nmcli -f NAME,FILENAME connection show |grep team0 | grep /etc", "delta": "0:00:00.027324", "end": "2024-02-14 00:40:21.485915", "rc": 0, "start": "2024-02-14 00:40:21.458591" } STDOUT: team0 /etc/sysconfig/network-scripts/ifcfg-team0 TASK [Set NM profile exist flag and ansible_managed flag true based on the nmcli output] *** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:35 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.190) 0:00:07.534 **** ok: [sut] => { "ansible_facts": { "lsr_net_profile_ansible_managed": true, "lsr_net_profile_exists": true, "lsr_net_profile_fingerprint": true }, "changed": false } TASK [Get the ansible_managed comment in ifcfg-team0] ************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:49 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.021) 0:00:07.555 **** skipping: [sut] => { "changed": false, "false_condition": "nm_profile_exists.rc != 0", "skip_reason": "Conditional result was False" } TASK [Verify the ansible_managed comment in ifcfg-team0] *********************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:56 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.019) 0:00:07.575 **** skipping: [sut] => { "changed": false, "false_condition": "nm_profile_exists.rc != 0", "skip_reason": "Conditional result was False" } TASK [Get the fingerprint comment in ifcfg-team0] ****************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:62 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.018) 0:00:07.594 **** skipping: [sut] => { "changed": false, "false_condition": "nm_profile_exists.rc != 0", "skip_reason": "Conditional result was False" } TASK [Verify the fingerprint comment in ifcfg-team0] *************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:69 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.019) 0:00:07.613 **** skipping: [sut] => { "changed": false, "false_condition": "nm_profile_exists.rc != 0", "skip_reason": "Conditional result was False" } TASK [Assert that the profile is present - 'team0'] **************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_profile_present.yml:5 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.018) 0:00:07.632 **** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Assert that the ansible managed comment is present in 'team0'] *********** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_profile_present.yml:10 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.022) 0:00:07.654 **** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Assert that the fingerprint comment is present in team0] ***************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_profile_present.yml:15 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.022) 0:00:07.676 **** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Include the task 'get_interface_stat.yml'] ******************************* task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_device_present.yml:3 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.020) 0:00:07.697 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_interface_stat.yml for sut TASK [Get stat for interface team0] ******************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_interface_stat.yml:3 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.028) 0:00:07.726 **** ok: [sut] => { "changed": false, "stat": { "atime": 1707871220.6228228, "block_size": 4096, "blocks": 0, "ctime": 1707871220.6218228, "dev": 18, "device_type": 0, "executable": true, "exists": true, "gid": 0, "gr_name": "root", "inode": 17557, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": true, "isreg": false, "issock": false, "isuid": false, "lnk_source": "/sys/devices/virtual/net/team0", "lnk_target": "../../devices/virtual/net/team0", "mode": "0777", "mtime": 1707871220.6218228, "nlink": 1, "path": "/sys/class/net/team0", "pw_name": "root", "readable": true, "rgrp": true, "roth": true, "rusr": true, "size": 0, "uid": 0, "wgrp": true, "woth": true, "writeable": true, "wusr": true, "xgrp": true, "xoth": true, "xusr": true } } TASK [Assert that the interface is present - 'team0'] ************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/assert_device_present.yml:5 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.139) 0:00:07.865 **** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Conditional asserts] ***************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:42 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.021) 0:00:07.887 **** skipping: [sut] => { "changed": false, "skipped_reason": "No items in the list" } TASK [Success in test 'Create a team interface without any port attached'] ***** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:47 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.025) 0:00:07.912 **** ok: [sut] => {} MSG: +++++ Success in test 'Create a team interface without any port attached' +++++ TASK [Cleanup] ***************************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/run_test.yml:66 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.021) 0:00:07.933 **** included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/cleanup_profile+device.yml for sut => (item=tasks/cleanup_profile+device.yml) included: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/check_network_dns.yml for sut => (item=tasks/check_network_dns.yml) TASK [Cleanup profile and device] ********************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/cleanup_profile+device.yml:3 Wednesday 14 February 2024 00:40:21 +0000 (0:00:00.039) 0:00:07.973 **** fatal: [sut]: FAILED! => { "changed": false, "cmd": "nmcli con delete team0\nnmcli con load /etc/sysconfig/network-scripts/ifcfg-team0\nrm -f /etc/sysconfig/network-scripts/ifcfg-team0\nip link del team0\n", "delta": "0:00:00.092438", "end": "2024-02-14 00:40:22.181942", "rc": 1, "start": "2024-02-14 00:40:22.089504" } STDOUT: Connection 'team0' (adf40d75-4969-45f2-9008-6810ac5ce753) successfully deleted. STDERR: Could not load file '/etc/sysconfig/network-scripts/ifcfg-team0' Cannot find device "team0" MSG: non-zero return code ...ignoring TASK [Check routes and DNS] **************************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/check_network_dns.yml:6 Wednesday 14 February 2024 00:40:22 +0000 (0:00:00.230) 0:00:08.204 **** ok: [sut] => { "changed": false, "cmd": "set -euo pipefail\necho IP\nip a\necho IP ROUTE\nip route\necho IP -6 ROUTE\nip -6 route\necho RESOLV\nif [ -f /etc/resolv.conf ]; then\n cat /etc/resolv.conf\nelse\n echo NO /etc/resolv.conf\n ls -alrtF /etc/resolv.* || :_\nfi\n", "delta": "0:00:00.008406", "end": "2024-02-14 00:40:22.327964", "rc": 0, "start": "2024-02-14 00:40:22.319558" } STDOUT: IP 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 0a:a6:0e:73:96:7d brd ff:ff:ff:ff:ff:ff inet 10.31.12.74/22 brd 10.31.15.255 scope global noprefixroute dynamic eth0 valid_lft 2689sec preferred_lft 2689sec inet6 fe80::8a6:eff:fe73:967d/64 scope link valid_lft forever preferred_lft forever 13: bond0: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:f6:b5:f5:d5:89 brd ff:ff:ff:ff:ff:ff 73: rpltstbr: mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 26:55:04:27:e5:1a brd ff:ff:ff:ff:ff:ff inet 192.0.2.72/31 brd 192.0.2.73 scope global noprefixroute rpltstbr valid_lft forever preferred_lft forever inet6 fe80::2455:4ff:fe27:e51a/64 scope link valid_lft forever preferred_lft forever IP ROUTE default via 10.31.12.1 dev eth0 proto dhcp metric 100 10.31.12.0/22 dev eth0 proto kernel scope link src 10.31.12.74 metric 100 192.0.2.72/31 dev rpltstbr proto kernel scope link src 192.0.2.72 metric 425 IP -6 ROUTE unreachable ::/96 dev lo metric 1024 error -113 pref medium unreachable ::ffff:0.0.0.0/96 dev lo metric 1024 error -113 pref medium unreachable 2002:a00::/24 dev lo metric 1024 error -113 pref medium unreachable 2002:7f00::/24 dev lo metric 1024 error -113 pref medium unreachable 2002:a9fe::/32 dev lo metric 1024 error -113 pref medium unreachable 2002:ac10::/28 dev lo metric 1024 error -113 pref medium unreachable 2002:c0a8::/32 dev lo metric 1024 error -113 pref medium unreachable 2002:e000::/19 dev lo metric 1024 error -113 pref medium unreachable 3ffe:ffff::/32 dev lo metric 1024 error -113 pref medium fe80::/64 dev eth0 proto kernel metric 256 mtu 9001 pref medium fe80::/64 dev rpltstbr proto kernel metric 256 pref medium RESOLV # Generated by NetworkManager search us-east-1.aws.redhat.com testing-farm nameserver 10.29.169.13 nameserver 10.29.170.12 nameserver 10.2.32.1 TASK [Verify DNS and ping still work] ****************************************** task path: /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/check_network_dns.yml:24 Wednesday 14 February 2024 00:40:22 +0000 (0:00:00.145) 0:00:08.350 **** skipping: [sut] => { "changed": false, "false_condition": "ansible_facts[\"distribution\"] == \"CentOS\"", "skip_reason": "Conditional result was False" } PLAY RECAP ********************************************************************* sut : ok=56 changed=1 unreachable=0 failed=0 skipped=23 rescued=0 ignored=2 Wednesday 14 February 2024 00:40:22 +0000 (0:00:00.072) 0:00:08.423 **** =============================================================================== fedora.linux_system_roles.network : Check which services are running ---- 0.95s /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:21 fedora.linux_system_roles.network : Check which packages are installed --- 0.83s /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/set_facts.yml:26 Gathering Facts --------------------------------------------------------- 0.80s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tests_team_nm.yml:6 ----------- fedora.linux_system_roles.network : Configure networking connection profiles --- 0.69s /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:112 Gathering Facts --------------------------------------------------------- 0.57s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tests_team.yml:3 ---- Install yum-utils package ----------------------------------------------- 0.45s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:24 ------ fedora.linux_system_roles.network : Enable and start NetworkManager ----- 0.42s /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:75 Enable EPEL 7 ----------------------------------------------------------- 0.34s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:30 ------ Gather the minimum subset of ansible_facts required by the network role test --- 0.25s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:3 ----- Cleanup profile and device ---------------------------------------------- 0.23s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/cleanup_profile+device.yml:3 fedora.linux_system_roles.network : Re-test connectivity ---------------- 0.20s /WORKDIR/git-bond_options_rewriteof6bsqfn/.collection/ansible_collections/fedora/linux_system_roles/roles/network/tasks/main.yml:145 Get NM profile info ----------------------------------------------------- 0.19s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:25 Create EPEL 7 ----------------------------------------------------------- 0.19s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/enable_epel.yml:8 ------- Check if system is ostree ----------------------------------------------- 0.19s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/tasks/el_repo_setup.yml:17 ---- Check routes and DNS ---------------------------------------------------- 0.15s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/check_network_dns.yml:6 Remove test interface if necessary -------------------------------------- 0.14s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/delete_interface.yml:3 Get stat for interface team0 -------------------------------------------- 0.14s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_interface_stat.yml:3 Stat profile file ------------------------------------------------------- 0.14s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_profile_stat.yml:9 Gather current interface info ------------------------------------------- 0.13s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_current_interfaces.yml:3 Get stat for interface team0 -------------------------------------------- 0.13s /WORKDIR/git-bond_options_rewriteof6bsqfn/tests/playbooks/tasks/get_interface_stat.yml:3 ---^---^---^---^---^--- # STDERR: ---v---v---v---v---v--- [DEPRECATION WARNING]: ANSIBLE_COLLECTIONS_PATHS option, does not fit var naming standard, use the singular form ANSIBLE_COLLECTIONS_PATH instead. This feature will be removed from ansible-core in version 2.19. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg. ---^---^---^---^---^---