Test Role: Adds nxos_pim_rp_address integration test role (#29958)

*   Adds nxos_pim_rp_address integration test role for group_list,
  prefix_list and route_map (cli and nxapi)

*  * Adds explicit removal of static RP configs to match cli behaviour

*  * Removes config deletion using nxos_config module (for 2.4 only)

*  * Attempt short and long delete config command
 * Add a platform check for N3K for bidir
This commit is contained in:
Kedar K 2017-09-15 23:52:03 +05:30 committed by Nathaniel Case
parent ff84fc969c
commit 7e58661335
6 changed files with 200 additions and 0 deletions

View file

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

View file

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

View file

@ -0,0 +1,25 @@
---
- name: collect common cli test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
register: test_cases
- name: collect cli test cases
find:
paths: "{{ role_path }}/tests/cli"
patterns: "{{ testcase }}.yaml"
register: cli_cases
- set_fact:
test_cases:
files: "{{ test_cases.files }} + {{ cli_cases.files }}"
- name: set test_items
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
- name: run test case
include: "{{ test_case_to_run }} connection={{ cli }}"
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,38 @@
---
- name: collect common nxapi test cases
find:
paths: "{{ role_path }}/tests/common"
patterns: "{{ testcase }}.yaml"
register: test_cases
- name: collect nxapi test cases
find:
paths: "{{ role_path }}/tests/nxapi"
patterns: "{{ testcase }}.yaml"
register: nxapi_cases
- set_fact:
test_cases:
files: "{{ test_cases.files }} + {{ nxapi_cases.files }}"
- 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 }} connection={{ nxapi }}"
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,130 @@
---
- debug: msg="START {{ connection.transport }} nxos_pim_rp_address sanity"
- set_fact: bidir="false"
when: platform | search('N3K')
- set_fact: bidircfg='bidir'
- set_fact: bidircfg=''
when: platform | search('N3K')
- block:
- name: "Disable feature PIM"
nxos_feature: &disable_feature
feature: pim
state: disabled
provider: "{{ connection }}"
- name: "Enable feature PIM"
nxos_feature: &enable_feature
feature: pim
state: enabled
provider: "{{ connection }}"
- name: Configure rp_address + group_list
nxos_pim_rp_address: &configgl
rp_address: "10.1.1.20"
group_list: "224.0.0.0/8"
bidir: "{{bidir|default('true')}}"
state: present
provider: "{{ connection }}"
register: result
- assert: &true
that:
- "result.changed == true"
- name: Check idempotence rp_address + group_list
nxos_pim_rp_address: *configgl
register: result
- assert: &false
that:
- "result.changed == false"
- name: Remove rp_address + group_list using long config
#FIXME: Config deletion shall be fixed in 2.5 for platform dependencies.
# Note: For 2.4 - Use platform specific config delete command as shown below.
# Possible options: Identify and use the command that is supported
# by your platform under test.
# no ip pim rp-address <ip address> <group-list|prefix-list|route-map> bidir
# no ip pim rp-address <ip address>
# no ip pim rp-address <ip address> <group-list|prefix-list|route-map>
nxos_config:
lines: "no ip pim rp-address 10.1.1.20 group-list 224.0.0.0/8 {{ bidircfg }}"
provider: "{{ connection }}"
ignore_errors: yes
- name: Remove rp_address + group_list using short config
nxos_config:
lines: no ip pim rp-address 10.1.1.20
provider: "{{ connection }}"
ignore_errors: yes
- name: Configure rp_address + prefix_list
nxos_pim_rp_address: &configpl
rp_address: "10.1.1.20"
prefix_list: "pim_prefix_list"
bidir: "{{bidir|default('true')}}"
state: present
provider: "{{ connection }}"
register: result
- assert: *true
- name: Check idempotence rp_address + prefix_list
nxos_pim_rp_address: *configpl
register: result
- assert: *false
- name: Remove rp_address + prefix_list using long config
nxos_config:
lines: "no ip pim rp-address 10.1.1.20 prefix-list pim_prefix_list {{ bidircfg }}"
provider: "{{ connection }}"
ignore_errors: yes
- name: Remove rp_address + prefix_list using short config
nxos_config:
lines: no ip pim rp-address 10.1.1.20
provider: "{{ connection }}"
ignore_errors: yes
- name: Configure rp_address + route_map
nxos_pim_rp_address: &configrm
rp_address: "10.1.1.20"
route_map: "pim_routemap"
bidir: "{{bidir|default('true')}}"
state: present
provider: "{{ connection }}"
register: result
- assert: *true
- name: Check idempotence rp_address + route_map
nxos_pim_rp_address: *configrm
register: result
- assert: *false
- name: Remove rp_address + route_map using long config
nxos_config:
lines: "no ip pim rp-address 10.1.1.20 route-map pim_routemap {{ bidircfg }}"
provider: "{{ connection }}"
ignore_errors: yes
- name: Remove rp_address + route_map using short config
nxos_config:
lines: no ip pim rp-address 10.1.1.20
provider: "{{ connection }}"
ignore_errors: yes
always:
- name: "Disable feature PIM"
nxos_feature: *disable_feature
- debug: msg="END {{ connection.transport }} nxos_pim_rp_address sanity"