From ed42331105afd274fa21010a3acc87c823b3d213 Mon Sep 17 00:00:00 2001 From: saichint Date: Wed, 11 Apr 2018 07:14:27 -0700 Subject: [PATCH] fix nxos_igmp_snooping issues (#38566) * fix nxos_igmp_snooping issue * shippable error fix --- .../network/nxos/nxos_igmp_snooping.py | 15 ++--- .../tests/common/sanity.yaml | 57 ++++++++++++++----- test/sanity/validate-modules/ignore.txt | 1 - 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/lib/ansible/modules/network/nxos/nxos_igmp_snooping.py b/lib/ansible/modules/network/nxos/nxos_igmp_snooping.py index 49c29639210..93721e61e1f 100644 --- a/lib/ansible/modules/network/nxos/nxos_igmp_snooping.py +++ b/lib/ansible/modules/network/nxos/nxos_igmp_snooping.py @@ -53,6 +53,7 @@ options: report_supp: description: - Global IGMPv1/IGMPv2 Report Suppression. + type: bool v3_report_supp: description: - Global IGMPv3 Report Suppression and Proxy Reporting. @@ -127,17 +128,6 @@ def get_group_timeout(config): return value -def get_snooping(config): - REGEX = re.compile(r'{0}$'.format('no ip igmp snooping'), re.M) - value = False - try: - if REGEX.search(config): - value = False - except TypeError: - value = True - return value - - def get_igmp_snooping(module): command = 'show ip igmp snooping' existing = {} @@ -196,6 +186,9 @@ def config_igmp_snooping(delta, existing, default=False): if default and key == 'group_timeout': if existing.get(key): command = 'no ' + CMDS.get(key).format(existing.get(key)) + elif value == 'default' and key == 'group_timeout': + if existing.get(key): + command = 'no ' + CMDS.get(key).format(existing.get(key)) else: command = CMDS.get(key).format(value) else: diff --git a/test/integration/targets/nxos_igmp_snooping/tests/common/sanity.yaml b/test/integration/targets/nxos_igmp_snooping/tests/common/sanity.yaml index 9d548327492..21940b762d9 100644 --- a/test/integration/targets/nxos_igmp_snooping/tests/common/sanity.yaml +++ b/test/integration/targets/nxos_igmp_snooping/tests/common/sanity.yaml @@ -3,14 +3,24 @@ - debug: msg="Using provider={{ connection.transport }}" when: ansible_connection == "local" +- set_fact: gt_run="false" +- set_fact: gt_run="true" + when: not (platform is match("N5K")) and not (platform is match("N35")) + +- set_fact: group_timeout="never" + when: not (platform is match("N5K")) and not (platform is match("N35")) + +- set_fact: def_group_timeout="default" + when: not (platform is match("N5K")) and not (platform is match("N35")) + - block: - name: Configure igmp snooping with non-default values nxos_igmp_snooping: &non-default - snooping: true - group_timeout: never - link_local_grp_supp: true - report_supp: true + snooping: false + group_timeout: "{{group_timeout|default(omit)}}" + link_local_grp_supp: false + report_supp: false v3_report_supp: true state: present provider: "{{ connection }}" @@ -19,14 +29,33 @@ - assert: &true that: - "result.changed == true" + - block: + - name: "Check Idempotence - Configure igmp snooping with non-default values" + nxos_igmp_snooping: *non-default + register: result - - name: "Check Idempotence - Configure igmp snooping with non-default values" - nxos_igmp_snooping: *non-default + - assert: &false + that: + - "result.changed == false" + when: (imagetag and (imagetag is version_compare('D1', 'ne'))) + + - name: Configure igmp snooping with default group timeout + nxos_igmp_snooping: &defgt + group_timeout: "{{def_group_timeout|default(omit)}}" + state: present + provider: "{{ connection }}" register: result - - assert: &false - that: - - "result.changed == false" + - assert: *true + when: gt_run + + - block: + - name: "Check Idempotence" + nxos_igmp_snooping: *defgt + register: result + + - assert: *false + when: gt_run or (imagetag and (imagetag is version_compare('D1', 'ne'))) - name: Configure igmp snooping with default values nxos_igmp_snooping: &default @@ -36,11 +65,13 @@ - assert: *true - - name: "Check Idempotence - Configure igmp snooping with default values" - nxos_igmp_snooping: *default - register: result + - block: + - name: "Check Idempotence - Configure igmp snooping with default values" + nxos_igmp_snooping: *default + register: result - - assert: *false + - assert: *false + when: (imagetag and (imagetag is version_compare('D1', 'ne'))) always: - name: Configure igmp snooping with default values diff --git a/test/sanity/validate-modules/ignore.txt b/test/sanity/validate-modules/ignore.txt index 76e8754db16..3573cd7de47 100644 --- a/test/sanity/validate-modules/ignore.txt +++ b/test/sanity/validate-modules/ignore.txt @@ -1344,7 +1344,6 @@ lib/ansible/modules/network/nxos/nxos_evpn_global.py E326 lib/ansible/modules/network/nxos/nxos_file_copy.py E324 lib/ansible/modules/network/nxos/nxos_gir.py E326 lib/ansible/modules/network/nxos/nxos_igmp_interface.py E326 -lib/ansible/modules/network/nxos/nxos_igmp_snooping.py E325 lib/ansible/modules/network/nxos/nxos_interface.py E324 lib/ansible/modules/network/nxos/nxos_lldp.py E326 lib/ansible/modules/network/nxos/nxos_logging.py E325