mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 20:31:27 -07:00
Connection plugins network_cli and netconf (#32521)
* implements jsonrpc message passing for ansible-connection * implements more generic mechanism for persistent connections * starts persistent connection in task_executor if enabled and supported * supports using network_cli as top level connection plugin * enhances logging for persistent connection to stdout * Update action plugins * Fix Python3 RPC * Fix Junos bytes<-->str issues * supports using netconf as top level connection plugin * Error message when running netconf on an unsupported platform * Update tests * Fix `authorize: yes` for `connection: local` * Handle potentially JSON data in terminal * Add clarifying detail if possible on ConnectionError
This commit is contained in:
parent
897b31f249
commit
9c0275a879
26 changed files with 722 additions and 798 deletions
|
@ -27,6 +27,7 @@
|
|||
#
|
||||
from contextlib import contextmanager
|
||||
|
||||
from ansible.module_utils._text import to_bytes, to_text
|
||||
from ansible.module_utils.connection import exec_command
|
||||
|
||||
try:
|
||||
|
@ -38,7 +39,7 @@ NS_MAP = {'nc': "urn:ietf:params:xml:ns:netconf:base:1.0"}
|
|||
|
||||
|
||||
def send_request(module, obj, check_rc=True, ignore_warning=True):
|
||||
request = tostring(obj)
|
||||
request = to_text(tostring(obj), errors='surrogate_or_strict')
|
||||
rc, out, err = exec_command(module, request)
|
||||
if rc != 0 and check_rc:
|
||||
error_root = fromstring(err)
|
||||
|
@ -59,7 +60,7 @@ def send_request(module, obj, check_rc=True, ignore_warning=True):
|
|||
else:
|
||||
module.fail_json(msg=str(err))
|
||||
return warnings
|
||||
return fromstring(out)
|
||||
return fromstring(to_bytes(out, errors='surrogate_or_strict'))
|
||||
|
||||
|
||||
def children(root, iterable):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue