# SPDX-License-Identifier: BSD-3-Clause
# This file was generated by ensure_provider_tests.py
---
- name: Test change indication on repeat run
  hosts: all
  vars:
    interface: testnic1
    type: veth
  tasks:
    - name: Determine if system is ostree and set flag
      when: not __network_is_ostree is defined
      block:
        - name: Check if system is ostree
          stat:
            path: /run/ostree-booted
          register: __ostree_booted_stat

        - name: Set flag to indicate system is ostree
          set_fact:
            __network_is_ostree: "{{ __ostree_booted_stat.stat.exists }}"
    - name: Include the task 'manage_test_interface.yml'
      include_tasks: tasks/manage_test_interface.yml
      vars:
        state: present
    - name: Include the task 'assert_device_present.yml'
      include_tasks: tasks/assert_device_present.yml
    - name: Test change indication on repeat run
      block:
        - name: Configure the static IPv4 address for ethernet device
          vars:
            network_connections:
              - name: "{{ interface }}"
                state: up
                type: ethernet
                ip:
                  address:
                    - 192.0.2.2/24
          block:
            - name: Include the network role
              include_role:
                name: linux-system-roles.network
              register: __network_connections_result
            - name: Assert change:true
              assert:
                that: __network_connections_result is changed
            - name: Include the network role
              include_role:
                name: linux-system-roles.network
              register: __network_connections_result
            - name: Assert change:false
              assert:
                that: not __network_connections_result is changed
        - name: Configure the ethernet device without enabling the IPv4 and IPv6
          vars:
            network_connections:
              - name: "{{ interface }}"
                state: up
                type: ethernet
                ip:
                  dhcp4: "no"
                  auto6: "no"
          block:
            - name: Include the network role
              include_role:
                name: linux-system-roles.network
              register: __network_connections_result
            - name: Assert change:true
              assert:
                that: __network_connections_result is changed
            - name: Include the network role
              include_role:
                name: linux-system-roles.network
              register: __network_connections_result
            - name: Assert change:false
              assert:
                that: not __network_connections_result is changed
      always:
        - name: Clean up the test device and the connection profile
          tags:
            - "tests::cleanup"
          block:
            - name: Include the network role
              include_role:
                name: linux-system-roles.network
              vars:
                network_connections:
                  - name: "{{ interface }}"
                    persistent_state: absent
                    state: down
              ignore_errors: true  # noqa ignore-errors
            - name: Include the task 'manage_test_interface.yml'
              include_tasks: tasks/manage_test_interface.yml
              vars:
                state: absent
