
    Vh	                     V    d dl mZmZmZ eZdZd dlZd dlm	Z	 d dl
mZ  G d de      Zy)    )absolute_importdivisionprint_functiona-  
author: Ansible Networking Team (@ansible-network)
name: default
short_description: General purpose cliconf plugin for new platforms
description:
- This plugin attemts to provide low level abstraction apis for sending and receiving CLI
  commands from arbitrary network devices.
version_added: 5.2.0
N)AnsibleConnectionFailure)CliconfBasec                   D     e Zd Z fdZd ZddZddZ fdZd Z xZ	S )	Cliconfc                 :    t        t        | 
  |i | i | _        y )N)superr	   __init___device_info)selfargskwargs	__class__s      m/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/ansible/netcommon/plugins/cliconf/default.pyr   zCliconf.__init__   s    gt%t6v6    c                 N    | j                   si }d|d<   || _         | j                   S )Ndefault
network_os)r   )r   device_infos     r   get_device_infozCliconf.get_device_info    s.      K(1K% +D   r   c                 D    | j                         d   }t        d|z        )Nr   z,get_config is not supported by network_os %sr   r   )r   flagsformatr   s       r   
get_configzCliconf.get_config)   s'    ))+L9
&'UXb'bccr   c                 D    | j                         d   }t        d|z        )Nr   z-edit_config is not supported by network_os %sr   )r   	candidatecommitreplacecommentr   s         r   edit_configzCliconf.edit_config-   s'    ))+L9
&'VYc'cddr   c                 x    t         t        |          }| j                         |d<   t	        j
                  |      S )Ndevice_operations)r   r	   get_capabilitiesget_device_operationsjsondumps)r   resultr   s     r   r&   zCliconf.get_capabilities1   s5    w68&*&@&@&B"#zz&!!r   c                     ddddddddddddS )NF)supports_diff_replacesupports_commitsupports_rollbacksupports_defaultssupports_onbox_diffsupports_commit_commentsupports_multiline_delimitersupports_diff_matchsupports_diff_ignore_linessupports_generate_diffsupports_replace )r   s    r   r'   zCliconf.get_device_operations6   s-    %*$!&!&#(',,1#(*/&+ %
 	
r   )NN)NTNN)
__name__
__module____qualname__r   r   r   r#   r&   r'   __classcell__)r   s   @r   r	   r	      s#    !de"

r   r	   )
__future__r   r   r   type__metaclass__DOCUMENTATIONr(   ansible.errorsr   Gansible_collections.ansible.netcommon.plugins.plugin_utils.cliconf_baser   r	   r7   r   r   <module>rB      s3   
 A @   3 _(
k (
r   