fixes return passing output from command through jxmlease in junos_command (#5044)
The return string from the commands was not being passed through the jxmlease library and therefore being returned as a string instead of a json data structure. This also adds back the missing xml key in the return that includes the raw xml string. fixes #5001
This commit is contained in:
parent
c3f815a6f6
commit
a5b32fa0d1
1 changed files with 12 additions and 0 deletions
|
@ -151,15 +151,23 @@ failed_conditionals:
|
|||
retured: failed
|
||||
type: list
|
||||
sample: ['...', '...']
|
||||
|
||||
xml:
|
||||
description: The raw XML reply from the device
|
||||
returned: when format is xml
|
||||
type: list
|
||||
sample: [['...', '...'], ['...', '...']]
|
||||
"""
|
||||
import re
|
||||
|
||||
import ansible.module_utils.junos
|
||||
|
||||
|
||||
from ansible.module_utils.basic import get_exception
|
||||
from ansible.module_utils.network import NetworkModule, NetworkError
|
||||
from ansible.module_utils.netcli import CommandRunner
|
||||
from ansible.module_utils.netcli import AddCommandError, FailedConditionsError
|
||||
from ansible.module_utils.junos import xml_to_json
|
||||
|
||||
VALID_KEYS = {
|
||||
'cli': frozenset(['command', 'output', 'prompt', 'response']),
|
||||
|
@ -270,15 +278,19 @@ def main():
|
|||
module.fail_json(msg=str(exc))
|
||||
|
||||
result = dict(changed=False, stdout=list())
|
||||
xmlout = list()
|
||||
|
||||
for cmd in commands:
|
||||
try:
|
||||
output = runner.get_command(cmd['command'], cmd.get('output'))
|
||||
xmlout.append(output)
|
||||
output = xml_to_json(output)
|
||||
except ValueError:
|
||||
output = 'command not executed due to check_mode, see warnings'
|
||||
result['stdout'].append(output)
|
||||
|
||||
result['warnings'] = warnings
|
||||
result['xml'] = xmlout
|
||||
result['stdout_lines'] = list(to_lines(result['stdout']))
|
||||
|
||||
module.exit_json(**result)
|
||||
|
|
Loading…
Reference in a new issue