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.
This commit is contained in:
parent
9ed01d0cfd
commit
58a5ec6c51
1 changed files with 4 additions and 10 deletions
|
@ -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 a new issue