diff --git a/lib/ansible/modules/network/nxos/_nxos_template.py b/lib/ansible/modules/network/nxos/_nxos_template.py index 371b93b0077..fe379629394 100644 --- a/lib/ansible/modules/network/nxos/_nxos_template.py +++ b/lib/ansible/modules/network/nxos/_nxos_template.py @@ -109,8 +109,9 @@ responses: type: list sample: ['...', '...'] """ +import ansible.module_utils.nxos from ansible.module_utils.netcfg import NetworkConfig, dumps -from ansible.module_utils.nxos import NetworkModule, NetworkError +from ansible.module_utils.network import NetworkModule def get_config(module): config = module.params['config'] or dict() diff --git a/lib/ansible/modules/network/nxos/nxos_bgp.py b/lib/ansible/modules/network/nxos/nxos_bgp.py index 5ba394bda47..5f2b82e46eb 100644 --- a/lib/ansible/modules/network/nxos/nxos_bgp.py +++ b/lib/ansible/modules/network/nxos/nxos_bgp.py @@ -354,12 +354,11 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError DEFAULT_COMMENT_TOKENS = ['#', '!'] diff --git a/lib/ansible/modules/network/nxos/nxos_bgp_af.py b/lib/ansible/modules/network/nxos/nxos_bgp_af.py index 8add9dfb4ad..57c87bc4836 100644 --- a/lib/ansible/modules/network/nxos/nxos_bgp_af.py +++ b/lib/ansible/modules/network/nxos/nxos_bgp_af.py @@ -308,11 +308,11 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError DEFAULT_COMMENT_TOKENS = ['#', '!'] diff --git a/lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py b/lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py index db1c1e8821c..4e304be57ad 100644 --- a/lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py +++ b/lib/ansible/modules/network/nxos/nxos_bgp_neighbor.py @@ -253,12 +253,11 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError DEFAULT_COMMENT_TOKENS = ['#', '!'] diff --git a/lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py b/lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py index 11b0899dc64..789980ee325 100644 --- a/lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py +++ b/lib/ansible/modules/network/nxos/nxos_bgp_neighbor_af.py @@ -330,12 +330,11 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError DEFAULT_COMMENT_TOKENS = ['#', '!'] diff --git a/lib/ansible/modules/network/nxos/nxos_config.py b/lib/ansible/modules/network/nxos/nxos_config.py index bd15e5d8d2f..19b15d06ef9 100644 --- a/lib/ansible/modules/network/nxos/nxos_config.py +++ b/lib/ansible/modules/network/nxos/nxos_config.py @@ -208,11 +208,11 @@ backup_path: type: path sample: /playbooks/ansible/backup/nxos_config.2016-07-16@22:28:34 """ -import time -from ansible.module_utils.netcfg import NetworkConfig, dumps -from ansible.module_utils.nxos import NetworkModule, NetworkError +import ansible.module_utils.nxos from ansible.module_utils.basic import get_exception +from ansible.module_utils.network import NetworkModule, NetworkError +from ansible.module_utils.netcfg import NetworkConfig, dumps def check_args(module, warnings): if module.params['force']: diff --git a/lib/ansible/modules/network/nxos/nxos_evpn_global.py b/lib/ansible/modules/network/nxos/nxos_evpn_global.py index e0df54e7f95..fba1cb4cdd4 100644 --- a/lib/ansible/modules/network/nxos/nxos_evpn_global.py +++ b/lib/ansible/modules/network/nxos/nxos_evpn_global.py @@ -84,9 +84,12 @@ import itertools import shlex import itertools -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE - DEFAULT_COMMENT_TOKENS = ['#', '!'] +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError class ConfigLine(object): diff --git a/lib/ansible/modules/network/nxos/nxos_evpn_vni.py b/lib/ansible/modules/network/nxos/nxos_evpn_vni.py index 13cc756e043..8eec8c1319d 100644 --- a/lib/ansible/modules/network/nxos/nxos_evpn_vni.py +++ b/lib/ansible/modules/network/nxos/nxos_evpn_vni.py @@ -135,12 +135,11 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.shell import ShellError +from ansible.module_utils.network import NetworkModule DEFAULT_COMMENT_TOKENS = ['#', '!'] diff --git a/lib/ansible/modules/network/nxos/nxos_facts.py b/lib/ansible/modules/network/nxos/nxos_facts.py index ff9c454aaa6..9d5defb9a8c 100644 --- a/lib/ansible/modules/network/nxos/nxos_facts.py +++ b/lib/ansible/modules/network/nxos/nxos_facts.py @@ -172,9 +172,11 @@ vlan_list: """ import re +import ansible.module_utils.nxos from ansible.module_utils.basic import get_exception from ansible.module_utils.netcli import CommandRunner, AddCommandError -from ansible.module_utils.nxos import NetworkModule, NetworkError +from ansible.module_utils.network import NetworkModule, NetworkError +from ansible.module_utils.six import iteritems def add_command(runner, command, output=None): @@ -193,6 +195,9 @@ class FactsBase(object): self.facts = dict() self.commands() + def commands(self): + raise NotImplementedError + def transform_dict(self, data, keymap): transform = dict() for key, fact in keymap: @@ -255,7 +260,7 @@ class Interfaces(FactsBase): ('state', 'state'), ('desc', 'description'), ('eth_bw', 'bandwidth'), - ('eth_duplex','duplex'), + ('eth_duplex', 'duplex'), ('eth_speed', 'speed'), ('eth_mode', 'mode'), ('eth_hw_addr', 'macaddress'), @@ -511,7 +516,7 @@ def main(): module.exit_json(out=module.from_json(runner.items)) ansible_facts = dict() - for key, value in facts.iteritems(): + for key, value in iteritems(facts): # this is to maintain capability with nxos_facts 2.1 if key.startswith('_'): ansible_facts[key[1:]] = value diff --git a/lib/ansible/modules/network/nxos/nxos_hsrp.py b/lib/ansible/modules/network/nxos/nxos_hsrp.py index 1387bab42e2..e3e0bcebb80 100644 --- a/lib/ansible/modules/network/nxos/nxos_hsrp.py +++ b/lib/ansible/modules/network/nxos/nxos_hsrp.py @@ -118,23 +118,16 @@ changed: sample: true ''' -# COMMON CODE FOR MIGRATION - -import re -import time -import collections -import itertools -import shlex +DEFAULT_COMMENT_TOKENS = ['#', '!'] import json -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url +# COMMON CODE FOR MIGRATION - -DEFAULT_COMMENT_TOKENS = ['#', '!'] +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.shell import ShellError +from ansible.module_utils.network import NetworkModule class ConfigLine(object): @@ -922,7 +915,7 @@ def get_interface_mode(interface, intf_type, module): return mode -def get_hsrp_groups_on_interfaces(device): +def get_hsrp_groups_on_interfaces(device, module): command = 'show hsrp all' body = execute_show_command(command, module) hsrp = {} diff --git a/lib/ansible/modules/network/nxos/nxos_interface.py b/lib/ansible/modules/network/nxos/nxos_interface.py index 927e93d3a88..7c1186ee924 100644 --- a/lib/ansible/modules/network/nxos/nxos_interface.py +++ b/lib/ansible/modules/network/nxos/nxos_interface.py @@ -135,20 +135,15 @@ changed: ''' import json -import collections # COMMON CODE FOR MIGRATION -import re +import ansible.module_utils.nxos from ansible.module_utils.basic import get_exception from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule from ansible.module_utils.shell import ShellError -try: - from ansible.module_utils.nxos import get_module -except ImportError: - from ansible.module_utils.nxos import NetworkModule - def to_list(val): if isinstance(val, (list, tuple)): @@ -308,7 +303,7 @@ def is_default_interface(interface, module): body = execute_show_command(command, module, command_type='cli_show_ascii')[0] except IndexError: - body = [] + body = '' if body: raw_list = body.split('\n') diff --git a/lib/ansible/modules/network/nxos/nxos_interface_ospf.py b/lib/ansible/modules/network/nxos/nxos_interface_ospf.py index f16e6d33c41..fd97345ec75 100644 --- a/lib/ansible/modules/network/nxos/nxos_interface_ospf.py +++ b/lib/ansible/modules/network/nxos/nxos_interface_ospf.py @@ -175,14 +175,13 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - - DEFAULT_COMMENT_TOKENS = ['#', '!'] +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError + class ConfigLine(object): diff --git a/lib/ansible/modules/network/nxos/nxos_ospf.py b/lib/ansible/modules/network/nxos/nxos_ospf.py index b2efd4577d2..ad313482e3f 100644 --- a/lib/ansible/modules/network/nxos/nxos_ospf.py +++ b/lib/ansible/modules/network/nxos/nxos_ospf.py @@ -91,9 +91,12 @@ import itertools import shlex import itertools -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE - DEFAULT_COMMENT_TOKENS = ['#', '!'] +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError class ConfigLine(object): diff --git a/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py b/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py index ef5e96ea8d4..93f397b668f 100644 --- a/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py +++ b/lib/ansible/modules/network/nxos/nxos_ospf_vrf.py @@ -183,12 +183,11 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.network import NetworkModule +from ansible.module_utils.shell import ShellError DEFAULT_COMMENT_TOKENS = ['#', '!'] diff --git a/lib/ansible/modules/network/nxos/nxos_static_route.py b/lib/ansible/modules/network/nxos/nxos_static_route.py index ccb837bb798..25d4e8770c0 100644 --- a/lib/ansible/modules/network/nxos/nxos_static_route.py +++ b/lib/ansible/modules/network/nxos/nxos_static_route.py @@ -120,12 +120,10 @@ import collections import itertools import shlex -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine, dumps +from ansible.module_utils.network import NetworkModule DEFAULT_COMMENT_TOKENS = ['#', '!'] @@ -309,7 +307,7 @@ class CustomNetworkConfig(object): try: section = self.get_section_objects(path) if self._device_os == 'junos': - return self.to_lines(section) + return dumps(section, output='lines') return self.to_block(section) except ValueError: return list() @@ -928,10 +926,10 @@ def network_from_string(address, mask, module): def normalize_prefix(module, prefix): splitted_prefix = prefix.split('/') + address = splitted_prefix[0] if len(splitted_prefix) > 2: module.fail_json(msg='Incorrect address format.', address=address) elif len(splitted_prefix) == 2: - address = splitted_prefix[0] mask = splitted_prefix[1] network = network_from_string(address, mask, module) diff --git a/lib/ansible/modules/network/nxos/nxos_vrf.py b/lib/ansible/modules/network/nxos/nxos_vrf.py index 71a22bf8ba2..7aeee0be71a 100644 --- a/lib/ansible/modules/network/nxos/nxos_vrf.py +++ b/lib/ansible/modules/network/nxos/nxos_vrf.py @@ -112,6 +112,8 @@ changed: sample: true ''' +import json + # COMMON CODE FOR MIGRATION import re @@ -121,12 +123,11 @@ import itertools import shlex import json -from ansible.module_utils.basic import AnsibleModule, env_fallback, get_exception -from ansible.module_utils.basic import BOOLEANS_TRUE, BOOLEANS_FALSE -from ansible.module_utils.shell import Shell, ShellError, HAS_PARAMIKO -from ansible.module_utils.netcfg import parse -from ansible.module_utils.urls import fetch_url - +import ansible.module_utils.nxos +from ansible.module_utils.basic import get_exception +from ansible.module_utils.netcfg import NetworkConfig, ConfigLine +from ansible.module_utils.shell import ShellError +from ansible.module_utils.network import NetworkModule DEFAULT_COMMENT_TOKENS = ['#', '!'] @@ -903,11 +904,10 @@ def get_commands_to_config_vrf(delta, vrf): def get_vrf_description(vrf, module): command_type = 'cli_show_ascii' - command = ('show run section vrf | begin ^vrf\scontext\s{0} ' - '| end ^vrf.*'.format(vrf)) + command = (r'show run section vrf | begin ^vrf\scontext\s{0} | end ^vrf.*'.format(vrf)) description = '' - descr_regex = ".*description\s(?P[\S+\s]+).*" + descr_regex = r".*description\s(?P[\S+\s]+).*" body = execute_show_command(command, module, command_type) try: @@ -1022,7 +1022,7 @@ def main(): if existing.get('vni') and existing.get('vni') != '': commands.insert(1, 'no vni {0}'.format(existing['vni'])) if module.check_mode: - module.exit_json(changed=True, commands=cmds) + module.exit_json(changed=True, commands=commands) else: execute_config_command(commands, module) changed = True