---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later

- name:
  set_fact:
    interfaces_testfile: '{{ remote_tmp_dir }}/interfaces'
    interfaces_testfile_3841: '{{ remote_tmp_dir }}/interfaces_3841'

- name: Copy interfaces file
  copy:
    src: 'files/interfaces_ff'
    dest: '{{ interfaces_testfile }}'

- name: Change IP address to 1.2.3.5
  community.general.interfaces_file:
    dest: "{{ interfaces_testfile }}"
    iface: eno1
    option: address
    value: 1.2.3.5
  register: ifile_1

- assert:
    that:
    - ifile_1 is changed

- name: Change IP address to 1.2.3.5 again
  community.general.interfaces_file:
    dest: "{{ interfaces_testfile }}"
    iface: eno1
    option: address
    value: 1.2.3.5
  register: ifile_2

- assert:
    that:
    - ifile_2 is not changed

- name: 3841 - copy interfaces file
  copy:
    src: 'files/interfaces_ff_3841'
    dest: '{{ interfaces_testfile_3841 }}'

- name: 3841 - floating_ip_interface_up_ip 2a01:a:b:c::1/64 dev eth0
  interfaces_file:
    option: up
    iface: eth0
    dest: "{{ interfaces_testfile_3841 }}"
    value: 'ip addr add 2a01:a:b:c::1/64 dev eth0'
    state: present
  register: ifile_3841_a

- name: 3841 - floating_ip_interface_up_ip 2a01:a:b:c::1/64 dev eth0 (again)
  interfaces_file:
    option: up
    iface: eth0
    dest: "{{ interfaces_testfile_3841 }}"
    value: 'ip addr add 2a01:a:b:c::1/64 dev eth0'
    state: present
  register: ifile_3841_b

- name: 3841 - check assertions
  assert:
    that:
      - ifile_3841_a is changed
      - ifile_3841_b is not changed
