mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 21:00:22 -07:00
Add eos_interface module (#34258)
* Add eos_interface module * Implementation of eos_interface module * Intergration test for eos_interface module * Minor fix in eos_l3_interface module * Minor fix in ios_interface integration test * Fix CI issues * Fix more CI issues
This commit is contained in:
parent
747682fa53
commit
a3c185bfa8
13 changed files with 1332 additions and 2 deletions
245
test/integration/targets/eos_interface/tests/cli/basic.yaml
Normal file
245
test/integration/targets/eos_interface/tests/cli/basic.yaml
Normal file
|
@ -0,0 +1,245 @@
|
|||
---
|
||||
- debug: msg="START eos_interface cli/basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: Set test interface
|
||||
set_fact:
|
||||
test_interface_1: ethernet1
|
||||
test_interface_2: ethernet2
|
||||
|
||||
- name: Configure interface (setup)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-1
|
||||
mtu: 1800
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- name: Configure interface
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"description test-interface-initial" in result.commands'
|
||||
|
||||
- name: Confgure interface (idempotent)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Confgure interface parameters
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface
|
||||
mtu: 2000
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"description test-interface" in result.commands'
|
||||
- '"mtu 2000" in result.commands'
|
||||
|
||||
- name: Change interface parameters
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-1
|
||||
mtu: 1800
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"description test-interface-1" in result.commands'
|
||||
- '"mtu 1800" in result.commands'
|
||||
|
||||
- name: Disable interface
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: False
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"shutdown" in result.commands'
|
||||
|
||||
- name: Enable interface
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: True
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"no shutdown" in result.commands'
|
||||
|
||||
- name: Confgure second interface (setup)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_2 }}"
|
||||
description: test-interface-initial
|
||||
mtu: 1800
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- name: Add interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}", mtu: 2000, description: test-interface-1 }
|
||||
- { name: "{{ test_interface_2 }}", mtu: 2000, description: test-interface-2 }
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"mtu 2000" in result.commands'
|
||||
- '"interface {{ test_interface_2 }}" in result.commands'
|
||||
- '"description test-interface-2" in result.commands'
|
||||
- '"mtu 2000" in result.commands'
|
||||
|
||||
- name: Add interface aggregate (idempotent)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}", mtu: 2000, description: test-interface-1 }
|
||||
- { name: "{{ test_interface_2 }}", mtu: 2000, description: test-interface-2 }
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Disable interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}" }
|
||||
- { name: "{{ test_interface_2 }}" }
|
||||
enabled: False
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"shutdown" in result.commands'
|
||||
- '"interface {{ test_interface_2 }}" in result.commands'
|
||||
- '"shutdown" in result.commands'
|
||||
|
||||
- name: Enable interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}" }
|
||||
- { name: "{{ test_interface_2 }}" }
|
||||
enabled: True
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"no shutdown" in result.commands'
|
||||
- '"interface {{ test_interface_2 }}" in result.commands'
|
||||
- '"no shutdown" in result.commands'
|
||||
|
||||
- name: loopback interface setup
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: Create loopback interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface loopback9" in result.commands'
|
||||
- '"interface loopback10" in result.commands'
|
||||
|
||||
- name: Delete loopback interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"no interface loopback9" in result.commands'
|
||||
- '"no interface loopback10" in result.commands'
|
||||
|
||||
- name: Delete loopback interface aggregate (idempotent)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- debug: msg="END eos_interface cli/basic.yaml on connection={{ ansible_connection }}"
|
161
test/integration/targets/eos_interface/tests/cli/intent.yaml
Normal file
161
test/integration/targets/eos_interface/tests/cli/intent.yaml
Normal file
|
@ -0,0 +1,161 @@
|
|||
---
|
||||
- debug: msg="START eos_interface cli/intent.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: Set test interface
|
||||
set_fact:
|
||||
test_interface_1: ethernet1
|
||||
test_interface_2: ethernet2
|
||||
|
||||
- name: Check intent arguments
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
state: up
|
||||
tx_rate: ge(0)
|
||||
rx_rate: ge(0)
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Check intent arguments (failed condition)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
state: down
|
||||
tx_rate: gt(0)
|
||||
rx_rate: lt(0)
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(down)' in result.failed_conditions"
|
||||
- "'tx_rate gt(0)' in result.failed_conditions"
|
||||
- "'rx_rate lt(0)' in result.failed_conditions"
|
||||
|
||||
- name: Config + intent
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: False
|
||||
state: down
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Config + intent (fail)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: False
|
||||
authorize: yes
|
||||
state: up
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(up)' in result.failed_conditions"
|
||||
|
||||
- name: Register show neighbors detail
|
||||
eos_command:
|
||||
commands:
|
||||
- show lldp neighbors management1
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: show_lldp_neighbors_result
|
||||
|
||||
- block:
|
||||
- name: Check neighbors intent arguments
|
||||
eos_interface:
|
||||
name: management1
|
||||
neighbors:
|
||||
- port: eth0
|
||||
host: an-vyos-02
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Check neighbors intent arguments (failed condition)
|
||||
eos_interface:
|
||||
name: management1
|
||||
neighbors:
|
||||
- port: dummy_port
|
||||
host: dummy_host
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'host dummy_host' in result.failed_conditions"
|
||||
- "'port dummy_port' in result.failed_conditions"
|
||||
when: '"an-vyos-02" in show_lldp_neighbors_result.stdout[0]'
|
||||
|
||||
- name: Aggregate config + intent (pass)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: "{{ test_interface_1 }}"
|
||||
enabled: True
|
||||
state: up
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- block:
|
||||
- name: Aggregate neighbors intent (pass)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: management1
|
||||
neighbors:
|
||||
- port: eth0
|
||||
host: an-vyos-02
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Aggregate neighbors intent (fail)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: management1
|
||||
neighbors:
|
||||
- port: eth0
|
||||
host: an-vyos-02
|
||||
- port: dummy_port
|
||||
host: dummy_host
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'host dummy_host' in result.failed_conditions"
|
||||
- "'port dummy_port' in result.failed_conditions"
|
||||
when: "'an-vyos-02' in show_lldp_neighbors_result.stdout[0]"
|
245
test/integration/targets/eos_interface/tests/eapi/basic.yaml
Normal file
245
test/integration/targets/eos_interface/tests/eapi/basic.yaml
Normal file
|
@ -0,0 +1,245 @@
|
|||
---
|
||||
- debug: msg="START eos_interface eapi/basic.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: Set test interface
|
||||
set_fact:
|
||||
test_interface_1: ethernet1
|
||||
test_interface_2: ethernet2
|
||||
|
||||
- name: Configure interface (setup)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-1
|
||||
mtu: 1800
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- name: Configure interface
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"description test-interface-initial" in result.commands'
|
||||
|
||||
- name: Confgure interface (idempotent)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-initial
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Confgure interface parameters
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface
|
||||
mtu: 2000
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"description test-interface" in result.commands'
|
||||
- '"mtu 2000" in result.commands'
|
||||
|
||||
- name: Change interface parameters
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
description: test-interface-1
|
||||
mtu: 1800
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"description test-interface-1" in result.commands'
|
||||
- '"mtu 1800" in result.commands'
|
||||
|
||||
- name: Disable interface
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: False
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"shutdown" in result.commands'
|
||||
|
||||
- name: Enable interface
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: True
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"no shutdown" in result.commands'
|
||||
|
||||
- name: Confgure second interface (setup)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_2 }}"
|
||||
description: test-interface-initial
|
||||
mtu: 1800
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- name: Add interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}", mtu: 2000, description: test-interface-1 }
|
||||
- { name: "{{ test_interface_2 }}", mtu: 2000, description: test-interface-2 }
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"mtu 2000" in result.commands'
|
||||
- '"interface {{ test_interface_2 }}" in result.commands'
|
||||
- '"description test-interface-2" in result.commands'
|
||||
- '"mtu 2000" in result.commands'
|
||||
|
||||
- name: Add interface aggregate (idempotent)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}", mtu: 2000, description: test-interface-1 }
|
||||
- { name: "{{ test_interface_2 }}", mtu: 2000, description: test-interface-2 }
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Disable interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}" }
|
||||
- { name: "{{ test_interface_2 }}" }
|
||||
enabled: False
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"shutdown" in result.commands'
|
||||
- '"interface {{ test_interface_2 }}" in result.commands'
|
||||
- '"shutdown" in result.commands'
|
||||
|
||||
- name: Enable interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- { name: "{{ test_interface_1 }}" }
|
||||
- { name: "{{ test_interface_2 }}" }
|
||||
enabled: True
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface {{ test_interface_1 }}" in result.commands'
|
||||
- '"no shutdown" in result.commands'
|
||||
- '"interface {{ test_interface_2 }}" in result.commands'
|
||||
- '"no shutdown" in result.commands'
|
||||
|
||||
- name: loopback interface setup
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
|
||||
- name: Create loopback interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: present
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"interface loopback9" in result.commands'
|
||||
- '"interface loopback10" in result.commands'
|
||||
|
||||
- name: Delete loopback interface aggregate
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"no interface loopback9" in result.commands'
|
||||
- '"no interface loopback10" in result.commands'
|
||||
|
||||
- name: Delete loopback interface aggregate (idempotent)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: loopback9
|
||||
- name: loopback10
|
||||
state: absent
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- debug: msg="END eos_interface eapi/basic.yaml on connection={{ ansible_connection }}"
|
161
test/integration/targets/eos_interface/tests/eapi/intent.yaml
Normal file
161
test/integration/targets/eos_interface/tests/eapi/intent.yaml
Normal file
|
@ -0,0 +1,161 @@
|
|||
---
|
||||
- debug: msg="START eos_interface eapi/intent.yaml on connection={{ ansible_connection }}"
|
||||
|
||||
- name: Set test interface
|
||||
set_fact:
|
||||
test_interface_1: ethernet1
|
||||
test_interface_2: ethernet2
|
||||
|
||||
- name: Check intent arguments
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
state: up
|
||||
tx_rate: ge(0)
|
||||
rx_rate: ge(0)
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Check intent arguments (failed condition)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
state: down
|
||||
tx_rate: gt(0)
|
||||
rx_rate: lt(0)
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(down)' in result.failed_conditions"
|
||||
- "'tx_rate gt(0)' in result.failed_conditions"
|
||||
- "'rx_rate lt(0)' in result.failed_conditions"
|
||||
|
||||
- name: Config + intent
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: False
|
||||
state: down
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Config + intent (fail)
|
||||
eos_interface:
|
||||
name: "{{ test_interface_1 }}"
|
||||
enabled: False
|
||||
authorize: yes
|
||||
state: up
|
||||
provider: "{{ eapi }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(up)' in result.failed_conditions"
|
||||
|
||||
- name: Register show neighbors detail
|
||||
eos_command:
|
||||
commands:
|
||||
- show lldp neighbors management1
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: show_lldp_neighbors_result
|
||||
|
||||
- block:
|
||||
- name: Check neighbors intent arguments
|
||||
eos_interface:
|
||||
name: management1
|
||||
neighbors:
|
||||
- port: eth0
|
||||
host: an-vyos-02
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Check neighbors intent arguments (failed condition)
|
||||
eos_interface:
|
||||
name: management1
|
||||
neighbors:
|
||||
- port: dummy_port
|
||||
host: dummy_host
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'host dummy_host' in result.failed_conditions"
|
||||
- "'port dummy_port' in result.failed_conditions"
|
||||
when: '"an-vyos-02" in show_lldp_neighbors_result.stdout[0]'
|
||||
|
||||
- name: Aggregate config + intent (pass)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: "{{ test_interface_1 }}"
|
||||
enabled: True
|
||||
state: up
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- block:
|
||||
- name: Aggregate neighbors intent (pass)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: management1
|
||||
neighbors:
|
||||
- port: eth0
|
||||
host: an-vyos-02
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Aggregate neighbors intent (fail)
|
||||
eos_interface:
|
||||
aggregate:
|
||||
- name: management1
|
||||
neighbors:
|
||||
- port: eth0
|
||||
host: an-vyos-02
|
||||
- port: dummy_port
|
||||
host: dummy_host
|
||||
authorize: yes
|
||||
provider: "{{ eapi }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'host dummy_host' in result.failed_conditions"
|
||||
- "'port dummy_port' in result.failed_conditions"
|
||||
when: "'an-vyos-02' in show_lldp_neighbors_result.stdout[0]"
|
Loading…
Add table
Add a link
Reference in a new issue