Anons79 Mini Shell

Directory : /proc/self/root/lib/python2.7/site-packages/ansible/plugins/httpapi/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyc

�
�Udac@`s�ddlmZmZmZeZdZddlZddlZddl	m
Z
ddlmZddl
mZddlmZddljjjjZddlmZdd	lmZmZd
efd��YZdd
�Zd�Zd�ZdS(i(tabsolute_importtdivisiontprint_functions0
---
author:
  - "Ujwal Komarla (@ujwalkomarla)"
httpapi: exos
short_description: Use EXOS REST APIs to communicate with EXOS platform
description:
  - This plugin provides low level abstraction api's to send REST API
    requests to EXOS network devices and receive JSON responses.
version_added: "2.8"
N(tto_text(tConnectionError(tto_list(tHttpApiBase(tMapping(t
NetworkConfigtdumpstHttpApicB`s�eZd�Zd�Zd�Zd�Zddd�Zed�Z	d�Z
d�Zd	�Zd
�Z
d�Zddddddd
�Zdddd�ZRS(cO`s5tt|�j||�d|_tj�|_dS(N(tsuperR
t__init__tNonet_device_infot	cookiejart	CookieJart_auth_token(tselftargstkwargs((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyR/s	cC`sCd}i|d6|d6}|jd|dtj|�dd�dS(Ns/auth/tokentusernametpasswordtpathtdatatmethodtPOST(tsend_requesttjsonR	(RRRt	auth_pathtcredentials((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pytlogin4scC`sdS(N((R((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pytlogout9scC`stS(N(tFalse(Rtexc((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pythandle_httperror<stGETc
K`s�idd6}|jj||d|d|jd||�\}}y7|jdkr[i}ntjt|j���}Wn2tk
r�t	dj
t|j�����nX|S(Nsapplication/jsonsContent-TypeRtcookiestheadersi�s$Response was not valid JSON, got {0}(t
connectiontsendRtstatusRtloadsRtgetvaluet
ValueErrorRtformat(RRRRtmessage_kwargsR&tresponset
response_data((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyR?s
3	
	cC`su|dkrtd��nidd6}t�}x=t|�D]/}t|t�sci|d6}nt|d�|d<|jdd�}|r�||j�j	d�kr�td|dj
|j�j	d��f��nt|d�}|jj
d|d	|jd
|dd�\}}	ytjt|	j���}	Wn2tk
rntd
jt|	j�����nX|	j	dd�r�tdj|	d���n|	j	dd�s�tdj|	���n|	d}	|r`|dkr`t|	d�}
t|	d�}|
dkr,tdj|d|���n|dkrWtdj|d|	���n|}	n|j|	�q>W|S(Ns'commands' value is requiredsapplication/jsonsContent-Typetcommandtoutputs4'output' value is %s is invalid. Valid values are %st,s/jsonrpcR%R&RRs$Response was not valid JSON, got {0}terrorsRequest Error, got {0}tresultttextR)t	CLIoutputtERRORs"Command error({1}) for request {0}sBResponse for request {0} doesn't have the CLIoutput field, got {1}(R
R,tlistRt
isinstanceRtstrip_run_script_cli2jsontpoptget_option_valuestgettjointrequest_builderR'R(RRR*RR+RR-tgetKeyInResponsetappend(Rtcommandstcheck_rcR&t	responsestcmdR2RR/R0t	statusOuttcliOut((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pytrun_commandsMsB
	!10
	
	cC`s�i}d|d<|jidd6dd6�}t|dd�j�}tjd	|�}|rs|jd
�|d<ntjd|�}|r�|jd
�|d
<ntjd|�}|r�|jd
�|d<n|S(Ntexost
network_ossshow switch detailR1R6R2terrorstsurrogate_or_strictsExtremeXOS version  (\S+)itnetwork_os_versionsSystem Type: +(\S+)tnetwork_os_modelsSysName: +(\S+)tnetwork_os_hostname(RIRtstriptretsearchtgroup(Rtdevice_infotreplyRtmatch((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pytget_device_infozs
cC`s_i
td6td6td6td6td6td6td6td6td	6td
6td6td6td
6S(Ntsupports_diff_replacetsupports_committsupports_rollbacktsupports_defaultstsupports_commit_commenttsupports_onbox_difftsupports_generate_difftsupports_multiline_delimitertsupports_diff_matchtsupports_diff_ignore_linestsupports_config_replacetsupports_admintsupports_commit_label(R!tTrue(R((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pytget_device_operations�scC`s>iddgd6ddddgd6dd	gd
6ddgd6S(NR6RR-tlinetstricttexacttnonet
diff_matchtblocktdiff_replaceR2((R((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyR=�s


cC`sli}ddddddg|d<|j�|d<|j�|d	<|j|j��d
|d<tj|�S(Ntget_default_flagRIt
get_configRtget_capabilitiestget_difftrpcRUtdevice_operationstexosapitnetwork_api(RXRgtupdateR=RR	(RR5((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyRq�s
cC`sdS(Ntdetail((R((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyRo�sRhc
C`sTi}|j�}|j�}	|dkrC|drCtd��n||	dkrytd|dj|	d�f��n||	dkr�td|dj|	d�f��ntdd	�}
|
j|�|r(|d
kr(|dkr(tdd	d|d
|�}|
j|d|d|d|�}n	|
j}|rFt	|d�nd|d<|S(NR_s4candidate configuration is required to generate diffRls0'match' value %s in invalid, valid values are %ss, Rns2'replace' value %s in invalid, valid values are %stindentiRktconfigtcontentstignore_linesRRWtreplaceRCttconfig_diff(
RgR=R
R,R?Rtloadt
differencetitemsR	(
Rt	candidatetrunningRltdiff_ignore_linesRRntdiffRtt
option_valuest
candidate_objtrunning_objtconfigdiffobjs((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyRr�s"&&
$	R�R6c
C`sS|j�}||dkrBtd|dj|d�f��nidd6dd6}||krutd|��ni||d	6d
d6}|dkr|jidd	6d
d6�}t|d
d�j�}tjd|tj�}	|	r|d	c|	j	d�7<qiSn|d	cdjt
|��7<|d	j�|d	<|j|�dS(NR-s1'format' value %s is invalid. Valid values are %sR3sshow configurationR�s$debug cfgmgr show configuration filetstartups/fetching configuration from %s is not supportedR1R6R2sshow switchRLRMsConfig Selected: +(\S+)\.cfgit i(R=R,R?RIRRQRRRSt	MULTILINERTR(
RtsourceR-tflagstoptions_valuestlookupRFRVRRW((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyRp�s"&N(t__name__t
__module__RRR R#R
RRfRIRXRgR=RqRoRrRp(((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyR
-s				-						R~cC`s.tjtddd|dddt|���S(Ntjsonrpcs2.0tidRtclitparams(RR	tdictR(R1treqid((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyR@�scC`s:t|dd�jd�r6t|�jdd�}n|S(NRLtsurrogate_then_replacesrun script cli2json.pyR~(Rt
startswithtstrR}(R1((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyR;�scC`s5d}x(|D] }||kr
||}Pq
q
W|S(N(R
(R/tkeytkeyOuttitem((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyRA�s

( t
__future__RRRttypet
__metaclass__t
DOCUMENTATIONRRRtansible.module_utils._textRtansible.module_utils.connectionRt)ansible.module_utils.network.common.utilsRtansible.plugins.httpapiRt-ansible.module_utils.six.moves.http_cookiejartmodule_utilstsixtmovesthttp_cookiejarRt/ansible.module_utils.common._collections_compatRt*ansible.module_utils.network.common.configRR	R
R@R;RA(((s@/usr/lib/python2.7/site-packages/ansible/plugins/httpapi/exos.pyt<module>s�	

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