
    Vh                         d dl mZmZmZ eZdZd dlZd dlZd dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ  G d
 de      Zy)    )absolute_importdivisionprint_functiona  
---
deprecated:
  removed_in: 6.0.0
  why: This collection and all content in it is unmaintained and deprecated.
  alternative: Unknown.
author: Unknown (!UNKNOWN)
name: edgeos
short_description: Use edgeos cliconf to run command on EdgeOS platform
description:
  - This edgeos plugin provides low level abstraction apis for
    sending and receiving CLI commands from Ubiquiti EdgeOS network devices.
N)chain)AnsibleConnectionFailure)to_text)Mapping)to_list)CliconfBasec                   X     e Zd Zd Zd
dZddZddZddZd ZddZ	d Z
 fd	Z xZS )Cliconfc                 z   i }d|d<   | j                  d      }t        |d      j                         }t        j                  d|      }|r|j                  d      |d<   t        j                  d	|      }|r|j                  d      |d
<   | j                  d      }t        |d      j                         |d<   |S )Nedgeos
network_oszshow versionsurrogate_or_strict)errorszVersion:\s*v?(\S+)   network_os_versionzHW model:\s*(\S+)network_os_modelzshow host namenetwork_os_hostname)getr   stripresearchgroup)selfdevice_inforeplydatamatchs        l/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/network/plugins/cliconf/edgeos.pyget_device_infozCliconf.get_device_info$   s    $,L!(u%:;AAC		/605AK,-		.5.3kk!nK*+)*-4UCX-Y-_-_-a)*    c                 $    | j                  d      S )Nzshow configuration commands|catsend_command)r   sourceflagsformats       r!   
get_configzCliconf.get_config8   s      !BCCr#   c                 \    t        dgt        |            D ]  }| j                  |        y )N	configure)r   r
   r&   )r   	candidatecommitreplacecommentcmds         r!   edit_configzCliconf.edit_config;   s-    +	(:; 	#Cc"	#r#   c                 0    | j                  ||||||      S )N)commandpromptanswersendonlynewline	check_allr%   )r   r4   r5   r6   r7   r8   r9   s          r!   r   zCliconf.get?   s-      Yakr  H   I  	Ir#   c                 R    |rdj                  |      }nd}| j                  |       y )Nzcommit comment "{0}"r.   )r)   r&   )r   r0   r4   s      r!   r.   zCliconf.commitB   s(    ,33G<GG'"r#   c                 &    | j                  d       y )Nzexit discardr%   )r   argskwargss      r!   discard_changeszCliconf.discard_changesI   s    .)r#   c                 T   |t        d      t               }t        |      D ]\  }t        |t              sd|i}|j                  dd       }|rt        d|z        	  | j                  di |}|j                  |       ^ |S # t        $ r}|r t        |d|      }Y d }~3d }~ww xY w)Nz'commands' value is requiredr4   outputz3'output' value %s is not supported for run_commandserr )

ValueErrorlistr
   
isinstancer	   popr&   r   getattrappend)r   commandscheck_rc	responsesr1   r@   outes           r!   run_commandszCliconf.run_commandsL   s    ;<<F	8$ 	"Cc7+ #&WWXt,F !VY_!_``+'d''.#. S!	""  , +a*+s   B	B'B""B'c                     ddddddddddddS )NFT)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_replacerB   )r   s    r!   get_device_operationszCliconf.get_device_operationsd   s-    %*#!&!&#('+,1#(*/&+ %
 	
r#   c                     t         t        |          }|dxx   g dz  cc<   | j                         |d<   t	        j
                  |      S )Nrpc)r.   r>   rN   device_operations)superr   get_capabilitiesr[   jsondumps)r   result	__class__s     r!   r`   zCliconf.get_capabilitiess   sD    w68uFF&*&@&@&B"#zz&!!r#   )runningNtext)NTFN)NNFTF)N)NT)__name__
__module____qualname__r"   r*   r2   r   r.   r>   rN   r[   r`   __classcell__)rd   s   @r!   r   r   "   s7    (D#I#*0
" "r#   r   )
__future__r   r   r   type__metaclass__DOCUMENTATIONr   ra   	itertoolsr   ansible.errorsr   ansible.module_utils._textr   /ansible.module_utils.common._collections_compatr	   Oansible_collections.ansible.netcommon.plugins.module_utils.network.common.utilsr
   ansible.plugins.cliconfr   r   rB   r#   r!   <module>ru      sB   
 C B 
   3 . C c /U"k U"r#   