fixes junos_command module paring of wait_for strings (#5083)
The junos_command module wasn't properly parsing strings to apply conditionals due to the return value not being converted to json before the results where handed to the runner.pull/4420/head
parent
9ed01d0cfd
commit
58a5ec6c51
|
@ -151,12 +151,6 @@ failed_conditionals:
|
||||||
retured: failed
|
retured: failed
|
||||||
type: list
|
type: list
|
||||||
sample: ['...', '...']
|
sample: ['...', '...']
|
||||||
|
|
||||||
xml:
|
|
||||||
description: The raw XML reply from the device
|
|
||||||
returned: when format is xml
|
|
||||||
type: list
|
|
||||||
sample: [['...', '...'], ['...', '...']]
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import ansible.module_utils.junos
|
import ansible.module_utils.junos
|
||||||
|
@ -164,6 +158,7 @@ from ansible.module_utils.basic import get_exception
|
||||||
from ansible.module_utils.network import NetworkModule, NetworkError
|
from ansible.module_utils.network import NetworkModule, NetworkError
|
||||||
from ansible.module_utils.netcli import CommandRunner
|
from ansible.module_utils.netcli import CommandRunner
|
||||||
from ansible.module_utils.netcli import AddCommandError, FailedConditionsError
|
from ansible.module_utils.netcli import AddCommandError, FailedConditionsError
|
||||||
|
from ansible.module_utils.netcli import FailedConditionalError
|
||||||
from ansible.module_utils.junos import xml_to_json
|
from ansible.module_utils.junos import xml_to_json
|
||||||
from ansible.module_utils.six import string_types
|
from ansible.module_utils.six import string_types
|
||||||
|
|
||||||
|
@ -279,24 +274,23 @@ def main():
|
||||||
except FailedConditionsError:
|
except FailedConditionsError:
|
||||||
exc = get_exception()
|
exc = get_exception()
|
||||||
module.fail_json(msg=str(exc), failed_conditions=exc.failed_conditions)
|
module.fail_json(msg=str(exc), failed_conditions=exc.failed_conditions)
|
||||||
|
except FailedConditionalError:
|
||||||
|
exc = get_exception()
|
||||||
|
module.fail_json(msg=str(exc), failed_conditional=exc.failed_conditional)
|
||||||
except NetworkError:
|
except NetworkError:
|
||||||
exc = get_exception()
|
exc = get_exception()
|
||||||
module.fail_json(msg=str(exc))
|
module.fail_json(msg=str(exc))
|
||||||
|
|
||||||
result = dict(changed=False, stdout=list())
|
result = dict(changed=False, stdout=list())
|
||||||
xmlout = list()
|
|
||||||
|
|
||||||
for cmd in commands:
|
for cmd in commands:
|
||||||
try:
|
try:
|
||||||
output = runner.get_command(cmd['command'], cmd.get('output'))
|
output = runner.get_command(cmd['command'], cmd.get('output'))
|
||||||
xmlout.append(output)
|
|
||||||
output = xml_to_json(output)
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
output = 'command not executed due to check_mode, see warnings'
|
output = 'command not executed due to check_mode, see warnings'
|
||||||
result['stdout'].append(output)
|
result['stdout'].append(output)
|
||||||
|
|
||||||
result['warnings'] = warnings
|
result['warnings'] = warnings
|
||||||
result['xml'] = xmlout
|
|
||||||
result['stdout_lines'] = list(to_lines(result['stdout']))
|
result['stdout_lines'] = list(to_lines(result['stdout']))
|
||||||
|
|
||||||
module.exit_json(**result)
|
module.exit_json(**result)
|
||||||
|
|
Loading…
Reference in New Issue