
    Vh                     z    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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: slxos
short_description: Use slxos cliconf to run command on Extreme SLX-OS platform
description:
  - This slxos plugin provides low level abstraction apis for
    sending and receiving CLI commands from Extreme SLX-OS network devices.
N)chain)to_bytesto_text)to_list)CliconfBasec                   :     e Zd Zd ZddZd ZddZ fdZ xZS )Cliconfc                 `   i }d|d<   | j                  d      }t        |d      j                         }t        j                  d|      }|r|j                  d      |d<   | j                  d	      }t        |d      j                         }t        j                  d
|t        j                        }|r|j                  d      |d<   | j                  d      }t        |d      j                         }t        j                  d|t        j                        }|r|j                  d      |d<   |S )Nslxos
network_oszshow versionsurrogate_or_strict)errorsz'SLX\-OS Operating System Version: (\S+)   network_os_versionzshow chassisz^Chassis Name:(\s+)(\S+)   network_os_modelz7show running-config | inc "switch-attributes host-name"z!switch-attributes host-name (\S+)network_os_hostname)getr   stripresearchgroupM)selfdevice_inforeplydatamatchs        k/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/network/plugins/cliconf/slxos.pyget_device_infozCliconf.get_device_info0   s   $+L!(u%:;AAC		DdK05AK,-(u%:;AAC		5tRTTB.3kk!nK*+RSu%:;AAC		>bddK16QK-.    c                     |dvrt        d|z        |dk(  rd}nd}|g n|}|dj                  |      z  }|j                         }| j                  |      S )N)runningstartupz/fetching configuration from %s is not supportedr&   zshow running-configzshow startup-config )
ValueErrorjoinr   send_command)r   sourceflagscmds       r"   
get_configzCliconf.get_configK   sh    //NQWWXXY'C'Cmsxxiik  %%r$   c                     t        dgt        |      dg      D ]Q  }t        |t              r"|d   }|d   }|d   }|j	                  dd      }n|}d }d }d}| j                  |||d|       S y )	Nzconfigure terminalendcommandpromptanswernewlineTF)r   r	   
isinstancedictr   r+   )r   r2   r.   r3   r4   r5   s         r"   edit_configzCliconf.edit_configY   s    ./1AE7K 	GC#t$i.XX'')T2gvvugF	Gr$   c                 0    | j                  ||||||      S )N)r2   r3   r4   sendonlyr5   	check_all)r+   )r   r2   r3   r4   r:   r5   r;   s          r"   r   zCliconf.geth   s-      Yakr  H   I  	Ir$   c                 R    t         t        |          }t        j                  |      S )N)superr   get_capabilitiesjsondumps)r   result	__class__s     r"   r>   zCliconf.get_capabilitiesk   s!    w68zz&!!r$   )r&   N)NNFTF)	__name__
__module____qualname__r#   r/   r8   r   r>   __classcell__)rB   s   @r"   r   r   .   s#    6&GI" "r$   r   )
__future__r   r   r   type__metaclass__DOCUMENTATIONr   r?   	itertoolsr   ansible.module_utils._textr   r   Oansible_collections.ansible.netcommon.plugins.module_utils.network.common.utilsr	   ansible.plugins.cliconfr
   r    r$   r"   <module>rP      s:   & C B 
   8 c /?"k ?"r$   