Anons79 Mini Shell

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

�
�Udac	@saddlZddlZddlmZddlmZmZddlmZddl	m
Z
ddlmZm
Z
ddlmZyddlmZeZWnek
r�eZnXydd	lmZeZWnek
r�eZnXed
ddd
g�ZdZiidd6d6idd6d6idd6d6idd6d6idd6d6idd6d6idd6d6idd6d 6id!d6d"6id#d6d$6id%d6d&6id'd6d(6id)d6d*6id+d6d,6id-d6d.6Zie�d/6ed0d1�d26ed3ed4gf�d56ed3ed6gfd7e�d86ed3ed9gfd0d:�d;6ed0d1�d<6ed0d=d>d?d@d?dAg�dB6Zied0dCdDe�dE6Z ie�dF6ed>d�dG6ed>d�dH6Z!iedIdJ�d/6edIdJd0d1�d26edIdJ�d56edIdJd7e�d86edIdJd0d:�d;6edIdJd0d1�d<6Z"e j#e"�ej$dK�gZ%iej$dL�dM6ej$dN�dO6iej$dP�dM6ej$dQ�dO6iej$dR�dM6ej$dQ�dO6iej$dS�dM6ej$dQ�dO6iej$dT�dM6ej$dQ�dO6iej$dU�dM6ej$dQ�dO6gZ&dV�Z'dW�Z(dX�Z)dddY�Z*ddddZ�Z+d[�Z,d\�Z-d]�Z.d^�Z/ddd_�Z0d`�Z1dedeedda�Z2ddb�Z3ddcdd�Z4de�Z5eedeeddddf�Z6edg�Z7dhdi�Z8dhdj�Z9ddk�Z:dl�Z;dS(mi����N(tDiffer(tto_texttto_bytes(tenv_fallback(tto_list(t
ConnectiontConnectionError(tNetconfConnection(tto_xml(tetreetmergetcreatetreplacetdeletes){urn:ietf:params:xml:ns:netconf:base:1.0}s'urn:ietf:params:xml:ns:netconf:base:1.0txct
BASE_NSMAPs5http://cisco.com/ns/yang/Cisco-IOS-XR-infra-infra-cfgt
BANNERS_NSMAPs%http://openconfig.net/yang/interfacestINTERFACES_NSMAPs;http://cisco.com/ns/yang/Cisco-IOS-XR-installmgr-admin-opert
INSTALL_NSMAPs3http://cisco.com/ns/yang/Cisco-IOS-XR-shellutil-cfgsHOST-NAMES_NSMAPs(urn:ietf:params:xml:ns:yang:iana-if-typetidxsM:TYPE_NSMAPs.http://openconfig.net/yang/interfaces/ethernettETHERNET_NSMAPs;http://cisco.com/ns/yang/Cisco-IOS-XR-drivers-media-eth-cfgtCETHERNET_NSMAPs/http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-cfgsINTERFACE-CONFIGURATIONS_NSMAPs7http://cisco.com/ns/yang/Cisco-IOS-XR-infra-statsd-opersINFRA-STATISTICS_NSMAPs0http://cisco.com/ns/yang/Cisco-IOS-XR-ifmgr-opersINTERFACE-PROPERTIES_NSMAPs3http://cisco.com/ns/yang/Cisco-IOS-XR-ip-domain-cfgsIP-DOMAIN_NSMAPs6http://cisco.com/ns/yang/Cisco-IOS-XR-infra-syslog-cfgtSYSLOG_NSMAPs1http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-lib-cfgt	AAA_NSMAPs4http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-locald-cfgtAAA_LOCALD_NSMAPthostttypetinttporttfallbacktANSIBLE_NET_USERNAMEtusernametANSIBLE_NET_PASSWORDtno_logtpasswordtANSIBLE_NET_SSH_KEYFILEtpathtssh_keyfilettimeouttstrtdefaulttclitchoicestnetconft	transporttdicttoptionstprovidertcommandtprompttanswertremoved_in_versiong333333@s
^end-\s*(.+)$sroute-policytstarts
end-policytends
prefix-setsend-setsas-path-sets
community-setsrd-setsextcommunity-setcCstS(N(tiosxr_provider_spec(((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytget_provider_argspec�scCs�t|d�r|jSt|�}|jd�}|dkrRt|j�|_n:|dkrst|j�|_n|jddj|��|jS(Nt
connectiontnetwork_apitcliconfR+tmsgsInvalid connection type {0!s}(	thasattrR8tget_capabilitiestgetRt_socket_pathRt	fail_jsontformat(tmoduletcapabilitiesR9((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytget_connection�scCszt|d�r|jSyt|j�j�}Wn/tk
r`}|jdt|dd��nXtj	|�|_|jS(NRCR;terrorstsurrogate_then_replace(
R<RCRR?R=RR@Rtjsontloads(RBRCtexc((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyR=�s cCs�|}t�}x�|j�D]r\}}|jdd�jd�}|j|dkr_|}	nb|j|dkr{|}	nF|jd|jdd�j|jdd�djdd�d�}	|dkr�|jd
d�dks�|jd
d�dkr|jd
t�t	kr7|	j|jkr�|jdt�t	krit
j|ddt|j
�d�}
nt
j|d�}
|j|
�|
}n[|jdt�t	kr�t
j|	|ddt|j
�d�}
nt
j|	|d�}
|jdd�dk	r|dkr|
jt|jd�|�qqnd}|jd�}|ddkr�|dk	r�|j|dd�dk	r�|j|d�}q�n=|ddkr�|jdd�dk	r�|jd�}q�n|r�|jdt�t	kr%t
j|	|ddt|j
�d�}
nt
j|	|d�}
||
_|jdd�dk	r�|dkr�|
jt|jd�|�q�q�qqWt|�dkr�x|D]}
|j|
�q�Wn||kr�dS|SdS(Ntxpathtt/i����s.//iiR
R
t	operationtunknownteditttagtnsi����tnsmapt_NSMAPtattribt:tatmtvalue(R
R
(R
R
(R
R
(tlisttitemsR>tsplitRPtfindtrsplittNonetFalsetTrueR	tElementtNS_DICTtuppertappendt
SubElementtsettBASE_1_0ttexttlen(t
container_eletxmaptparamtopcodetsub_roottmeta_subtreetkeytmetat
candidatestparenttchildRht	param_keytitem((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytbuild_xml_subtree�sZ			F$*
	-$ (-	$*
c
Cs+|dkr$tjddd�}n(|dkrLtjddtd�}ntj||dt|j�d	�}|dk	r|dkr�t||d
|�qt�}xKt|�D]=}t||d|d
|�}|dk	r�|j	|�q�q�Wx|D]}	|j	|	�q�Wntj
|dd
�S(s;
    Builds netconf xml rpc document from meta-data

    Args:
        container: the YANG container within the namespace
        xmap: meta-data map to build xml tree
        params: Input params that feed xml tree values
        opcode: operation to be performed (merge, delete etc.)

    Example:
        Module inputs:
            banner_params = [{'banner':'motd', 'text':'Ansible banner example', 'state':'present'}]

        Meta-data definition:
            bannermap = collections.OrderedDict()
            bannermap.update([
                ('banner', {'xpath' : 'banners/banner', 'tag' : True, 'attrib' : "operation"}),
                ('a:banner', {'xpath' : 'banner/banner-name'}),
                ('a:text', {'xpath' : 'banner/banner-text', 'operation' : 'edit'})
            ])

            Fields:
                key: exact match to the key in arg_spec for a parameter
                   (prefixes --> a: value fetched from arg_spec, m: value fetched from meta-data)
                xpath: xpath of the element (based on YANG model)
                tag: True if no text on the element
                attrib: attribute to be embedded in the element (e.g. xc:operation="merge")
                operation: if edit --> includes the element in edit_config() query else ignores for get() queries
                value: if key is prefixed with "m:", value is required in meta-data

        Output:
            <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
              <banners xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-infra-infra-cfg">
                <banner xc:operation="merge">
                  <banner-name>motd</banner-name>
                  <banner-text>Ansible banner example</banner-text>
                </banner>
              </banners>
            </config>
    :returns: xml rpc document as a string
    tfilterRtsubtreeR
R
tconfigRRRRSRmRltencodingtunicode(sdeletesmergeN(R	RaRbReRcR^RwRYRRdttostring(
t	containerRktparamsRmtrootRjtsubtree_listRltsubtree_eleRv((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt	build_xml�s *&	
cCsMytjt|��}Wnttjfk
r5nX|jd|j��S(Ns.//%s(R	t
fromstringRt
ValueErrortXMLSyntaxErrorR\tstrip(R�tnode((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt
etree_find,s
cCsMytjt|��}Wnttjfk
r5nX|jd|j��S(Ns.//%s(R	R�RR�R�tfindallR�(R�R�((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt
etree_findall5s
cCst|�}|jd�dkS(NR9R:(R=R>(RBRC((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt
is_cliconf>scCsat|�}|jd�}|dkr]ts@|jdd�ntsY|jdd�ntStS(NR9R+R;sncclient is not installedslxml is not installed(R=R>tHAS_NCCLIENTR@tHAS_XMLR`R_(RBRCR9((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt
is_netconfCscCsOt|�}t|�ray|jd�}Wn/tk
r\}|jdt|dd��nX|St|�rK|rK|rKtjt	|j
���j�d}tjt	|j
���j�d}ttj|��j
�}ttj|��j
�}	||	krHt
�}
t|
j|j�|	j���}dj|�j
�SqKndS(Nsshow commit changes diffR;RERFis
(RDR�R>RR@RR�R	R�RR�tgetchildrenR}RRYtcomparet
splitlinestjoinR^(RBtrunningt	candidatetconntresponseRItrunning_data_eletcandidate_data_eletrunning_datatcandidate_datatdtdiff((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytget_config_diffPs$ %%	$cCsot|�}y-t|�r.|jdt�n
|j�Wn/tk
rj}|jdt|dd��nXdS(Nt	remove_nsR;RERF(RDR�tdiscard_changesR`RR@R(RBR�RI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytdiscard_configisc
	Cs�t|�}d}y�t|�rc|r<|jdt�}q�|jd|d|d|dt�}n@t|�r�|r�|jdd�q�|jd|d|�}nWn/tk
r�}	|jdt	|	d	d
��nX|S(NR�t	confirmedR&tpersistR;sHValidate configuration is not supported with network_cli connection typetcommenttlabelRERF(
RDR^R�tvalidateR`tcommitR�R@RR(
RBR�R�tconfirm_timeoutR�tcheckR�R�treplyRI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt
commit_configts' cCs�t|�}|dk	r�y:t|�rB|jd|dt�}n|j|�}Wq�tk
r�}|jdt|dd��q�XndStt	j
|�dd�j�S(NRxR�R;RERF(RDR^R�R>R`RR@RRR	R}R�(RBRxR�R�RI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytget_oper�s#R�cCs�t|�}yjt|�rBt|jd|d|dt��}n't|�ri|jd|d|�}n|j�}Wn/tk
r�}|jdt	|dd��nX|S(NtsourceRxR�tflagsR;RERF(
RDR�Rt
get_configR`R�R�RR@R(RBt
config_filterR�R�touttcfgRI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyR��s' cCs@|jdd|�}tj||tj�}|r8tStSdS(NR0s.show configuration history detail | include %s(R>tretsearchtMR`R_(R�R�R�tlabel_exist((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytcheck_existing_commit_labels�s
c
Cs�t|�}
d}t|�r�z�y~x*t|�D]}|
jd|dt�q1Wt|ddd|�}
t|||
�}|r�|r�t|�n
t	|�Wn/t
k
r�}|jdt|dd��nXWdXn�t
|�r�y�|	rt|
|	�}|r|jdd	|	�qn|
jd|d
|d|d|d
|d|d|	�}|jrn|jd�}n|jd�}Wq�t
k
r�}|jdt|dd��q�Xn|S(NRzR�R�R�R�R;RERFsgcommit label {%s} is already used for an earlier commit, please choose a different label and rerun taskR�tadmint	exclusiveRR�R�R�tshow_commit_config_diff(RDR^R�Rtedit_configR`R�R�R�R�RR@RR�R�t_diffR>(RBtcommand_filterR�RR�R�R�R�t
nc_get_filterR�R�R�RxR�RIt	old_labelR�((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytload_config�s>
$		#cCsVt|�}y|jd|d|�SWn)tk
rQ}|jdt|��nXdS(Ntcommandstcheck_rcR;(RDtrun_commandsRR@R(RBR�R�R8RI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyR��s
tscpcCsbt|�}y |jd|d|d|�Wn/tk
r]}|jdt|dd��nXdS(NR�tdestinationtprotoR;RERF(RDt	copy_fileRR@R(RBtsrctdstR�R�RI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyR��s
 cCsbt|�}y |jd|d|d|�Wn/tk
r]}|jdt|dd��nXdS(NR�R�R�R;RERF(RDtget_fileRR@R(RBR�R�R�R�RI((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyR��s
 cCs�|jd�}x�tD]�}x|t|�D]n\}}|j|�}|r)|jd�r)|r}d|jd�|||<q�d|jd�||<q)q)WqWdj|�}|S(Ns
is  (R[tCONFIG_MISPLACED_CHILDRENt	enumerateR�tgroupR�(Rztforce_diff_prefixt
conf_linestregextindextlineRWtconf((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytsanitize_configs
"cCs�|jd�}|jd�}x�tD]�}g}x�t|�D]�\}}|dj|�}	|	r{|	jd�r{|}
q>|dj|�}|r>|jd�r>|}t}
x*|D]"\}}|
|kr�t}
Pq�q�W|
r�|j|
|f�q�q>q>Wx�|D]�\}}t}|||kr>|j||�}n	t}qxCt	||d�D].}||||kr�|d}q[t}Pq[W|r|j||�}x:t	||d�D]"}|||||<|d}q�WqqWq%Wdj
|�}|S(Ns
R4iR5i(R[tCONFIG_BLOCKS_FORCED_IN_DIFFR�R�R�R`R_RdR�trangeR�(RzR�R�R�tcandidate_linesR�tblock_index_start_endR�R�tstartretstart_indextendret	end_indext	new_blockt
prev_starttprev_endR4R5R�trun_conf_start_indextiR�((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pytmask_config_blocks_from_diffsH
	
(<RGR�tdifflibRtansible.module_utils._textRRtansible.module_utils.basicRt)ansible.module_utils.network.common.utilsRtansible.module_utils.connectionRRt+ansible.module_utils.network.common.netconfRt
ncclient.xml_RR`R�tImportErrorR_tlxmlR	R�t	frozensett	_EDIT_OPSRgR^RbR-R6tiosxr_argument_spectcommand_spectiosxr_top_spectupdatetcompileR�R�R7RDR=RwR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/ansible/module_utils/network/iosxr/iosxr.pyt<module>s�






%

			@A						
				5

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