nxos_interface TypeError fix (#32114)
* nxos_inteface TypeError fix Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * Make sure that run_commands does not list of strings for json output Signed-off-by: Trishna Guha <trishnaguha17@gmail.com> * return default value to handle exception Signed-off-by: Trishna Guha <trishnaguha17@gmail.com>
This commit is contained in:
parent
de8d00b401
commit
b0e7c71716
2 changed files with 68 additions and 61 deletions
|
@ -34,7 +34,7 @@ from ansible.module_utils._text import to_text
|
||||||
from ansible.module_utils.basic import env_fallback, return_values
|
from ansible.module_utils.basic import env_fallback, return_values
|
||||||
from ansible.module_utils.network_common import to_list, ComplexList
|
from ansible.module_utils.network_common import to_list, ComplexList
|
||||||
from ansible.module_utils.connection import exec_command
|
from ansible.module_utils.connection import exec_command
|
||||||
from ansible.module_utils.six import iteritems
|
from ansible.module_utils.six import iteritems, string_types
|
||||||
from ansible.module_utils.urls import fetch_url
|
from ansible.module_utils.urls import fetch_url
|
||||||
|
|
||||||
_DEVICE_CONNECTION = None
|
_DEVICE_CONNECTION = None
|
||||||
|
@ -169,6 +169,9 @@ class Cli:
|
||||||
except ValueError:
|
except ValueError:
|
||||||
out = to_text(out).strip()
|
out = to_text(out).strip()
|
||||||
|
|
||||||
|
if item['output'] == 'json' and isinstance(out, string_types):
|
||||||
|
self._module.fail_json(msg='failed to retrieve output of %s in json format' % item['command'])
|
||||||
|
|
||||||
responses.append(out)
|
responses.append(out)
|
||||||
return responses
|
return responses
|
||||||
|
|
||||||
|
|
|
@ -275,9 +275,13 @@ def get_interface(intf, module):
|
||||||
try:
|
try:
|
||||||
body = execute_show_command(command, module)[0]
|
body = execute_show_command(command, module)[0]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
body = []
|
return {}
|
||||||
if body:
|
if body:
|
||||||
|
try:
|
||||||
interface_table = body['TABLE_interface']['ROW_interface']
|
interface_table = body['TABLE_interface']['ROW_interface']
|
||||||
|
except KeyError:
|
||||||
|
return {}
|
||||||
|
if interface_table:
|
||||||
if interface_table.get('eth_mode') == 'fex-fabric':
|
if interface_table.get('eth_mode') == 'fex-fabric':
|
||||||
module.fail_json(msg='nxos_interface does not support interfaces with mode "fex-fabric"')
|
module.fail_json(msg='nxos_interface does not support interfaces with mode "fex-fabric"')
|
||||||
intf_type = get_interface_type(intf)
|
intf_type = get_interface_type(intf)
|
||||||
|
@ -369,7 +373,7 @@ def get_interfaces_dict(module):
|
||||||
try:
|
try:
|
||||||
body = execute_show_command(command, module)[0]
|
body = execute_show_command(command, module)[0]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
body = {}
|
return {}
|
||||||
|
|
||||||
interfaces = {
|
interfaces = {
|
||||||
'ethernet': [],
|
'ethernet': [],
|
||||||
|
|
Loading…
Reference in a new issue