diff --git a/lib/ansible/modules/network/cnos/cnos_facts.py b/lib/ansible/modules/network/cnos/cnos_facts.py index 5abcb23d15..034fdd024c 100644 --- a/lib/ansible/modules/network/cnos/cnos_facts.py +++ b/lib/ansible/modules/network/cnos/cnos_facts.py @@ -68,33 +68,37 @@ options: required: true port: description: - - Specifies the port to use when building the connection to the remote device. + - Specifies the port to use when building the connection to the + remote device. default: 22 username: description: - Configures the username to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the - value of environment variable C(ANSIBLE_NET_USERNAME) will be used instead. + value of environment variable C(ANSIBLE_NET_USERNAME) will be used + instead. password: description: - Specifies the password to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the - value of environment variable C(ANSIBLE_NET_PASSWORD) will be used instead. + value of environment variable C(ANSIBLE_NET_PASSWORD) will be used + instead. timeout: description: - - Specifies the timeout in seconds for communicating with the network device - for either connecting or sending commands. If the timeout is - exceeded before the operation is completed, the module will error. + - Specifies the timeout in seconds for communicating with the network + device for either connecting or sending commands. If the timeout + is exceeded before the operation is completed, the module will + error. default: 10 ssh_keyfile: description: - Specifies the SSH key to use to authenticate the connection to the remote device. This value is the path to the - key used to authenticate the SSH session. If the value is not specified - in the task, the value of environment variable C(ANSIBLE_NET_SSH_KEYFILE) - will be used instead. + key used to authenticate the SSH session. If the value is not + specified in the task, the value of environment variable + C(ANSIBLE_NET_SSH_KEYFILE) will be used instead. gather_subset: version_added: "2.6" description: @@ -231,7 +235,7 @@ class FactsBase(object): class Default(FactsBase): - COMMANDS = ['display sys-info', 'display running-config'] + COMMANDS = ['show sys-info', 'show running-config'] def populate(self): super(Default, self).populate() @@ -297,12 +301,12 @@ class Default(FactsBase): class Hardware(FactsBase): COMMANDS = [ - 'display running-config' + 'show running-config' ] def populate(self): super(Hardware, self).populate() - data = self.run(['display process memory']) + data = self.run(['show process memory']) data = to_text(data, errors='surrogate_or_strict').strip() data = data.replace(r"\n", "\n") if data: @@ -331,7 +335,7 @@ class Hardware(FactsBase): class Config(FactsBase): - COMMANDS = ['display running-config'] + COMMANDS = ['show running-config'] def populate(self): super(Config, self).populate() @@ -342,7 +346,7 @@ class Config(FactsBase): class Interfaces(FactsBase): - COMMANDS = ['display interface brief'] + COMMANDS = ['show interface brief'] def populate(self): super(Interfaces, self).populate() @@ -350,10 +354,10 @@ class Interfaces(FactsBase): self.facts['all_ipv4_addresses'] = list() self.facts['all_ipv6_addresses'] = list() - data1 = self.run(['display interface status']) + data1 = self.run(['show interface status']) data1 = to_text(data1, errors='surrogate_or_strict').strip() data1 = data1.replace(r"\n", "\n") - data2 = self.run(['display interface mac-address']) + data2 = self.run(['show interface mac-address']) data2 = to_text(data2, errors='surrogate_or_strict').strip() data2 = data2.replace(r"\n", "\n") lines1 = None @@ -364,7 +368,7 @@ class Interfaces(FactsBase): lines2 = self.parse_interfaces(data2) if lines1 is not None and lines2 is not None: self.facts['interfaces'] = self.populate_interfaces(lines1, lines2) - data3 = self.run(['display lldp neighbors']) + data3 = self.run(['show lldp neighbors']) data3 = to_text(data3, errors='surrogate_or_strict').strip() data3 = data3.replace(r"\n", "\n") if data3: @@ -372,9 +376,9 @@ class Interfaces(FactsBase): if lines3 is not None: self.facts['neighbors'] = self.populate_neighbors(lines3) - data4 = self.run(['display ip interface brief vrf all']) - data5 = self.run(['display ipv6 interface brief vrf all']) - data4 = to_text(data4, errors='surrogate_or_stdisplay').strip() + data4 = self.run(['show ip interface brief vrf all']) + data5 = self.run(['show ipv6 interface brief vrf all']) + data4 = to_text(data4, errors='surrogate_or_strict').strip() data4 = data4.replace(r"\n", "\n") data5 = to_text(data5, errors='surrogate_or_strict').strip() data5 = data5.replace(r"\n", "\n") @@ -484,14 +488,24 @@ class Interfaces(FactsBase): def populate_neighbors(self, lines3): neighbors = dict() + device_name = '' for line in lines3: neighborSplit = line.split() innerData = dict() - innerData['Local Interface'] = neighborSplit[1].strip() - innerData['Hold Time'] = neighborSplit[2].strip() - innerData['Capability'] = neighborSplit[3].strip() - innerData['Remote Port'] = neighborSplit[4].strip() - neighbors[neighborSplit[0].strip()] = innerData + count = len(neighborSplit) + if count == 5: + local_interface = neighborSplit[1].strip() + innerData['Device Name'] = neighborSplit[0].strip() + innerData['Hold Time'] = neighborSplit[2].strip() + innerData['Capability'] = neighborSplit[3].strip() + innerData['Remote Port'] = neighborSplit[4].strip() + neighbors[local_interface] = innerData + elif count == 4: + local_interface = neighborSplit[0].strip() + innerData['Hold Time'] = neighborSplit[1].strip() + innerData['Capability'] = neighborSplit[2].strip() + innerData['Remote Port'] = neighborSplit[3].strip() + neighbors[local_interface] = innerData return neighbors def parse_neighbors(self, neighbors): diff --git a/test/integration/targets/cnos_conditional_template/templates/demo_template.j2 b/test/integration/targets/cnos_conditional_template/templates/demo_template.j2 index c9b8ca8386..63a47a6418 100644 --- a/test/integration/targets/cnos_conditional_template/templates/demo_template.j2 +++ b/test/integration/targets/cnos_conditional_template/templates/demo_template.j2 @@ -2,14 +2,11 @@ vlan {{item.vlanid1}} name anil exit -#config d interface ethernet {{item.slot_chassis_number1}} -#aggregation-group {{item.portchannel_interface_number1}} mode {{item.portchannel_mode1}} description anil mtu 600 exit -#config d -interface port-aggregation {{item.portchannel_interface_number1}} +interface port-channel {{item.portchannel_interface_number1}} shut lacp suspend-individual no shut diff --git a/test/integration/targets/cnos_config/templates/basic/config1.j2 b/test/integration/targets/cnos_config/templates/basic/config1.j2 index 05305af622..e6c4c4fe61 100644 --- a/test/integration/targets/cnos_config/templates/basic/config1.j2 +++ b/test/integration/targets/cnos_config/templates/basic/config1.j2 @@ -1,4 +1,4 @@ vlan 33 - name panil + name sunil flood ipv4 state active diff --git a/test/integration/targets/cnos_template/templates/demo_template.j2 b/test/integration/targets/cnos_template/templates/demo_template.j2 index c9b8ca8386..63a47a6418 100644 --- a/test/integration/targets/cnos_template/templates/demo_template.j2 +++ b/test/integration/targets/cnos_template/templates/demo_template.j2 @@ -2,14 +2,11 @@ vlan {{item.vlanid1}} name anil exit -#config d interface ethernet {{item.slot_chassis_number1}} -#aggregation-group {{item.portchannel_interface_number1}} mode {{item.portchannel_mode1}} description anil mtu 600 exit -#config d -interface port-aggregation {{item.portchannel_interface_number1}} +interface port-channel {{item.portchannel_interface_number1}} shut lacp suspend-individual no shut diff --git a/test/units/modules/network/cnos/fixtures/display_interface_brief b/test/units/modules/network/cnos/fixtures/show_interface_brief similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_interface_brief rename to test/units/modules/network/cnos/fixtures/show_interface_brief diff --git a/test/units/modules/network/cnos/fixtures/display_interface_mac-address b/test/units/modules/network/cnos/fixtures/show_interface_mac-address similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_interface_mac-address rename to test/units/modules/network/cnos/fixtures/show_interface_mac-address diff --git a/test/units/modules/network/cnos/fixtures/display_interface_status b/test/units/modules/network/cnos/fixtures/show_interface_status similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_interface_status rename to test/units/modules/network/cnos/fixtures/show_interface_status diff --git a/test/units/modules/network/cnos/fixtures/display_ip_interface_brief_vrf_all b/test/units/modules/network/cnos/fixtures/show_ip_interface_brief_vrf_all similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_ip_interface_brief_vrf_all rename to test/units/modules/network/cnos/fixtures/show_ip_interface_brief_vrf_all diff --git a/test/units/modules/network/cnos/fixtures/display_ipv6_interface_brief_vrf_all b/test/units/modules/network/cnos/fixtures/show_ipv6_interface_brief_vrf_all similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_ipv6_interface_brief_vrf_all rename to test/units/modules/network/cnos/fixtures/show_ipv6_interface_brief_vrf_all diff --git a/test/units/modules/network/cnos/fixtures/display_lldp_neighbors b/test/units/modules/network/cnos/fixtures/show_lldp_neighbors similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_lldp_neighbors rename to test/units/modules/network/cnos/fixtures/show_lldp_neighbors diff --git a/test/units/modules/network/cnos/fixtures/display_process_memory b/test/units/modules/network/cnos/fixtures/show_process_memory similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_process_memory rename to test/units/modules/network/cnos/fixtures/show_process_memory diff --git a/test/units/modules/network/cnos/fixtures/display_run b/test/units/modules/network/cnos/fixtures/show_run similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_run rename to test/units/modules/network/cnos/fixtures/show_run diff --git a/test/units/modules/network/cnos/fixtures/display_running-config b/test/units/modules/network/cnos/fixtures/show_running-config similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_running-config rename to test/units/modules/network/cnos/fixtures/show_running-config diff --git a/test/units/modules/network/cnos/fixtures/display_sys-info b/test/units/modules/network/cnos/fixtures/show_sys-info similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_sys-info rename to test/units/modules/network/cnos/fixtures/show_sys-info diff --git a/test/units/modules/network/cnos/fixtures/display_version b/test/units/modules/network/cnos/fixtures/show_version similarity index 100% rename from test/units/modules/network/cnos/fixtures/display_version rename to test/units/modules/network/cnos/fixtures/show_version diff --git a/test/units/modules/network/cnos/test_cnos_command.py b/test/units/modules/network/cnos/test_cnos_command.py index f2c0b7318c..144eab9c8f 100644 --- a/test/units/modules/network/cnos/test_cnos_command.py +++ b/test/units/modules/network/cnos/test_cnos_command.py @@ -50,7 +50,7 @@ class TestCnosCommandModule(TestCnosModule): try: command = item except ValueError: - command = 'display version' + command = 'show version' filename = str(command).replace(' ', '_') output.append(load_fixture(filename)) return output @@ -58,49 +58,49 @@ class TestCnosCommandModule(TestCnosModule): self.run_commands.side_effect = load_from_file def test_cnos_command_simple(self): - set_module_args(dict(commands=['display version'])) + set_module_args(dict(commands=['show version'])) result = self.execute_module() self.assertEqual(len(result['stdout']), 1) self.assertTrue(result['stdout'][0].startswith('Lenovo Networking Operating System (NOS) Software')) def test_cnos_command_multiple(self): - set_module_args(dict(commands=['display version', 'display running-config'])) + set_module_args(dict(commands=['show version', 'show running-config'])) result = self.execute_module() self.assertEqual(len(result['stdout']), 2) self.assertTrue(result['stdout'][0].startswith('Lenovo Networking Operating System (NOS) Software')) def test_cnos_command_wait_for(self): wait_for = 'result[0] contains "Lenovo Networking Operating System (NOS) Software"' - set_module_args(dict(commands=['display version'], wait_for=wait_for)) + set_module_args(dict(commands=['show version'], wait_for=wait_for)) self.execute_module() def test_cnos_command_wait_for_fails(self): wait_for = 'result[0] contains "test string"' - set_module_args(dict(commands=['display version'], wait_for=wait_for)) + set_module_args(dict(commands=['show version'], wait_for=wait_for)) self.execute_module(failed=True) self.assertEqual(self.run_commands.call_count, 10) def test_cnos_command_retries(self): wait_for = 'result[0] contains "test string"' - set_module_args(dict(commands=['display version'], wait_for=wait_for, retries=2)) + set_module_args(dict(commands=['show version'], wait_for=wait_for, retries=2)) self.execute_module(failed=True) self.assertEqual(self.run_commands.call_count, 2) def test_cnos_command_match_any(self): wait_for = ['result[0] contains "Lenovo Networking Operating System (NOS) Software"', 'result[0] contains "test string"'] - set_module_args(dict(commands=['display version'], wait_for=wait_for, match='any')) + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='any')) self.execute_module() def test_cnos_command_match_all(self): wait_for = ['result[0] contains "Lenovo Networking Operating System (NOS) Software"', 'result[0] contains "Lenovo"'] - set_module_args(dict(commands=['display version'], wait_for=wait_for, match='all')) + set_module_args(dict(commands=['show version'], wait_for=wait_for, match='all')) self.execute_module() def test_cnos_command_match_all_failure(self): wait_for = ['result[0] contains "Lenovo ENOS"', 'result[0] contains "test string"'] - commands = ['display version', 'display run'] + commands = ['show version', 'show run'] set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) self.execute_module(failed=True)