diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_community.py b/lib/ansible/modules/network/nxos/nxos_snmp_community.py index ba952e0820..e1718a9d20 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_community.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_community.py @@ -32,6 +32,8 @@ description: author: - Jason Edelman (@jedelman8) - Gabriele Gerbino (@GGabriele) +notes: + - Tested against NXOSv 7.3.(0)D1(1) on VIRL options: community: description: @@ -78,9 +80,7 @@ commands: ''' -import re - -from ansible.module_utils.nxos import get_config, load_config, run_commands +from ansible.module_utils.nxos import load_config, run_commands from ansible.module_utils.nxos import nxos_argument_spec, check_args from ansible.module_utils.basic import AnsibleModule @@ -91,7 +91,7 @@ def execute_show_command(command, module): 'output': 'json', } - return run_commands(module, [command]) + return run_commands(module, command) def apply_key_map(key_map, table): @@ -117,9 +117,7 @@ def flatten_list(command_lists): def get_snmp_groups(module): - command = 'show snmp group' - data = execute_show_command(command, module)[0] - + data = execute_show_command('show snmp group', module)[0] group_list = [] try: @@ -127,14 +125,13 @@ def get_snmp_groups(module): for group in group_table: group_list.append(group['role_name']) except (KeyError, AttributeError): - return group_list + pass return group_list def get_snmp_community(module, find_filter=None): - command = 'show snmp community' - data = execute_show_command(command, module)[0] + data = execute_show_command('show snmp community', module)[0] community_dict = {} @@ -225,6 +222,7 @@ def main(): delta = dict(set(proposed.items()).difference(existing.items())) commands = [] + if state == 'absent': if existing: command = "no snmp-server community {0}".format(community) @@ -239,6 +237,7 @@ def main(): results['changed'] = True if not module.check_mode: load_config(module, cmds) + if 'configure' in cmds: cmds.pop(0) results['commands'] = cmds diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_contact.py b/lib/ansible/modules/network/nxos/nxos_snmp_contact.py index 633bb6b33f..badba043a5 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_contact.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_contact.py @@ -66,7 +66,7 @@ commands: import re -from ansible.module_utils.nxos import get_config, load_config, run_commands +from ansible.module_utils.nxos import load_config, run_commands from ansible.module_utils.nxos import nxos_argument_spec, check_args from ansible.module_utils.basic import AnsibleModule @@ -77,7 +77,7 @@ def execute_show_command(command, module): 'output': 'text', } - return run_commands(module, [command]) + return run_commands(module, command) def flatten_list(command_lists): @@ -92,17 +92,12 @@ def flatten_list(command_lists): def get_snmp_contact(module): contact = {} - contact_regex = '.*snmp-server\scontact\s(?P\S+).*' - command = 'show run snmp' + contact_regex = r'^\s*snmp-server\scontact\s(?P.+)$' - body = execute_show_command(command, module)[0] - - try: - match_contact = re.match(contact_regex, body, re.DOTALL) - group_contact = match_contact.groupdict() - contact['contact'] = group_contact["contact"] - except AttributeError: - contact = {} + body = execute_show_command('show run snmp', module)[0] + match_contact = re.search(contact_regex, body, re.M) + if match_contact: + contact['contact'] = match_contact.group("contact") return contact @@ -110,25 +105,21 @@ def get_snmp_contact(module): def main(): argument_spec = dict( contact=dict(required=True, type='str'), - state=dict(choices=['absent', 'present'], - default='present') + state=dict(choices=['absent', 'present'], default='present'), ) argument_spec.update(nxos_argument_spec) - module = AnsibleModule(argument_spec=argument_spec, - supports_check_mode=True) + module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) warnings = list() check_args(module, warnings) results = {'changed': False, 'commands': [], 'warnings': warnings} - contact = module.params['contact'] state = module.params['state'] existing = get_snmp_contact(module) - proposed = dict(contact=contact) commands = [] if state == 'absent': @@ -140,11 +131,12 @@ def main(): cmds = flatten_list(commands) if cmds: + results['changed'] = True if not module.check_mode: load_config(module, cmds) + if 'configure' in cmds: cmds.pop(0) - results['changed'] = True results['commands'] = cmds module.exit_json(**results) diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_host.py b/lib/ansible/modules/network/nxos/nxos_snmp_host.py index 77191746f8..94ac7b9e17 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_host.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_host.py @@ -16,7 +16,6 @@ # along with Ansible. If not, see . # - ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'network'} @@ -84,7 +83,6 @@ options: required: true default: present choices: ['present','absent'] - ''' EXAMPLES = ''' @@ -93,67 +91,29 @@ EXAMPLES = ''' snmp_host: 3.3.3.3 community: TESTING state: present - host: "{{ inventory_hostname }}" - username: "{{ un }}" - password: "{{ pwd }}" ''' RETURN = ''' -proposed: - description: k/v pairs of parameters passed into module - returned: always - type: dict - sample: {"community": "TESTING", "snmp_host": "3.3.3.3", - "snmp_type": "trap", "version": "v2c", "vrf_filter": "one_more_vrf"} -existing: - description: k/v pairs of existing snmp host - returned: always - type: dict - sample: {"community": "TESTING", "snmp_type": "trap", - "udp": "162", "v3": "noauth", "version": "v2c", - "vrf": "test_vrf", "vrf_filter": ["test_vrf", - "another_test_vrf"]} -end_state: - description: k/v pairs of switchport after module execution - returned: always - type: dict - sample: {"community": "TESTING", "snmp_type": "trap", - "udp": "162", "v3": "noauth", "version": "v2c", - "vrf": "test_vrf", "vrf_filter": ["test_vrf", - "another_test_vrf", "one_more_vrf"]} -updates: +commands: description: commands sent to the device returned: always type: list sample: ["snmp-server host 3.3.3.3 filter-vrf another_test_vrf"] -changed: - description: check to see if a change was made on the device - returned: always - type: boolean - sample: true ''' -from ansible.module_utils.nxos import get_config, load_config, run_commands +from ansible.module_utils.nxos import load_config, run_commands from ansible.module_utils.nxos import nxos_argument_spec, check_args from ansible.module_utils.basic import AnsibleModule -import re -import re +def execute_show_command(command, module): + command = { + 'command': command, + 'output': 'json', + } - -def execute_show_command(command, module, command_type='cli_show'): - if module.params['transport'] == 'cli': - if 'show run' not in command: - command += ' | json' - cmds = [command] - body = run_commands(module, cmds) - elif module.params['transport'] == 'nxapi': - cmds = [command] - body = run_commands(module, cmds) - - return body + return run_commands(module, command) def apply_key_map(key_map, table): @@ -169,9 +129,18 @@ def apply_key_map(key_map, table): return new_dict +def flatten_list(command_lists): + flat_command_list = [] + for command in command_lists: + if isinstance(command, list): + flat_command_list.extend(command) + else: + flat_command_list.append(command) + return flat_command_list + + def get_snmp_host(host, module): - command = 'show snmp host' - body = execute_show_command(command, module) + body = execute_show_command('show snmp host', module) host_map = { 'port': 'udp', @@ -192,19 +161,19 @@ def get_snmp_host(host, module): for each in resource_table: key = str(each['host']) - src = each.get('src_intf', None) + src = each.get('src_intf') host_resource = apply_key_map(host_map, each) if src: host_resource['src_intf'] = src.split(':')[1].strip() - vrf_filt = each.get('TABLE_vrf_filters', None) + vrf_filt = each.get('TABLE_vrf_filters') if vrf_filt: vrf_filter = vrf_filt['ROW_vrf_filters']['vrf_filter'].split(':')[1].split(',') filters = [vrf.strip() for vrf in vrf_filter] host_resource['vrf_filter'] = filters - vrf = each.get('vrf', None) + vrf = each.get('vrf') if vrf: host_resource['vrf'] = vrf.split(':')[1].strip() resource[key] = host_resource @@ -212,7 +181,7 @@ def get_snmp_host(host, module): except (KeyError, AttributeError, TypeError): return resource - find = resource.get(host, None) + find = resource.get(host) if find: fix_find = {} @@ -222,10 +191,8 @@ def get_snmp_host(host, module): else: fix_find[key] = value return fix_find - else: - return {} - else: - return {} + + return {} def remove_snmp_host(host, existing): @@ -251,10 +218,10 @@ def config_snmp_host(delta, proposed, existing, module): host = proposed['snmp_host'] cmd = 'snmp-server host {0}'.format(proposed['snmp_host']) - snmp_type = delta.get('snmp_type', None) - version = delta.get('version', None) - ver = delta.get('v3', None) - community = delta.get('community', None) + snmp_type = delta.get('snmp_type') + version = delta.get('version') + ver = delta.get('v3') + community = delta.get('community') command_builder.append(cmd) if any([snmp_type, version, ver, community]): @@ -291,26 +258,14 @@ def config_snmp_host(delta, proposed, existing, module): 'src_intf': 'snmp-server host {0} source-interface {src_intf}' } - for key, value in delta.items(): - if key in ['vrf_filter', 'vrf', 'udp', 'src_intf']: - command = CMDS.get(key, None) - if command: - cmd = command.format(host, **delta) - commands.append(cmd) - cmd = None + for key in delta: + command = CMDS.get(key) + if command: + cmd = command.format(host, **delta) + commands.append(cmd) return commands -def flatten_list(command_lists): - flat_command_list = [] - for command in command_lists: - if isinstance(command, list): - flat_command_list.extend(command) - else: - flat_command_list.append(command) - return flat_command_list - - def main(): argument_spec = dict( snmp_host=dict(required=True, type='str'), @@ -327,13 +282,11 @@ def main(): argument_spec.update(nxos_argument_spec) - module = AnsibleModule(argument_spec=argument_spec, - supports_check_mode=True) + module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) warnings = list() check_args(module, warnings) - - + results = {'changed': False, 'commands': [], 'warnings': warnings} snmp_host = module.params['snmp_host'] community = module.params['community'] @@ -344,7 +297,6 @@ def main(): vrf_filter = module.params['vrf_filter'] vrf = module.params['vrf'] snmp_type = module.params['snmp_type'] - state = module.params['state'] if snmp_type == 'inform' and version != 'v3': @@ -369,66 +321,49 @@ def main(): # existing returns the list of vrfs configured for a given host # checking to see if the proposed is in the list - store = existing.get('vrf_filter', None) + store = existing.get('vrf_filter') if existing and store: if vrf_filter not in existing['vrf_filter']: existing['vrf_filter'] = None else: existing['vrf_filter'] = vrf_filter - - args = dict( - community=community, - snmp_host=snmp_host, - udp=udp, - version=version, - src_intf=src_intf, - vrf_filter=vrf_filter, - v3=v3, - vrf=vrf, - snmp_type=snmp_type - ) - - proposed = dict((k, v) for k, v in args.items() if v is not None) - - delta = dict(set(proposed.items()).difference(existing.items())) - - changed = False commands = [] - end_state = existing - if state == 'absent': - if existing: - command = remove_snmp_host(snmp_host, existing) - commands.append(command) + if state == 'absent' and existing: + command = remove_snmp_host(snmp_host, existing) + commands.append(command) + elif state == 'present': + args = dict( + community=community, + snmp_host=snmp_host, + udp=udp, + version=version, + src_intf=src_intf, + vrf_filter=vrf_filter, + v3=v3, + vrf=vrf, + snmp_type=snmp_type + ) + 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: command = config_snmp_host(delta, proposed, existing, module) commands.append(command) cmds = flatten_list(commands) if cmds: - if module.check_mode: - module.exit_json(changed=True, commands=cmds) - else: - changed = True + results['changed'] = True + if not module.check_mode: load_config(module, cmds) - end_state = get_snmp_host(snmp_host, module) - if 'configure' in cmds: - cmds.pop(0) - if store: - existing['vrf_filter'] = store - - results = {} - results['proposed'] = proposed - results['existing'] = existing - results['end_state'] = end_state - results['updates'] = cmds - results['changed'] = changed - results['warnings'] = warnings + if 'configure' in cmds: + cmds.pop(0) + results['commands'] = cmds module.exit_json(**results) -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_location.py b/lib/ansible/modules/network/nxos/nxos_snmp_location.py index bd728c4f7b..52604148e0 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_location.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_location.py @@ -16,7 +16,6 @@ # along with Ansible. If not, see . # - ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'network'} @@ -33,6 +32,8 @@ description: author: - Jason Edelman (@jedelman8) - Gabriele Gerbino (@GGabriele) +notes: + - Tested against NXOSv 7.3.(0)D1(1) on VIRL options: location: description: @@ -60,7 +61,7 @@ EXAMPLES = ''' RETURN = ''' commands: - description: command sent to the device + description: commands sent to the device returned: always type: list sample: ["snmp-server location New_Test"] @@ -69,36 +70,18 @@ commands: import re -from ansible.module_utils.nxos import get_config, load_config, run_commands +from ansible.module_utils.nxos import load_config, run_commands from ansible.module_utils.nxos import nxos_argument_spec, check_args from ansible.module_utils.basic import AnsibleModule -def execute_show_command(command, module, command_type='cli_show'): - if 'show run' not in command: - cmds = [{ - 'command': command, - 'output': 'json', - }] - else: - cmds = [{ - 'command': command, - 'output': 'text', - }] +def execute_show_command(command, module): + command = { + 'command': command, + 'output': 'text', + } - return run_commands(module, cmds) - - -def apply_key_map(key_map, table): - new_dict = {} - for key, value in table.items(): - new_key = key_map.get(key) - if new_key: - if value: - new_dict[new_key] = str(value) - else: - new_dict[new_key] = value - return new_dict + return run_commands(module, command) def flatten_list(command_lists): @@ -113,16 +96,12 @@ def flatten_list(command_lists): def get_snmp_location(module): location = {} - location_regex = '.*snmp-server\slocation\s(?P\S+).*' - command = 'show run snmp' + location_regex = r'^\s*snmp-server\slocation\s(?P.+)$' - body = execute_show_command(command, module, command_type='cli_show_ascii') - try: - match_location = re.match(location_regex, body[0], re.DOTALL) - group_location = match_location.groupdict() - location['location'] = group_location["location"] - except (AttributeError, TypeError): - location = {} + body = execute_show_command('show run snmp', module)[0] + match_location = re.search(location_regex, body, re.M) + if match_location: + location['location'] = match_location.group("location") return location @@ -130,7 +109,7 @@ def get_snmp_location(module): def main(): argument_spec = dict( location=dict(required=True, type='str'), - state=dict(choices=['absent', 'present'], default='present') + state=dict(choices=['absent', 'present'], default='present'), ) argument_spec.update(nxos_argument_spec) @@ -139,15 +118,13 @@ def main(): warnings = list() check_args(module, warnings) - results = {'commands': [], 'changed': False, 'warnings': warnings} + results = {'changed': False, 'commands': [], 'warnings': warnings} location = module.params['location'] state = module.params['state'] existing = get_snmp_location(module) commands = [] - proposed = dict(location=location) - end_state = existing if state == 'absent': if existing and existing['location'] == location: @@ -158,16 +135,16 @@ def main(): cmds = flatten_list(commands) if cmds: + results['changed'] = True if not module.check_mode: load_config(module, cmds) if 'configure' in cmds: cmds.pop(0) results['commands'] = cmds - results['changed'] = True module.exit_json(**results) -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_traps.py b/lib/ansible/modules/network/nxos/nxos_snmp_traps.py index 2fa12d92b2..302af3edc8 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_traps.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_traps.py @@ -16,7 +16,6 @@ # along with Ansible. If not, see . # - ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'network'} @@ -55,75 +54,39 @@ options: choices: ['enabled','disabled'] ''' -EXAMPLES = ''' +EXAMPLES = ''' # ensure lldp trap configured - nxos_snmp_traps: group: lldp state: enabled - host: "{{ inventory_hostname }}" - username: "{{ un }}" - password: "{{ pwd }}" # ensure lldp trap is not configured - nxos_snmp_traps: group: lldp state: disabled - host: "{{ inventory_hostname }}" - username: "{{ un }}" - password: "{{ pwd }}" ''' RETURN = ''' -proposed: - description: k/v pairs of parameters passed into module - returned: always - type: dict - sample: {"group": "lldp"} -existing: - description: k/v pairs of existing trap status - returned: always - type: dict - sample: {"lldp": [{"enabled": "No", - "trap": "lldpRemTablesChange"}]} -end_state: - description: k/v pairs of trap info after module execution - returned: always - type: dict - sample: {"lldp": [{"enabled": "Yes", - "trap": "lldpRemTablesChange"}]} -updates: +commands: description: command sent to the device returned: always type: list sample: "snmp-server enable traps lldp ;" -changed: - description: check to see if a change was made on the device - returned: always - type: boolean - sample: true ''' -from ansible.module_utils.nxos import get_config, load_config, run_commands +from ansible.module_utils.nxos import load_config, run_commands from ansible.module_utils.nxos import nxos_argument_spec, check_args from ansible.module_utils.basic import AnsibleModule -import re -import re +def execute_show_command(command, module): + command = { + 'command': command, + 'output': 'json', + } - -def execute_show_command(command, module, command_type='cli_show'): - if module.params['transport'] == 'cli': - if 'show run' not in command: - command += ' | json' - cmds = [command] - body = run_commands(module, cmds) - elif module.params['transport'] == 'nxapi': - cmds = [command] - body = run_commands(module, cmds) - - return body + return run_commands(module, command) def apply_key_map(key_map, table): @@ -149,10 +112,8 @@ def flatten_list(command_lists): return flat_command_list - def get_snmp_traps(group, module): - command = 'show snmp trap' - body = execute_show_command(command, module) + body = execute_show_command('show snmp trap', module) trap_key = { 'description': 'trap', @@ -204,14 +165,14 @@ def get_trap_commands(group, state, existing, module): if state == 'disabled': for feature in existing: trap_commands = ['no snmp-server enable traps {0}'.format(feature) for - trap in existing[feature] if trap['enabled'] == 'Yes'] + trap in existing[feature] if trap['enabled'] == 'Yes'] trap_commands = list(set(trap_commands)) commands.append(trap_commands) elif state == 'enabled': for feature in existing: trap_commands = ['snmp-server enable traps {0}'.format(feature) for - trap in existing[feature] if trap['enabled'] == 'No'] + trap in existing[feature] if trap['enabled'] == 'No'] trap_commands = list(set(trap_commands)) commands.append(trap_commands) @@ -239,50 +200,37 @@ def main(): argument_spec = dict( state=dict(choices=['enabled', 'disabled'], default='enabled'), group=dict(choices=['aaa', 'bridge', 'callhome', 'cfs', 'config', - 'entity', 'feature-control', 'hsrp', - 'license', 'link', 'lldp', 'ospf', 'pim', 'rf', - 'rmon', 'snmp', 'storm-control', 'stpx', - 'sysmgr', 'system', 'upgrade', 'vtp', 'all'], - required=True), + 'entity', 'feature-control', 'hsrp', + 'license', 'link', 'lldp', 'ospf', 'pim', 'rf', + 'rmon', 'snmp', 'storm-control', 'stpx', + 'sysmgr', 'system', 'upgrade', 'vtp', 'all'], + required=True), ) argument_spec.update(nxos_argument_spec) - module = AnsibleModule(argument_spec=argument_spec, - supports_check_mode=True) + module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True) warnings = list() check_args(module, warnings) - + results = {'changed': False, 'commands': [], 'warnings': warnings} group = module.params['group'].lower() state = module.params['state'] existing = get_snmp_traps(group, module) - proposed = {'group': group} - changed = False - end_state = existing commands = get_trap_commands(group, state, existing, module) cmds = flatten_list(commands) if cmds: - if module.check_mode: - module.exit_json(changed=True, commands=cmds) - else: - changed = True + results['changed'] = True + if not module.check_mode: load_config(module, cmds) - end_state = get_snmp_traps(group, module) - if 'configure' in cmds: - cmds.pop(0) - results = {} - results['proposed'] = proposed - results['existing'] = existing - results['end_state'] = end_state - results['updates'] = cmds - results['changed'] = changed - results['warnings'] = warnings + if 'configure' in cmds: + cmds.pop(0) + results['commands'] = cmds module.exit_json(**results) diff --git a/lib/ansible/modules/network/nxos/nxos_snmp_user.py b/lib/ansible/modules/network/nxos/nxos_snmp_user.py index 1cb7e048e9..71e4a84675 100644 --- a/lib/ansible/modules/network/nxos/nxos_snmp_user.py +++ b/lib/ansible/modules/network/nxos/nxos_snmp_user.py @@ -79,62 +79,31 @@ EXAMPLES = ''' group: network-operator auth: md5 pwd: test_password - host: "{{ inventory_hostname }}" - username: "{{ un }}" - password: "{{ pwd }}" ''' RETURN = ''' -proposed: - description: k/v pairs of parameters passed into module - returned: always - type: dict - sample: {"authentication": "md5", "group": "network-operator", - "pwd": "test_password", "user": "ntc"} -existing: - description: - - k/v pairs of existing configuration - returned: always - type: dict - sample: {"authentication": "no", "encrypt": "none", - "group": ["network-operator"], "user": "ntc"} -end_state: - description: k/v pairs configuration vtp after module execution - returned: always - type: dict - sample: {"authentication": "md5", "encrypt": "none", - "group": ["network-operator"], "user": "ntc"} -updates: - description: command sent to the device +commands: + description: commands sent to the device returned: always type: list sample: ["snmp-server user ntc network-operator auth md5 test_password"] -changed: - description: check to see if a change was made on the device - returned: always - type: boolean - sample: true ''' -from ansible.module_utils.nxos import get_config, load_config, run_commands + + +from ansible.module_utils.nxos import load_config, run_commands from ansible.module_utils.nxos import nxos_argument_spec, check_args from ansible.module_utils.basic import AnsibleModule -import re -import re +def execute_show_command(command, module, text=False): + command = { + 'command': command, + 'output': 'json', + } + if text: + command['output'] = 'text' - -def execute_show_command(command, module, command_type='cli_show', text=False): - if module.params['transport'] == 'cli': - if 'show run' not in command and text is False: - command += ' | json' - cmds = [command] - body = run_commands(module, cmds) - elif module.params['transport'] == 'nxapi': - cmds = [command] - body = run_commands(module, cmds) - - return body + return run_commands(module, command) def flatten_list(command_lists): @@ -148,19 +117,17 @@ def flatten_list(command_lists): def get_snmp_groups(module): - command = 'show snmp group' - body = execute_show_command(command, module) - g_list = [] + data = execute_show_command('show snmp group', module)[0] + group_list = [] try: - group_table = body[0]['TABLE_role']['ROW_role'] - for each in group_table: - g_list.append(each['role_name']) + group_table = data['TABLE_role']['ROW_role'] + for group in group_table: + group_list.append(group['role_name']) + except (KeyError, AttributeError): + return group_list - except (KeyError, AttributeError, IndexError): - return g_list - - return g_list + return group_list def get_snmp_user(user, module): @@ -171,7 +138,6 @@ def get_snmp_user(user, module): body = execute_show_command(command, module) resource = {} - group_list = [] try: resource_table = body[0]['TABLE_snmp_users']['ROW_snmp_users'] resource['user'] = str(resource_table['user']) @@ -250,13 +216,13 @@ def main(): argument_spec.update(nxos_argument_spec) module = AnsibleModule(argument_spec=argument_spec, - required_together=[['authentication', 'pwd'], - ['encrypt', 'privacy']], - supports_check_mode=True) + required_together=[['authentication', 'pwd'], + ['encrypt', 'privacy']], + supports_check_mode=True) warnings = list() check_args(module, warnings) - + results = {'changed': False, 'commands': [], 'warnings': warnings} user = module.params['user'] group = module.params['group'] @@ -275,18 +241,14 @@ def main(): module.fail_json(msg='group not configured yet on switch.') existing = get_snmp_user(user, module) - end_state = existing - store = existing.get('group', None) if existing: if group not in existing['group']: existing['group'] = None else: existing['group'] = group - changed = False commands = [] - proposed = {} if state == 'absent' and existing: commands.append(remove_snmp_user(user)) @@ -312,8 +274,7 @@ def main(): elif encrypt: proposed['encrypt'] = 'aes-128' - delta = dict( - set(proposed.items()).difference(existing.items())) + delta = dict(set(proposed.items()).difference(existing.items())) if delta.get('pwd'): delta['authentication'] = authentication @@ -325,29 +286,17 @@ def main(): commands.append(command) cmds = flatten_list(commands) - results = {} if cmds: - if module.check_mode: - module.exit_json(changed=True, commands=cmds) - else: - changed = True + results['changed'] = True + if not module.check_mode: load_config(module, cmds) - end_state = get_snmp_user(user, module) - if 'configure' in cmds: - cmds.pop(0) - if store: - existing['group'] = store - - results['proposed'] = proposed - results['existing'] = existing - results['updates'] = cmds - results['changed'] = changed - results['warnings'] = warnings - results['end_state'] = end_state + if 'configure' in cmds: + cmds.pop(0) + results['commands'] = cmds module.exit_json(**results) -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/test/sanity/pep8/legacy-files.txt b/test/sanity/pep8/legacy-files.txt index 26c03c03cb..df3699580c 100644 --- a/test/sanity/pep8/legacy-files.txt +++ b/test/sanity/pep8/legacy-files.txt @@ -309,10 +309,6 @@ lib/ansible/modules/network/nxos/nxos_overlay_global.py lib/ansible/modules/network/nxos/nxos_ping.py lib/ansible/modules/network/nxos/nxos_smu.py lib/ansible/modules/network/nxos/nxos_snapshot.py -lib/ansible/modules/network/nxos/nxos_snmp_contact.py -lib/ansible/modules/network/nxos/nxos_snmp_host.py -lib/ansible/modules/network/nxos/nxos_snmp_traps.py -lib/ansible/modules/network/nxos/nxos_snmp_user.py lib/ansible/modules/network/nxos/nxos_static_route.py lib/ansible/modules/network/nxos/nxos_system.py lib/ansible/modules/network/nxos/nxos_udld.py