nxos_lacp: updated tests to handle platforms not supporting lacp system mac command (#64074)

* Updated nxos_lacp tests to handle platforms not supporting lacp system mac command

* nxos_lacp: addressing comments

* nxos_lacp: Updating image tag search to include more tags
This commit is contained in:
nkshrishail 2019-11-10 00:02:07 -05:00 committed by Nilashish Chakraborty
parent 964da2f442
commit 00193f27eb
5 changed files with 93 additions and 8 deletions

View file

@ -260,6 +260,9 @@ def dict_diff(base, comparable):
if not isinstance(base, dict):
raise AssertionError("`base` must be of type <dict>")
if not isinstance(comparable, dict):
if comparable is None:
comparable = dict()
else:
raise AssertionError("`comparable` must be of type <dict>")
updates = dict()

View file

@ -130,9 +130,11 @@ class Lacp(ConfigBase):
del diff[k]
deleted_commands = self.del_all(diff)
merged_commands = self._state_merged(want, have)
if merged_commands:
commands.extend(deleted_commands)
if merged_commands:
commands.extend(merged_commands)
return commands
def _state_merged(self, want, have):

View file

@ -6,11 +6,19 @@
nxos_feature:
feature: lacp
- set_fact:
mac: "lacp system-mac 00c1.4c00.bd15 role primary"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- block:
- name: Setup
cli_config:
config: lacp system-priority 11
- name: Setup
cli_config:
config: "{{ mac|default(omit) }}"
- name: Gather lacp facts
nxos_facts: &facts
gather_subset:
@ -29,6 +37,16 @@
- "'no lacp system-priority' in result.commands"
- "result.changed == true"
- "result.commands|length == 1"
when: platform is not search('N9K')
- assert:
that:
- "ansible_facts.network_resources.lacp == result.before"
- "'no lacp system-priority' in result.commands"
- "'no lacp system-mac' in result.commands"
- "result.changed == true"
- "result.commands|length == 2"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- name: Gather lacp post facts
nxos_facts: *facts

View file

@ -6,21 +6,38 @@
nxos_feature:
feature: lacp
- set_fact:
mac:
address: 00c1.4c00.bd15
role: primary
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- block:
- name: Merged
nxos_lacp: &merged
config:
system:
priority: 11
mac: "{{ mac|default(omit) }}"
state: merged
register: result
- assert:
that:
- "result.before|length == 0"
- "result.changed == true"
- "'lacp system-priority 11' in result.commands"
- "'lacp system-mac 00c1.4c00.bd15 role primary' in result.commands"
- "result.commands|length == 2"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- assert:
that:
- "result.before|length == 0"
- "result.changed == true"
- "'lacp system-priority 11' in result.commands"
- "result.commands|length == 1"
when: platform is not search('N9K')
- name: Gather lacp facts
nxos_facts:

View file

@ -1,4 +1,5 @@
---
- debug:
msg: "Start nxos_lacp replaced integration tests connection={{ ansible_connection }}"
@ -6,11 +7,25 @@
nxos_feature:
feature: lacp
- set_fact:
mac1: "lacp system-mac 00c1.4c00.bd20 role primary"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- set_fact:
mac2:
address: 00c1.4c00.bd15
role: secondary
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- block:
- name: Setup
- name: Setup1
cli_config:
config: lacp system-priority 11
- name: Setup2
cli_config:
config: "{{ mac1|default(omit) }}"
- name: Gather lacp facts
nxos_facts: &facts
gather_subset:
@ -22,9 +37,8 @@
nxos_lacp: &replaced
config:
system:
mac:
address: 00c1.4c00.bd15
role: primary
priority: 12
mac: "{{ mac2|default(omit) }}"
state: replaced
register: result
@ -32,9 +46,21 @@
that:
- "ansible_facts.network_resources.lacp == result.before"
- "result.changed == true"
- "'no lacp system-priority' in result.commands"
- "'lacp system-mac 00c1.4c00.bd15 role primary' in result.commands"
- "result.commands|length == 2"
- "'no lacp system-priority' in result.commands"
- "'lacp system-priority 12' in result.commands"
when: platform is not search('N9K')
- assert:
that:
- "ansible_facts.network_resources.lacp == result.before"
- "result.changed == true"
- "'no lacp system-priority' in result.commands"
- "'no lacp system-mac' in result.commands"
- "'lacp system-priority 12' in result.commands"
- "'lacp system-mac 00c1.4c00.bd15 role secondary' in result.commands"
- "result.commands|length == 4"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- name: Gather lacp interfaces post facts
nxos_facts: *facts
@ -42,6 +68,7 @@
- assert:
that:
- "ansible_facts.network_resources.lacp == result.after"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- name: Idempotence - Replaced
nxos_lacp: *replaced
@ -52,6 +79,24 @@
- "result.changed == false"
- "result.commands|length == 0"
- name: Setup3
cli_config:
config: "{{ mac1|default(omit) }}"
- name: Replaced
nxos_lacp:
state: replaced
register: result
when: platform is search('N9K') and imagetag is not search('I[2-6]')
- assert:
that:
- "result.changed == true"
- "result.commands|length == 2"
- "'no lacp system-mac' in result.commands"
- "'no lacp system-priority' in result.commands"
when: platform is search('N9K') and imagetag is not search('I[2-6]')
always:
- name: teardown
nxos_feature: