mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Add vyos_l3_interface module (#26610)
* Add vyos_l3_interface module * Add integration tests for vyos_l3_interface * Add more corner cases in tests and fix multiple IPs logic
This commit is contained in:
parent
10fc4417f7
commit
3f5736e14e
6 changed files with 444 additions and 0 deletions
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
testcase: "*"
|
||||
test_items: []
|
15
test/integration/targets/vyos_l3_interface/tasks/cli.yaml
Normal file
15
test/integration/targets/vyos_l3_interface/tasks/cli.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
- name: collect all cli test cases
|
||||
find:
|
||||
paths: "{{ role_path }}/tests/cli"
|
||||
patterns: "{{ testcase }}.yaml"
|
||||
register: test_cases
|
||||
|
||||
- name: set test_items
|
||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||
|
||||
- name: run test case
|
||||
include: "{{ test_case_to_run }}"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
195
test/integration/targets/vyos_l3_interface/tests/cli/basic.yaml
Normal file
195
test/integration/targets/vyos_l3_interface/tests/cli/basic.yaml
Normal file
|
@ -0,0 +1,195 @@
|
|||
---
|
||||
- name: Remove IP address
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
state: absent
|
||||
|
||||
- name: Remove IP address
|
||||
vyos_l3_interface:
|
||||
name: eth2
|
||||
state: absent
|
||||
|
||||
- name: Set IPv4 address
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv4: 192.168.2.10/24
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"set interfaces ethernet eth1 address 192.168.2.10/24" in result.commands'
|
||||
|
||||
- name: Set IPv4 address (idempotent)
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv4: 192.168.2.10/24
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Set IPv6 address
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv6: fd5d:12c9:2201:1::1/64
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"set interfaces ethernet eth1 address fd5d:12c9:2201:1::1/64" in result.commands'
|
||||
|
||||
- name: Set IPv6 address (idempotent)
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv6: fd5d:12c9:2201:1::1/64
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Remove all IP addresses
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"delete interfaces ethernet eth1 address" in result.commands'
|
||||
|
||||
- name: Remove all IP addresses again (idempotent)
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Set IPv4 and IPv6 address
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv4: 192.168.2.10/24
|
||||
ipv6: fd5d:12c9:2201:1::1/64
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"set interfaces ethernet eth1 address 192.168.2.10/24" in result.commands'
|
||||
- '"set interfaces ethernet eth1 address fd5d:12c9:2201:1::1/64" in result.commands'
|
||||
|
||||
- name: Set IPv4 and IPv6 address again (idempotent)
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv4: 192.168.2.10/24
|
||||
ipv6: fd5d:12c9:2201:1::1/64
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Remove IPv4 address
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv4: 192.168.2.10/24
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"delete interfaces ethernet eth1 address 192.168.2.10/24" in result.commands'
|
||||
|
||||
- name: Remove IPv4 address again (idempotent)
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv4: 192.168.2.10/24
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Remove IPv6 address
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv6: fd5d:12c9:2201:1::1/64
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"delete interfaces ethernet eth1 address fd5d:12c9:2201:1::1/64" in result.commands'
|
||||
|
||||
- name: Remove IPv6 address again (idempotent)
|
||||
vyos_l3_interface:
|
||||
name: eth1
|
||||
ipv6: fd5d:12c9:2201:1::1/64
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Set IP addresses on aggregate
|
||||
vyos_l3_interface:
|
||||
aggregate:
|
||||
- { name: eth1, ipv4: 192.168.2.10/24 }
|
||||
- { name: eth2, ipv4: 192.168.3.10/24, ipv6: "fd5d:12c9:2201:1::1/64" }
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"set interfaces ethernet eth1 address 192.168.2.10/24" in result.commands'
|
||||
- '"set interfaces ethernet eth2 address 192.168.3.10/24" in result.commands'
|
||||
- '"set interfaces ethernet eth2 address fd5d:12c9:2201:1::1/64" in result.commands'
|
||||
|
||||
- name: Set IP addresses on aggregate (idempotent)
|
||||
vyos_l3_interface:
|
||||
aggregate:
|
||||
- { name: eth1, ipv4: 192.168.2.10/24 }
|
||||
- { name: eth2, ipv4: 192.168.3.10/24, ipv6: "fd5d:12c9:2201:1::1/64" }
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
||||
|
||||
- name: Remove IP addresses on aggregate
|
||||
vyos_l3_interface:
|
||||
aggregate:
|
||||
- { name: eth1, ipv4: 192.168.2.10/24 }
|
||||
- { name: eth2, ipv4: 192.168.3.10/24, ipv6: "fd5d:12c9:2201:1::1/64" }
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == true'
|
||||
- '"delete interfaces ethernet eth1 address 192.168.2.10/24" in result.commands'
|
||||
- '"delete interfaces ethernet eth2 address 192.168.3.10/24" in result.commands'
|
||||
- '"delete interfaces ethernet eth2 address fd5d:12c9:2201:1::1/64" in result.commands'
|
||||
|
||||
- name: Remove IP addresses on aggregate (idempotent)
|
||||
vyos_l3_interface:
|
||||
aggregate:
|
||||
- { name: eth1, ipv4: 192.168.2.10/24 }
|
||||
- { name: eth2, ipv4: 192.168.3.10/24, ipv6: "fd5d:12c9:2201:1::1/64" }
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- 'result.changed == false'
|
|
@ -56,6 +56,13 @@
|
|||
rescue:
|
||||
- set_fact: test_failed=true
|
||||
|
||||
- block:
|
||||
- include_role:
|
||||
name: vyos_l3_interface
|
||||
when: "limit_to in ['*', 'vyos_l3_interface']"
|
||||
rescue:
|
||||
- set_fact: test_failed=true
|
||||
|
||||
|
||||
###########
|
||||
- name: Has any previous test failed?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue