diff options
author | Ansible Core Team <info@ansible.com> | 2020-03-09 09:40:36 +0000 |
---|---|---|
committer | Matt Martz <matt@sivel.net> | 2020-03-23 11:14:21 -0500 |
commit | 36a545553e9a9f5a2b964a5b018c18a75ef429b3 (patch) | |
tree | f42ee7ae78f39caa05fe414b4e3e82b2031554f7 /lib/ansible/plugins/cliconf | |
parent | bc40fe0b6f00372477ef3b5a25505ba06016e897 (diff) | |
download | ansible-36a545553e9a9f5a2b964a5b018c18a75ef429b3.tar.gz |
Migrated to dellemc_networking.os6
Diffstat (limited to 'lib/ansible/plugins/cliconf')
-rw-r--r-- | lib/ansible/plugins/cliconf/dellos6.py | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/lib/ansible/plugins/cliconf/dellos6.py b/lib/ansible/plugins/cliconf/dellos6.py deleted file mode 100644 index 6dba49b143..0000000000 --- a/lib/ansible/plugins/cliconf/dellos6.py +++ /dev/null @@ -1,123 +0,0 @@ -# -# (c) 2017 Red Hat Inc. -# -# (c) 2017 Dell EMC. -# -# This file is part of Ansible -# -# Ansible is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Ansible is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Ansible. If not, see <http://www.gnu.org/licenses/>. -# -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -DOCUMENTATION = """ ---- -cliconf: dellos6 -short_description: Use dellos6 cliconf to run command on Dell OS6 platform -description: - - This dellos6 plugin provides low level abstraction apis for - sending and receiving CLI commands from Dell OS6 network devices. -version_added: 2.5 -""" - -import re -import json - -from itertools import chain - -from ansible.errors import AnsibleConnectionFailure -from ansible.module_utils._text import to_bytes, to_text -from ansible.module_utils.common._collections_compat import Mapping -from ansible.module_utils.network.common.utils import to_list -from ansible.plugins.cliconf import CliconfBase, enable_mode - - -class Cliconf(CliconfBase): - - def get_device_info(self): - device_info = {} - - device_info['network_os'] = 'dellos6' - reply = self.get('show version') - data = to_text(reply, errors='surrogate_or_strict').strip() - - match = re.search(r'Software Version (\S+)', data) - if match: - device_info['network_os_version'] = match.group(1) - - match = re.search(r'System Type (\S+)', data, re.M) - if match: - device_info['network_os_model'] = match.group(1) - - reply = self.get('show running-config | include hostname') - data = to_text(reply, errors='surrogate_or_strict').strip() - match = re.search(r'^hostname (.+)', data, re.M) - if match: - device_info['network_os_hostname'] = match.group(1) - - return device_info - - @enable_mode - def get_config(self, source='running', format='text', flags=None): - if source not in ('running', 'startup'): - return self.invalid_params("fetching configuration from %s is not supported" % source) -# if source == 'running': -# cmd = 'show running-config all' - else: - cmd = 'show startup-config' - return self.send_command(cmd) - - @enable_mode - def edit_config(self, command): - for cmd in chain(['configure terminal'], to_list(command), ['end']): - self.send_command(cmd) - - def get(self, command, prompt=None, answer=None, sendonly=False, newline=True, check_all=False): - return self.send_command(command=command, prompt=prompt, answer=answer, sendonly=sendonly, newline=newline, check_all=check_all) - - def get_capabilities(self): - result = super(Cliconf, self).get_capabilities() - return json.dumps(result) - - def run_commands(self, commands=None, check_rc=True): - if commands is None: - raise ValueError("'commands' value is required") - - responses = list() - for cmd in to_list(commands): - if not isinstance(cmd, Mapping): - cmd = {'command': cmd} - - output = cmd.pop('output', None) - if output: - raise ValueError("'output' value %s is not supported for run_commands" % output) - - try: - out = self.send_command(**cmd) - except AnsibleConnectionFailure as e: - if check_rc: - raise - out = getattr(e, 'err', to_text(e)) - - responses.append(out) - - return responses - - def set_cli_prompt_context(self): - """ - Make sure we are in the operational cli mode - :return: None - """ - if self._connection.connected: - self._update_cli_prompt_context(config_context=')#') |