mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 13:50:22 -07:00
Deprecate nxos_switchport and Add nxos_l2_interface DI module (#33813)
* Deprecate nxos_switchport Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Add nxos_l2_interface DI module Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * pep8 fixes * aggregate test for nxos_l2_interface Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * revert nxos_switchport test change * gundalow's comment Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
parent
e9a5ff912a
commit
9d2182bcf8
16 changed files with 869 additions and 7 deletions
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
testcase: "*"
|
2
test/integration/targets/nxos_l2_interface/meta/main.yml
Normal file
2
test/integration/targets/nxos_l2_interface/meta/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
dependencies:
|
||||
- prepare_nxos_tests
|
25
test/integration/targets/nxos_l2_interface/tasks/cli.yaml
Normal file
25
test/integration/targets/nxos_l2_interface/tasks/cli.yaml
Normal 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
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
- { include: cli.yaml, tags: ['cli'] }
|
||||
- { include: nxapi.yaml, tags: ['nxapi'] }
|
25
test/integration/targets/nxos_l2_interface/tasks/nxapi.yaml
Normal file
25
test/integration/targets/nxos_l2_interface/tasks/nxapi.yaml
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
- 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: run test case
|
||||
include: "{{ test_case_to_run }} connection={{ nxapi }}"
|
||||
with_items: "{{ test_items }}"
|
||||
loop_control:
|
||||
loop_var: test_case_to_run
|
|
@ -0,0 +1,71 @@
|
|||
---
|
||||
- debug: msg="START TRANSPORT:{{ connection.transport }} nxos_l2_interface aggregate test"
|
||||
|
||||
# Select interface for test
|
||||
- set_fact: intname1="{{ nxos_int1 }}"
|
||||
- set_fact: intname2="{{ nxos_int2 }}"
|
||||
|
||||
- name: "Setup vlans"
|
||||
nxos_vlan:
|
||||
vlan_range: "6,15"
|
||||
provider: "{{ connection }}"
|
||||
|
||||
- name: Setup - Remove interface aggregate before testing
|
||||
nxos_l2_interface:
|
||||
aggregate:
|
||||
- { name: "{{ intname1 }}", mode: access, access_vlan: 6 }
|
||||
- { name: "{{ intname2 }}", mode: access, access_vlan: 15 }
|
||||
state: absent
|
||||
provider: "{{ connection }}"
|
||||
|
||||
- block:
|
||||
- name: Configure interface for access_vlan aggregate
|
||||
nxos_l2_interface: &conf_agg
|
||||
aggregate:
|
||||
- { name: "{{ intname1 }}", mode: access, access_vlan: 6 }
|
||||
- { name: "{{ intname2 }}", mode: access, access_vlan: 15 }
|
||||
provider: "{{ connection }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Configure interface for access_vlan aggregate(Idempotence)
|
||||
nxos_l2_interface: *conf_agg
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: Remove interface aggregate
|
||||
nxos_l2_interface: &rm_agg
|
||||
aggregate:
|
||||
- { name: "{{ intname1 }}", mode: access, access_vlan: 6 }
|
||||
- { name: "{{ intname2 }}", mode: access, access_vlan: 15 }
|
||||
provider: "{{ connection }}"
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: Remove interface aggregate(Idempotence)
|
||||
nxos_l2_interface: *rm_agg
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
always:
|
||||
- name: "remove vlans"
|
||||
nxos_vlan:
|
||||
vlan_range: "6,15"
|
||||
state: absent
|
||||
provider: "{{ connection }}"
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: msg="END TRANSPORT:{{ connection.transport }} nxos_l2_interface aggregate test"
|
|
@ -0,0 +1,124 @@
|
|||
---
|
||||
- debug: msg="START TRANSPORT:{{ connection.transport }} nxos_l2_interface sanity test"
|
||||
|
||||
# Select interface for test
|
||||
- set_fact: intname="{{ nxos_int1 }}"
|
||||
|
||||
- name: "Interface selected for this test"
|
||||
debug: msg="{{ intname }}"
|
||||
|
||||
- name: "Setup interface"
|
||||
nxos_config: &default
|
||||
lines:
|
||||
- "default interface {{ intname }}"
|
||||
provider: "{{ connection }}"
|
||||
ignore_errors: yes
|
||||
|
||||
- name: "Setup vlans"
|
||||
nxos_vlan:
|
||||
vlan_range: "5-10,20"
|
||||
provider: "{{ connection }}"
|
||||
|
||||
- block:
|
||||
- name: Ensure interface is in its default switchport state
|
||||
nxos_l2_interface: &def_swi
|
||||
name: "{{ intname }}"
|
||||
state: unconfigured
|
||||
provider: "{{ connection }}"
|
||||
|
||||
- name: Ensure interface is configured for access vlan 20
|
||||
nxos_l2_interface: &acc_vl
|
||||
name: "{{ intname }}"
|
||||
mode: access
|
||||
access_vlan: 20
|
||||
provider: "{{ connection }}"
|
||||
register: result
|
||||
|
||||
- assert: &true
|
||||
that:
|
||||
- "result.changed == true"
|
||||
|
||||
- name: "access vlan Idempotence"
|
||||
nxos_l2_interface: *acc_vl
|
||||
register: result
|
||||
|
||||
- assert: &false
|
||||
that:
|
||||
- "result.changed == false"
|
||||
|
||||
- name: Ensure interface only has vlans 5-10 as trunk vlans
|
||||
nxos_l2_interface: &tr_vl
|
||||
name: "{{ intname }}"
|
||||
mode: trunk
|
||||
native_vlan: 10
|
||||
trunk_allowed_vlans: 5-10
|
||||
provider: "{{ connection }}"
|
||||
register: result
|
||||
|
||||
- assert: *true
|
||||
|
||||
- name: "trunk vlan Idempotence"
|
||||
nxos_l2_interface: *tr_vl
|
||||
register: result
|
||||
|
||||
- assert: *false
|
||||
|
||||
- name: Ensure interface is a trunk port and ensure 2-50 are being tagged (doesn't mean others aren't also being tagged)
|
||||
nxos_l2_interface: &tag
|
||||
name: "{{ intname }}"
|
||||
mode: trunk
|
||||
native_vlan: 10
|
||||
trunk_vlans: 2-50
|
||||
provider: "{{ connection }}"
|
||||
register: result
|
||||
|
||||
- assert: *true
|
||||
|
||||
- name: "tag vlan Idempotence"
|
||||
nxos_l2_interface: *tag
|
||||
register: result
|
||||
|
||||
- assert: *false
|
||||
|
||||
- name: Ensure these VLANs are not being tagged on the trunk
|
||||
nxos_l2_interface: &no_tag
|
||||
name: "{{ intname }}"
|
||||
mode: trunk
|
||||
trunk_vlans: 30-4094
|
||||
state: absent
|
||||
provider: "{{ connection }}"
|
||||
register: result
|
||||
|
||||
- assert: *true
|
||||
|
||||
- name: "no tag vlan Idempotence"
|
||||
nxos_l2_interface: *no_tag
|
||||
register: result
|
||||
|
||||
- assert: *false
|
||||
|
||||
- name: put interface default state
|
||||
nxos_l2_interface: *def_swi
|
||||
register: result
|
||||
|
||||
- assert: *true
|
||||
|
||||
- name: "default state idempotence"
|
||||
nxos_l2_interface: *def_swi
|
||||
register: result
|
||||
|
||||
- assert: *false
|
||||
|
||||
always:
|
||||
- name: "remove vlans"
|
||||
nxos_vlan:
|
||||
vlan_range: "5-10,20"
|
||||
state: absent
|
||||
provider: "{{ connection }}"
|
||||
ignore_errors: yes
|
||||
|
||||
- name: "default interface"
|
||||
nxos_config: *default
|
||||
ignore_errors: yes
|
||||
|
||||
- debug: msg="END TRANSPORT:{{ connection.transport }} nxos_l2_interface sanity test"
|
Loading…
Add table
Add a link
Reference in a new issue