Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyo

�
�Udac@s�ddlZddlZddlZddlZddlmZddlmZmZddl	m
Z
mZddlm
Z
ddlmZddlmZy ddlmZmZeZWnek
r�eZnXydd	lmZWn!ek
r
dd
lmZnXdadai	e �d6e dd
�d6e dedgf�d6e dedgfde�d6e dedgfdd�d6e dd�d6e dd�d6e dd
�d6e dddddg�d 6Z!ie dd!d"e!�d#6Z"i	e d$d%�d6e d$d%dd
�d6e d$d%�d6e d$d%de�d6e d$d%dd�d6e d$d%dd�d6e d$d%dd�d6e d$d%dd
�d6e d$d%dddg�d 6Z#e"j$e#�d&�Z%d'�Z&d(�Z'd)�Z(d*�Z)d+d=d,��YZ*d-�Z+d.�Z,dd/�Z-ed0�Z.d1�Z/d2�Z0d3�Z1d4�Z2d5�Z3d6�Z4d7�Z5d8�Z6d9�Z7d:�Z8d;�Z9d<�Z:dS(>i����N(tenv_fallback(tto_listtComplexList(texec_commandtConnectionError(t	iteritems(t	to_native(tNetconfConnection(tto_xmlt
new_ele_ns(tetree(tElementTreethostttypetinttporttfallbacktANSIBLE_NET_USERNAMEtusernametANSIBLE_NET_PASSWORDtno_logtpasswordtANSIBLE_NET_SSH_KEYFILEtpathtssh_keyfiletbooltuse_ssltvalidate_certsttimeouttdefaulttclitchoicestnetconft	transporttdicttoptionstprovidertremoved_in_versiong333333@cCstjdd|�S(Ns<data\s+.+?(/>|>)s<data\1(tretsub(tdata((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt	to_stringWscCsdS(N((tmoduletwarnings((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
check_args[scCs|jjd�pt�}x]t|�D]O\}}|tkr(|jj|�dkrw|dk	rw||j|<qwq(q(WdS(tload_paramsR$N(tparamstgetR"Rtce_argument_spectNone(R*R$tkeytvalue((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyR-_s
$cCs)ts%t|�t|�}|antS(tget_connection(t_DEVICE_CLI_CONNECTIONR-tCli(R*tconn((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyR4hs

	cCs�|s
|S|jd�}x�tt|��D]t}||sBq,nd||kr,||jd�}||| d|kr�||jddd�||<q�q,q,Wdj|�S(Ns
t~t ti(tsplittrangetlentindextreplacetjoin(tcfgtcmdstiR>((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytrm_config_prefixrs
'R6cBs;eZd�Zd�Zdd�Zed�Zd�ZRS(cCs||_i|_dS(N(t_modulet_device_configs(tselfR*((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt__init__�s	cCs4t|t�r$|jj|�}nt|j|�S(N(t
isinstanceR"REtjsonifyR(RGtcommand((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyR�scCs�|dkrgn|}d}|dj|�7}|j�}y|j|SWn�tk
r�|j|�\}}}|dkr�|jjd|�nt|�j�}x*|D]"}d|kr�t	|�}Pq�q�W||j|<|SXdS(s>Retrieves the current config from the device or cache
        sdisplay current-configuration R9itmsgsinclude-defaultN(
R1R@tstripRFtKeyErrorRREt	fail_jsontstrRD(RGtflagstcmdtrctoutterrRAtflag((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
get_config�s"


cCs�t�}x�t|�D]�}|j|�\}}}|ro|dkro|jjdt|dj�|��ny|jj|�}Wn#tk
r�t	|�j�}nX|j
|�qW|S(sARun list of commands on remote device and return results
        iRLRK(tlistRRREROtcli_err_msgRMt	from_jsont
ValueErrorRPtappend(RGtcommandstcheck_rct	responsestitemRSRTRU((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytrun_commands�s	)
cCs�|jd�\}}}|dkr@|jjddd|�n|jd�\}}}|dkr�|jjddd|�nxW|D]O}|j|�\}}}|dkr�|jjdt|j�|��q�q�W|jd�d	S(
s:Sends configuration commands to the remote device
        smmi-mode enableiRLsunable to set mmi-mode enabletoutputssystem-view immediatelysunable to enter system-viewtreturnN(RRERORYRM(RGtconfigRSRTRURR((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytload_config�s
)N(	t__name__t
__module__RHRR1RWtTrueRaRe(((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyR6�s
		cCsC|s
dSt�}t|�jd�}x�|D]�}|jd�}|sPq/n|rh||krhq/nd|kr�|jdd�j�}n|jd�}|dkr�q/nt|�dkr�|ddkr�|ddkr�q/n|jd�|r/|j|�q/q/W|r,|jdd|�ndj|�j	�dS(s get cli exception messages)Error: Fail to get cli exception message.s
s.,
	 s at '^' positionR:t^iit<t[i����t>t]sCommand: %ss, t.(RjRk(RlRm(
RXRPR;RMR?R=R\tinsertR@t
capitalize(RRRURLterr_list((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyRY�s.	
2
c
Cs^d}ttdtdt�dtd|�dt�dt��|�}|t|��}|S(NttextRKR2RbRtprompttanswer(RR"RhR(R*R]tdefault_outputt	transform((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
to_command�s				cCs1|dkrgn|}t|�}|j|�S(N(R1R4RW(R*RQR7((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyRW�scCs%t|�}|jt||�|�S(N(R4RaRw(R*R]R^R7((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyRascCst|�}|j|�S(Re(R4Re(R*RdR7((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyRescCstS(s ce_unknown_host_cb (Rh(Rtfingerprint((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytce_unknown_host_cbscCs$tjd|�}|sdS|dS(sget netconf set-id values<rpc-reply.+?set-id=\"(\d+)\"iN(R&tfindallR1(txml_strtresult((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
get_nc_set_idscCs�d}x�|r�|r�|dkr8|t|�kr8dS|dkr`t|�t|�kr`dS||}|jdd�s	|j|�d}q	q	W|S(s(get xml specified line valid string dataiR9R:N(R1R=tabsR?tpop(txml_listR>tele((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytget_xml_lines$


cCs�|jd�djd�}|jd�djd�}xUtr�t|d�}t|d�}t|d�}t|d�}|s�|s�|s�|r�|Sd|kr�|j�jd	�dd
}nd|kr�|j�jd	�dd
}n|jd	d�jdd�|jd	d�jdd�kr�|jd	d�jdd�|jd	d�jdd�kr�|j�|jd�q�Pq;Pq;Wdj||�S(
smerge xml1 and xml2s</data>is
s<data>ii����i����txmlnsR9RlR:t/(R;RhR�tlstripR?RR@(txml1txml2t	xml1_listt	xml2_listt	xml1_ele1t	xml1_ele2t	xml2_ele1t	xml2_ele2((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytmerge_nc_xml+s(	  <<
cCs,ts(t|�t|j�}|antS(N(t_DEVICE_NC_CONNECTIONR-Rt_socket_path(R*R7((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytget_nc_connectionIs

	c	CsHt|�}z(|jddd|dddd�}WdXtt|��S(	s set_config ttargettrunningRdtdefault_operationtmergeterror_optionsrollback-on-errorN(R�tedit_configR)R(R*R{R7RT((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
set_nc_configRs
cCst|�}d}|dk	r�|j|dt�}|jd�}|jd�}x�tr�|dk	r�yitddi|d6�}|jtj|��}|dk	r�|j	|jd��n|jd�}WqTt
k
r�PqTXqTWn|dk	rtt|��S|S(s% get_nc_next for exchange capability tif_rpc_replys./*sset-idsget-nexts1http://www.huawei.com/netconf/capability/base/1.0N(
R�R1R/RhtfindR	tdispatch_rpcR
ttostringtextendRR)R(R*R{R7R|tresponsetset_idt
fetch_nodetnext_xml((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytget_nc_next_s$
cCs>t|�}|dk	r*|j|�}ndStt|��S(s get_config N(R�R1R/R)R(R*R{R7R�((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
get_nc_configvs
cCs+t|�}|j|�}tt|��S(s huawei execute-action (R�texecute_actionR)R(R*R{R7R�((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pytexecute_nc_action�scCsg|dk	rcy2t|�}|jd|�}tt|��SWqctk
r_}t|��qcXndS(s huawei execute-cli RKN(R1R�texecute_nc_cliR)Rt	Exception(R*R{R7RTtexc((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyR��scCs�|sd|krtSy5tj|dtjtjdtj�}t|�SWnAtjk
r�tj	�d}|j
dtjkr�tS�nXdS(s* check ip address, Supports IPv4 and IPv6 tiiN(tFalsetsockettgetaddrinfot	AF_UNSPECtSOCK_STREAMtAI_NUMERICHOSTRtgaierrortsystexc_infotargst
EAI_NONAME(tipaddrtresRU((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt
check_ip_addr�s((;R&R�R�t	tracebacktansible.module_utils.basicRt)ansible.module_utils.network.common.utilsRRtansible.module_utils.connectionRRtansible.module_utils.sixRtansible.module_utils._textRt+ansible.module_utils.network.common.netconfRt
ncclient.xml_RR	RhtHAS_NCCLIENTtImportErrorR�tlxmlR
t	xml.etreeRR1R5R�R"tce_provider_specR0tce_top_spectupdateR)R,R-R4RDR6RYRwRWRaReRyR}R�R�R�R�R�R�R�R�R�(((sO/usr/lib/python2.7/site-packages/ansible/module_utils/network/cloudengine/ce.pyt<module>s�





					
	K											
				

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]