Add integration tests for nxos_facts, nxos_bgp, nxos_bgp_af, nxos_bgp_neighbor, and nxos_evpn_global (#26924)

* Add new ITs for nxos_bgp, nxos_bgp_af, nxos_bgp_neighbor, and nxos_evpn_global

* Add nxos_facts IT and enhance existing tests

* switch nxos_feature tests to use bgp

* misc. test fixes

* Add checks for titanium in IT

* Handle non-titanium case in tests
This commit is contained in:
rahushen 2017-08-10 05:29:13 -04:00 committed by Nathaniel Case
commit 85fc4c67ef
37 changed files with 1509 additions and 128 deletions

View file

@ -0,0 +1,2 @@
---
testcase: "*"

View file

@ -0,0 +1,2 @@
dependencies:
- prepare_nxos_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,3 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: nxapi.yaml, tags: ['nxapi'] }

View file

@ -0,0 +1,28 @@
---
- name: collect all nxapi test cases
find:
paths: "{{ role_path }}/tests/nxapi"
patterns: "{{ testcase }}.yaml"
register: test_cases
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: enable nxapi
nxos_config:
lines:
- feature nxapi
- nxapi http port 80
provider: "{{ cli }}"
- name: run test case
include: "{{ test_case_to_run }}"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
- name: disable nxapi
nxos_config:
lines:
- no feature nxapi
provider: "{{ cli }}"

View file

@ -0,0 +1,203 @@
---
- debug: msg="START TRANSPORT:CLI nxos_bgp_neighbor sanity test"
- set_fact: intname="{{ nxos_int1 }}"
- set_fact: log_neighbor_changes="enable"
when: (titanium is defined) and not ((titanium | search('true')))
- set_fact: remove_private_as="all"
when: (titanium is defined) and not ((titanium | search('true')))
- name: "Enable feature BGP"
nxos_feature:
feature: bgp
state: enabled
provider: "{{ cli }}"
ignore_errors: yes
- name: "Setup"
nxos_bgp: &remove
asn: 65535
state: absent
provider: "{{ cli }}"
ignore_errors: yes
- block:
- name: "Configure BGP neighbor defaults"
nxos_bgp_neighbor: &configure_default
asn: 65535
neighbor: 3.3.3.3
local_as: 20
remote_as: 30
description: "just a description"
update_source: "{{ intname.capitalize() }}"
state: present
provider: "{{ cli }}"
register: result
- assert: &true
that:
- "result.changed == true"
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_default
register: result
- assert: &false
that:
- "result.changed == false"
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp: *remove
register: result
- assert: *false
- name: "Configure BGP neighbor non-defaults"
nxos_bgp_neighbor: &configure_non_default
asn: 65535
neighbor: 3.3.3.3
description: "tested by ansible"
connected_check: true
capability_negotiation: true
dynamic_capability: true
ebgp_multihop: 2
log_neighbor_changes: "{{log_neighbor_changes|default(omit)}}"
low_memory_exempt: true
remote_as: 12.1
remove_private_as: "{{remove_private_as|default(omit)}}"
shutdown: true
suppress_4_byte_as: true
timers_keepalive: 90
timers_holdtime: 270
update_source: loopback151
state: present
provider: "{{ cli }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_non_default
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor 3des password"
nxos_bgp_neighbor: &configure_3des_password
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
pwd: '386c0565965f89de'
pwd_type: 3des
provider: "{{ cli }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_3des_password
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor type 7 password"
nxos_bgp_neighbor: &configure_type7_password
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
pwd: '386c0565965f89de'
pwd_type: cisco_type_7
provider: "{{ cli }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_type7_password
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor transport type passive"
nxos_bgp_neighbor: &configure_transport_passive
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
transport_passive_only: true
provider: "{{ cli }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_transport_passive
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor transport type default"
nxos_bgp_neighbor: &configure_transport_default
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
transport_passive_only: false
provider: "{{ cli }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_transport_default
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
rescue:
- name: "Cleanup BGP"
nxos_bgp: *remove
ignore_errors: yes
always:
- name: "Disable feature bgp"
nxos_feature: &disable_bgp
feature: bgp
state: disabled
provider: "{{ cli }}"
- debug: msg="END TRANSPORT:CLI nxos_bgp_neighbor sanity test"

View file

@ -0,0 +1,203 @@
---
- debug: msg="START TRANSPORT:NXAPI nxos_bgp_neighbor sanity test"
- set_fact: intname="{{ nxos_int1 }}"
- set_fact: log_neighbor_changes="enable"
when: (titanium is defined) and not ((titanium | search('true')))
- set_fact: remove_private_as="all"
when: (titanium is defined) and not ((titanium | search('true')))
- name: "Enable feature BGP"
nxos_feature:
feature: bgp
state: enabled
provider: "{{ nxapi }}"
ignore_errors: yes
- name: "Setup"
nxos_bgp: &remove
asn: 65535
state: absent
provider: "{{ nxapi }}"
ignore_errors: yes
- block:
- name: "Configure BGP neighbor defaults"
nxos_bgp_neighbor: &configure_default
asn: 65535
neighbor: 3.3.3.3
local_as: 20
remote_as: 30
description: "just a description"
update_source: "{{ intname.capitalize() }}"
state: present
provider: "{{ nxapi }}"
register: result
- assert: &true
that:
- "result.changed == true"
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_default
register: result
- assert: &false
that:
- "result.changed == false"
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp: *remove
register: result
- assert: *false
- name: "Configure BGP neighbor non-defaults"
nxos_bgp_neighbor: &configure_non_default
asn: 65535
neighbor: 3.3.3.3
description: "tested by ansible"
connected_check: true
capability_negotiation: true
dynamic_capability: true
ebgp_multihop: 2
log_neighbor_changes: "{{log_neighbor_changes|default(omit)}}"
low_memory_exempt: true
remote_as: 12.1
remove_private_as: "{{remove_private_as|default(omit)}}"
shutdown: true
suppress_4_byte_as: true
timers_keepalive: 90
timers_holdtime: 270
update_source: loopback151
state: present
provider: "{{ nxapi }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_non_default
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor 3des password"
nxos_bgp_neighbor: &configure_3des_password
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
pwd: '386c0565965f89de'
pwd_type: 3des
provider: "{{ nxapi }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_3des_password
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor type 7 password"
nxos_bgp_neighbor: &configure_type7_password
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
pwd: '386c0565965f89de'
pwd_type: cisco_type_7
provider: "{{ nxapi }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_type7_password
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor transport type passive"
nxos_bgp_neighbor: &configure_transport_passive
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
transport_passive_only: true
provider: "{{ nxapi }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_transport_passive
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
- name: "Configure BGP neighbor transport type default"
nxos_bgp_neighbor: &configure_transport_default
asn: 65535
neighbor: 3.3.3.3
remote_as: 30
transport_passive_only: false
provider: "{{ nxapi }}"
register: result
- assert: *true
- name: "Check Idempotence"
nxos_bgp_neighbor: *configure_transport_default
register: result
- assert: *false
- name: "Remove BGP"
nxos_bgp: *remove
register: result
- assert: *true
rescue:
- name: "Cleanup BGP"
nxos_bgp: *remove
ignore_errors: yes
always:
- name: "Disable feature bgp"
nxos_feature: &disable_bgp
feature: bgp
state: disabled
provider: "{{ nxapi }}"
- debug: msg="END TRANSPORT:NXAPI nxos_bgp_neighbor sanity test"