
    Vh                         d dl mZmZmZ eZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ  e       Z G d d	e      Zy
)    )absolute_importdivisionprint_function)sleep)to_bytesto_text)	text_type)
ActionBase)Display)	telnetlibc                   *     e Zd ZdZd fd	Zd Z xZS )ActionModuleFc                    | j                   j                  r:t        | j                   j                        r| j                  j	                  d       t
        t        |   ||      }~| j                  j                  rd|d<   d|d<   |S d|d<   d|d<   t        | j                   j                  j                  d	| j                  j                              }t        | j                   j                  j                  d
| j                  j                              }t        | j                   j                  j                  d| j                  j                              }t!        | j                   j                  j                  dd            }t!        | j                   j                  j                  dd            }t!        | j                   j                  j                  dd            }	| j                   j                  j                  dd      }
| j                   j                  j                  dd      }t        | j                   j                  j                  dd            }t        | j                   j                  j                  dd            }| j                   j                  j                  ddg      }| j                   j                  j                  d      xs% | j                   j                  j                  d      }|rd}nd}t#        |t$              r|j'                  d      }t#        |t(              r|r
t+        j,                  |||      | _        t1               | _        	 |
r$| j.                  j5                  t7        |             | j9                  |g|       t:        j=                  d|z         | j.                  j5                  t7        ||z                |rR| j9                  |g|       t:        j=                  d |z         | j.                  j5                  t7        ||z                | j9                  ||       |D ]v  }t:        j=                  d!|z         | j.                  j5                  t7        ||z                | j9                  ||       t:        j=                  d"|z         t?        |	       x | j.                  j5                  t7        d#|z                | j.                  r| j.                  jE                          t        | j2                        |d&<   | j2                  jG                  d      |d'<   |S d|d<   d(|d<   |S # t@        $ r }d|d<   d$t        |      z  |d<   Y d }~d }~wtB        $ r }d|d<   d%t        |      z  |d<   Y d }~d }~ww xY w# | j.                  r| j.                  jE                          t        | j2                        |d&<   | j2                  jG                  d      |d'<   w xY w))Nz8The telnet task does not support the environment keywordTskippedz+The telnet task does not support check modemsgchangedFfailedhostuserpasswordport   timeoutx   pause   send_newlineclrflogin_promptzlogin: password_promptz
Password: promptsz\$ commandcommandsz

,z>>>user: %sz>>>password: %sz>>> %sz<<< %sexitzTelnet action failed: %sz/Telnet timed out trying to find prompt(s): '%s'stdoutstdout_linesz$Telnet requires a command to execute)$_taskenvironmentany_displaywarningsuperr   run_play_context
check_moder   argsgetremote_addrremote_userr   int
isinstancer	   splitlistr   Telnettnbytesoutputwriter   await_promptsdisplayvvvvvr   EOFErrorTimeoutErrorclose
splitlines)selftmp	task_varsresultr   r   r   r   r   r   r   r   r   r    r!   r#   line_endingcmde	__class__s                      k/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/ansible/netcommon/plugins/action/telnet.pyr/   zActionModule.run   s   ::!!c$***@*@&AMM!!"\]|T.sI>(( $F9IF5MR O !%F9$F84::??..vt7I7I7U7UVWD4::??..vt7I7I7U7UVWDtzz22:t?Q?Q?Z?Z[\H tzz**6267D$**//--i=>G

++GQ78E::??..~uEL::??&&vu5D"4::??#6#6~y#QRL%djjoo&9&9:K\&Z[Ojjoo)))fX>Gzz**95X9L9LZ9XH$"(I.#>>#.(D)h#**4w?#g"J#h{&;<&&~w?MM-$"67GGMM(4++=">?**O+<gF&7(&BChx+/E&FG&&w8' %hn5hs[/@&AB**7G<hn5e% GGMM(6K+?"@A ww'.t{{';F8$-1[[-C-CD-IF>*
  $(x  Fu   L'+F8$$>$KF5M# c'+F8$$UX_`aXb$bF5Mc ww'.t{{';F8$-1[[-C-CD-IF>*s>   .F U 	V(!U<7V+ <V(V#V+ #V((V+ +AX	c                     | j                   j                  t        t        t        |            |      \  }}}| xj
                  |z  c_        |st        |      |S )N)r   )r;   expectr9   mapr   r=   rC   )rF   r!   r   indexmatchouts         rN   r?   zActionModule.await_promptsp   sM     GGNN4Hg0F+GQXNYucsw''    )NN)__name__
__module____qualname__TRANSFERS_FILESr/   r?   __classcell__)rM   s   @rN   r   r      s    OSjrU   r   N)
__future__r   r   r   type__metaclass__timer   ansible.module_utils._textr   r   ansible.module_utils.sixr	   ansible.plugins.actionr
   ansible.utils.displayr   Aansible_collections.ansible.netcommon.plugins.plugin_utils.compatr   r@   r    rU   rN   <module>re      s>    A @   8 . - ) W )^: ^rU   