mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Copyright: (c) 2019, Ansible Project
|
||
|
# Simplified BSD License (see licenses/simplified_bsd.txt or https://opensource.org/licenses/BSD-2-Clause)
|
||
|
|
||
|
from __future__ import absolute_import, division, print_function
|
||
|
__metaclass__ = type
|
||
|
|
||
|
import json
|
||
|
from ansible.module_utils._text import to_text
|
||
|
from ansible.module_utils.basic import env_fallback
|
||
|
from ansible_collections.ansible.netcommon.plugins.module_utils.network.common.utils import to_list
|
||
|
from ansible.module_utils.connection import Connection, ConnectionError
|
||
|
|
||
|
_DEVICE_CONFIGS = {}
|
||
|
|
||
|
|
||
|
def get_connection(module):
|
||
|
return Connection(module._socket_path)
|
||
|
|
||
|
|
||
|
def load_config(module, commands):
|
||
|
connection = get_connection(module)
|
||
|
|
||
|
try:
|
||
|
resp = connection.edit_config(candidate=commands)
|
||
|
return resp.get('response')
|
||
|
except ConnectionError as exc:
|
||
|
module.fail_json(msg=to_text(exc))
|
||
|
|
||
|
|
||
|
def run_commands(module, commands, check_rc=True):
|
||
|
connection = get_connection(module)
|
||
|
try:
|
||
|
return connection.run_commands(commands=commands, check_rc=check_rc)
|
||
|
except ConnectionError as exc:
|
||
|
module.fail_json(msg=to_text(exc))
|
||
|
|
||
|
|
||
|
def exec_scp(module, command):
|
||
|
connection = Connection(module._socket_path)
|
||
|
return connection.scp(**command)
|
||
|
|
||
|
|
||
|
def get_config(module, flags=None, compare=None):
|
||
|
flag_str = ' '.join(to_list(flags))
|
||
|
try:
|
||
|
return _DEVICE_CONFIGS[flag_str]
|
||
|
except KeyError:
|
||
|
connection = get_connection(module)
|
||
|
try:
|
||
|
out = connection.get_config(flags=flags, compare=compare)
|
||
|
except ConnectionError as exc:
|
||
|
module.fail_json(msg=to_text(exc, errors='surrogate_then_replace'))
|
||
|
cfg = to_text(out, errors='surrogate_then_replace').strip()
|
||
|
_DEVICE_CONFIGS[flag_str] = cfg
|
||
|
return cfg
|
||
|
|
||
|
|
||
|
def check_args(module, warnings):
|
||
|
pass
|
||
|
|
||
|
|
||
|
def get_defaults_flag(module):
|
||
|
connection = get_connection(module)
|
||
|
try:
|
||
|
out = connection.get_defaults_flag()
|
||
|
except ConnectionError as exc:
|
||
|
module.fail_json(msg=to_text(exc, errors='surrogate_then_replace'))
|
||
|
return to_text(out, errors='surrogate_then_replace').strip()
|