mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fix junos_command py3 related issues (#36782)
Fixes #36204 * tostring() input string shoulb be in byte string format * to_ele() input is required in unicode format
This commit is contained in:
parent
2fbfce06e7
commit
41d75783b5
4 changed files with 7 additions and 6 deletions
|
@ -27,7 +27,7 @@
|
|||
#
|
||||
import sys
|
||||
|
||||
from ansible.module_utils._text import to_text, to_native
|
||||
from ansible.module_utils._text import to_text, to_bytes
|
||||
from ansible.module_utils.connection import Connection, ConnectionError
|
||||
|
||||
try:
|
||||
|
@ -67,9 +67,9 @@ class NetconfConnection(Connection):
|
|||
response = self._exec_jsonrpc(name, *args, **kwargs)
|
||||
if 'error' in response:
|
||||
rpc_error = response['error'].get('data')
|
||||
return self.parse_rpc_error(to_native(rpc_error, errors='surrogate_then_replace'))
|
||||
return self.parse_rpc_error(to_bytes(rpc_error, errors='surrogate_then_replace'))
|
||||
|
||||
return fromstring(to_native(response['result'], errors='surrogate_then_replace'))
|
||||
return fromstring(to_bytes(response['result'], errors='surrogate_then_replace'))
|
||||
|
||||
def parse_rpc_error(self, rpc_error):
|
||||
if self.check_rc:
|
||||
|
|
|
@ -171,6 +171,7 @@ import re
|
|||
import shlex
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.module_utils.network.common.netconf import exec_rpc
|
||||
from ansible.module_utils.network.junos.junos import junos_argument_spec, get_configuration, get_connection, get_capabilities
|
||||
from ansible.module_utils.network.common.parsing import Conditional, FailedConditionalError
|
||||
|
@ -240,7 +241,7 @@ def rpc(module, items):
|
|||
if fetch_config:
|
||||
reply = get_configuration(module, format=xattrs['format'])
|
||||
else:
|
||||
reply = exec_rpc(module, tostring(element), ignore_warning=False)
|
||||
reply = exec_rpc(module, to_text(tostring(element), errors='surrogate_then_replace'), ignore_warning=False)
|
||||
|
||||
if xattrs['format'] == 'text':
|
||||
if fetch_config:
|
||||
|
|
|
@ -102,7 +102,7 @@ class NetconfBase(with_metaclass(ABCMeta, object)):
|
|||
"""RPC to be execute on remote device
|
||||
:name: Name of rpc in string format"""
|
||||
try:
|
||||
obj = to_ele(to_bytes(name, errors='surrogate_or_strict'))
|
||||
obj = to_ele(name)
|
||||
resp = self.m.rpc(obj)
|
||||
return resp.data_xml if hasattr(resp, 'data_xml') else resp.xml
|
||||
except RPCError as exc:
|
||||
|
|
|
@ -50,7 +50,7 @@ class Netconf(NetconfBase):
|
|||
device_info['network_os'] = 'junos'
|
||||
ele = new_ele('get-software-information')
|
||||
data = self.execute_rpc(to_xml(ele))
|
||||
reply = to_ele(to_bytes(data, errors='surrogate_or_strict'))
|
||||
reply = to_ele(data)
|
||||
sw_info = reply.find('.//software-information')
|
||||
|
||||
device_info['network_os_version'] = self.get_text(sw_info, 'junos-version')
|
||||
|
|
Loading…
Reference in a new issue