mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-08 14:22:46 +00:00
eos_static_route DI module (#32587)
* eos_static_route DI module Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Integration test Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Add net_static_route test Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Validate ip address Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
@@ -103,6 +103,15 @@
|
||||
failed_modules: "{{ failed_modules }} + [ 'eos_logging' ]"
|
||||
test_failed: true
|
||||
|
||||
- block:
|
||||
- include_role:
|
||||
name: eos_static_route
|
||||
when: "limit_to in ['*', 'eos_static_route']"
|
||||
rescue:
|
||||
- set_fact:
|
||||
failed_modules: "{{ failed_modules }} + [ 'eos_static_route' ]"
|
||||
test_failed: true
|
||||
|
||||
|
||||
|
||||
###########
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
---
|
||||
testcase: "*"
|
||||
test_items: []
|
||||
2
test/integration/targets/eos_static_route/meta/main.yaml
Normal file
2
test/integration/targets/eos_static_route/meta/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- prepare_eos_tests
|
||||
15
test/integration/targets/eos_static_route/tasks/cli.yaml
Normal file
15
test/integration/targets/eos_static_route/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'] }
|
||||
114
test/integration/targets/eos_static_route/tests/cli/basic.yaml
Normal file
114
test/integration/targets/eos_static_route/tests/cli/basic.yaml
Normal file
@@ -0,0 +1,114 @@
|
||||
---
|
||||
- debug: msg="START cli/basic.yaml"
|
||||
|
||||
- name: setup - remove config used in test
|
||||
eos_config:
|
||||
lines:
|
||||
- no ip route 192.168.3.0/24 192.168.0.1
|
||||
- no ip route 192.168.4.0/24 192.168.0.1
|
||||
- no ip route 192.168.5.0/24 192.168.0.1
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure static route
|
||||
eos_static_route: &single_route
|
||||
address: 192.168.3.0/24
|
||||
next_hop: 192.168.0.1
|
||||
admin_distance: 2
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'ip route 192.168.3.0/24 192.168.0.1 2' in result.commands"
|
||||
|
||||
- name: configure static route(Idempotence)
|
||||
eos_static_route: *single_route
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: delete static route
|
||||
eos_static_route: &delete_single
|
||||
address: 192.168.3.0/24
|
||||
next_hop: 192.168.0.1
|
||||
admin_distance: 2
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
state: absent
|
||||
regiser: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'no ip route 192.168.3.0/24 192.168.0.1' in result.commands"
|
||||
|
||||
- name: delete static route
|
||||
eos_static_route: *delete_single
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: configure static routes using aggregate
|
||||
eos_static_route: &configure_aggregate
|
||||
aggregate:
|
||||
- { address: 192.168.4.0/24, next_hop: 192.168.0.1 }
|
||||
- { address: 192.168.5.0/24, next_hop: 192.168.0.1 }
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'ip route 192.168.4.0/24 192.168.0.1 1' in result.commands"
|
||||
- "'ip route 192.168.5.0/24 192.168.0.1 1' in result.commands"
|
||||
|
||||
- name: configure static routes using aggregate(Idemporence)
|
||||
eos_static_route: *configure_aggregate
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: delete static routes using aggregate
|
||||
eos_static_route: &delete_aggregate
|
||||
aggregate:
|
||||
- { address: 192.168.4.0/24, next_hop: 192.168.0.1 }
|
||||
- { address: 192.168.5.0/24, next_hop: 192.168.0.1 }
|
||||
authorize: yes
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'no ip route 192.168.4.0/24 192.168.0.1' in result.commands"
|
||||
- "'no ip route 192.168.5.0/24 192.168.0.1' in result.commands"
|
||||
|
||||
- name: delete static routes using aggregate(Idempotence)
|
||||
eos_static_route: *delete_aggregate
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: teardown
|
||||
eos_config:
|
||||
lines:
|
||||
- no ip route 192.168.3.0/24 192.168.0.1
|
||||
- no ip route 192.168.4.0/24 192.168.0.1
|
||||
- no ip route 192.168.5.0/24 192.168.0.1
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- debug: msg="END cli/basic.yaml"
|
||||
@@ -7,3 +7,6 @@
|
||||
|
||||
- include: "{{ role_path }}/tests/vyos/basic.yaml"
|
||||
when: hostvars[inventory_hostname]['ansible_network_os'] == 'vyos'
|
||||
|
||||
- include: "{{ role_path }}/tests/eos/basic.yaml"
|
||||
when: hostvars[inventory_hostname]['ansible_network_os'] == 'eos'
|
||||
|
||||
102
test/integration/targets/net_static_route/tests/eos/basic.yaml
Normal file
102
test/integration/targets/net_static_route/tests/eos/basic.yaml
Normal file
@@ -0,0 +1,102 @@
|
||||
---
|
||||
- name: setup - remove config used in test
|
||||
net_static_route:
|
||||
aggregate:
|
||||
- { address: 192.168.3.0/24, next_hop: 192.168.0.1 }
|
||||
- { address: 192.168.4.0/24, next_hop: 192.168.0.1 }
|
||||
- { address: 192.168.5.0/24, next_hop: 192.168.0.1 }
|
||||
authorize: yes
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
|
||||
- name: configure static route
|
||||
net_static_route: &single_route
|
||||
address: 192.168.3.0/24
|
||||
next_hop: 192.168.0.1
|
||||
admin_distance: 2
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'ip route 192.168.3.0/24 192.168.0.1 2' in result.commands"
|
||||
|
||||
- name: configure static route(Idempotence)
|
||||
net_static_route: *single_route
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: delete static route
|
||||
net_static_route: &delete_single
|
||||
address: 192.168.3.0/24
|
||||
next_hop: 192.168.0.1
|
||||
admin_distance: 2
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
state: absent
|
||||
regiser: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'no ip route 192.168.3.0/24 192.168.0.1' in result.commands"
|
||||
|
||||
- name: delete static route
|
||||
net_static_route: *delete_single
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: configure static routes using aggregate
|
||||
net_static_route: &configure_aggregate
|
||||
aggregate:
|
||||
- { address: 192.168.4.0/24, next_hop: 192.168.0.1 }
|
||||
- { address: 192.168.5.0/24, next_hop: 192.168.0.1 }
|
||||
authorize: yes
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'ip route 192.168.4.0/24 192.168.0.1 1' in result.commands"
|
||||
- "'ip route 192.168.5.0/24 192.168.0.1 1' in result.commands"
|
||||
|
||||
- name: configure static routes using aggregate(Idemporence)
|
||||
net_static_route: *configure_aggregate
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: delete static routes using aggregate
|
||||
net_static_route: &delete_aggregate
|
||||
aggregate:
|
||||
- { address: 192.168.4.0/24, next_hop: 192.168.0.1 }
|
||||
- { address: 192.168.5.0/24, next_hop: 192.168.0.1 }
|
||||
authorize: yes
|
||||
state: absent
|
||||
provider: "{{ cli }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
- "'no ip route 192.168.4.0/24 192.168.0.1' in result.commands"
|
||||
- "'no ip route 192.168.5.0/24 192.168.0.1' in result.commands"
|
||||
|
||||
- name: delete static routes using aggregate(Idempotence)
|
||||
net_static_route: *delete_aggregate
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
Reference in New Issue
Block a user