From 1afec5a48e3335e7d5fe794639442dbc38e125a9 Mon Sep 17 00:00:00 2001 From: saichint Date: Wed, 25 Apr 2018 00:46:41 -0700 Subject: [PATCH] fix nxos_snmp_community issues (#39258) --- .../network/nxos/nxos_snmp_community.py | 10 ++-- .../tests/common/sanity.yaml | 51 ++++++++++++++++++- test/sanity/validate-modules/ignore.txt | 1 - 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_community.py b/lib/ansible/modules/network/nxos/nxos_snmp_community.py index 8c76803df4b..b0c4a0cfb13 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_community.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_community.py @@ -48,8 +48,7 @@ options: - Group to which the community belongs. acl: description: - - ACL name to filter snmp requests. - default: 1 + - ACL name to filter snmp requests or keyword 'default'. state: description: - Manage the state of the resource. @@ -150,7 +149,8 @@ def get_snmp_community(module, name): def config_snmp_community(delta, community): CMDS = { 'group': 'snmp-server community {0} group {group}', - 'acl': 'snmp-server community {0} use-acl {acl}' + 'acl': 'snmp-server community {0} use-acl {acl}', + 'no_acl': 'no snmp-server community {0} use-acl {no_acl}' } commands = [] for k, v in delta.items(): @@ -203,6 +203,10 @@ def main(): args = dict(group=group, acl=acl) proposed = dict((k, v) for k, v in args.items() if v is not None) delta = dict(set(proposed.items()).difference(existing.items())) + if delta.get('acl') == 'default': + delta.pop('acl') + if existing.get('acl'): + delta['no_acl'] = existing.get('acl') commands = [] diff --git a/test/integration/targets/nxos_snmp_community/tests/common/sanity.yaml b/test/integration/targets/nxos_snmp_community/tests/common/sanity.yaml index 7676ba3fdd4..43be9f619fd 100644 --- a/test/integration/targets/nxos_snmp_community/tests/common/sanity.yaml +++ b/test/integration/targets/nxos_snmp_community/tests/common/sanity.yaml @@ -17,7 +17,6 @@ nxos_snmp_community: &config community: TESTING7 group: network-operator - #access: ro state: present provider: "{{ connection }}" register: result @@ -34,6 +33,22 @@ that: - "result.changed == false" + - name: Change snmp_community group + nxos_snmp_community: &chg + community: TESTING7 + group: network-admin + state: present + provider: "{{ connection }}" + register: result + + - assert: *true + + - name: Idempotence Check + nxos_snmp_community: *chg + register: result + + - assert: *false + - name: Remove snmp_community nxos_snmp_community: *remove register: result @@ -91,6 +106,40 @@ - assert: *false + - name: Change acl + nxos_snmp_community: &chgacl + community: TESTING7 + access: rw + acl: new_acl + state: present + provider: "{{ connection }}" + register: result + + - assert: *true + + - name: Idempotence Check + nxos_snmp_community: *chgacl + register: result + + - assert: *false + + - name: Remove acl + nxos_snmp_community: &removeacl + community: TESTING7 + access: rw + acl: default + state: present + provider: "{{ connection }}" + register: result + + - assert: *true + + - name: Idempotence Check + nxos_snmp_community: *removeacl + register: result + + - assert: *false + always: - name: Cleanup nxos_snmp_community: *remove diff --git a/test/sanity/validate-modules/ignore.txt b/test/sanity/validate-modules/ignore.txt index 3c6b76cbcb1..d72cac92bc4 100644 --- a/test/sanity/validate-modules/ignore.txt +++ b/test/sanity/validate-modules/ignore.txt @@ -1198,7 +1198,6 @@ lib/ansible/modules/network/nxos/nxos_pim_interface.py E326 lib/ansible/modules/network/nxos/nxos_pim_rp_address.py E326 lib/ansible/modules/network/nxos/nxos_reboot.py E325 lib/ansible/modules/network/nxos/nxos_smu.py E324 -lib/ansible/modules/network/nxos/nxos_snmp_community.py E324 lib/ansible/modules/network/nxos/nxos_system.py E325 lib/ansible/modules/network/nxos/nxos_vpc.py E324 lib/ansible/modules/network/nxos/nxos_vpc_interface.py E325