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:
Trishna Guha
2017-11-07 11:13:03 +00:00
committed by GitHub
parent 1857d11034
commit 48ab1a1334
10 changed files with 487 additions and 0 deletions

View File

@@ -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
###########

View File

@@ -0,0 +1,3 @@
---
testcase: "*"
test_items: []

View File

@@ -0,0 +1,2 @@
dependencies:
- prepare_eos_tests

View 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

View File

@@ -0,0 +1,2 @@
---
- { include: cli.yaml, tags: ['cli'] }

View 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"

View File

@@ -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'

View 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"