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,7 +260,10 @@ def dict_diff(base, comparable):
if not isinstance(base, dict): if not isinstance(base, dict):
raise AssertionError("`base` must be of type <dict>") raise AssertionError("`base` must be of type <dict>")
if not isinstance(comparable, dict): if not isinstance(comparable, dict):
raise AssertionError("`comparable` must be of type <dict>") if comparable is None:
comparable = dict()
else:
raise AssertionError("`comparable` must be of type <dict>")
updates = dict() updates = dict()

View file

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

View file

@ -6,11 +6,19 @@
nxos_feature: nxos_feature:
feature: lacp 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: - block:
- name: Setup - name: Setup
cli_config: cli_config:
config: lacp system-priority 11 config: lacp system-priority 11
- name: Setup
cli_config:
config: "{{ mac|default(omit) }}"
- name: Gather lacp facts - name: Gather lacp facts
nxos_facts: &facts nxos_facts: &facts
gather_subset: gather_subset:
@ -29,6 +37,16 @@
- "'no lacp system-priority' in result.commands" - "'no lacp system-priority' in result.commands"
- "result.changed == true" - "result.changed == true"
- "result.commands|length == 1" - "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 - name: Gather lacp post facts
nxos_facts: *facts nxos_facts: *facts

View file

@ -6,21 +6,38 @@
nxos_feature: nxos_feature:
feature: lacp 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: - block:
- name: Merged - name: Merged
nxos_lacp: &merged nxos_lacp: &merged
config: config:
system: system:
priority: 11 priority: 11
mac: "{{ mac|default(omit) }}"
state: merged state: merged
register: result 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: - assert:
that: that:
- "result.before|length == 0" - "result.before|length == 0"
- "result.changed == true" - "result.changed == true"
- "'lacp system-priority 11' in result.commands" - "'lacp system-priority 11' in result.commands"
- "result.commands|length == 1" - "result.commands|length == 1"
when: platform is not search('N9K')
- name: Gather lacp facts - name: Gather lacp facts
nxos_facts: nxos_facts:

View file

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