
    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  G d de      Zy)    )absolute_importdivisionprint_functiona#  
author: "Egor Zaitsev (@heuels)"
name: routeros
short_description: Use routeros cliconf to run command on MikroTik RouterOS platform
description:
  - This routeros plugin provides low level abstraction APIs for sending and receiving CLI commands from MikroTik RouterOS
    network devices.
N)to_text)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RouterOS
network_osz/system resource printsurrogate_or_strict)errorszversion: (\S+)   network_os_versionz/system routerboard printzmodel: (.+)$network_os_modelz/system identity printzname: (.+)$network_os_hostname)getr   stripresearchgroupM)selfdevice_inforesourcedatamatchrouterboardidentitys          o/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/community/routeros/plugins/cliconf/routeros.pyget_device_infozCliconf.get_device_info   s   $.L!8845x(=>DDF		+T205AK,-hh:;{+@AGGI		/46.3kk!nK*+8845x(=>DDF		.$516QK-.    c                      y N )r   sourceflagsformats       r    
get_configzCliconf.get_config2       r"   c                      y r$   r%   )r   commands     r    edit_configzCliconf.edit_config5   r*   r"   c                 0    | j                  ||||||      S )N)r,   promptanswersendonlynewline	check_all)send_command)r   r,   r/   r0   r1   r2   r3   s          r    r   zCliconf.get8   s-      Yakr  H   I  	Ir"   c                 R    t         t        |          }t        j                  |      S r$   )superr	   get_capabilitiesjsondumps)r   result	__class__s     r    r7   zCliconf.get_capabilities;   s!    w68zz&!!r"   )runningNN)NNFTF)	__name__
__module____qualname__r!   r)   r-   r   r7   __classcell__)r;   s   @r    r	   r	      s"    0I" "r"   r	   )
__future__r   r   r   type__metaclass__DOCUMENTATIONr   r8   +ansible.module_utils.common.text.convertersr   ansible.plugins.cliconfr   r	   r%   r"   r    <module>rG      s4   
 C B 
  ? /%"k %"r"   