Anons79 Mini Shell

Directory : /lib/python2.7/site-packages/ansible/modules/network/avi/
Upload File :
Current File : //lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pyo

�
�Udac@s�dZidd6dgd6dd6ZdZdZd	Zd
dlZd
dlZd
dlmZd
d
l	m
Z
yBd
dlmZm
Z
mZmZmZd
dlmZmZWnek
r�eZnXd�Zedkr�e�ndS(s*
# Created on Aug 12, 2016
#
# @author: Gaurav Rastogi ([email protected]) GitHub ID: grastogi23
#
# module_check: not supported
#
# Copyright: (c) 2017 Gaurav Rastogi, <[email protected]>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
#
s1.1tmetadata_versiontpreviewtstatust	communitytsupported_bysc
---
module: avi_api_session
author: Gaurav Rastogi (@grastogi23) <[email protected]>

short_description: Avi API Module
description:
    - This module can be used for calling any resources defined in Avi REST API. U(https://avinetworks.com/)
    - This module is useful for invoking HTTP Patch methods and accessing resources that do not have an REST object associated with them.
version_added: 2.3
requirements: [ avisdk ]
options:
    http_method:
        description:
            - Allowed HTTP methods for RESTful services and are supported by Avi Controller.
        choices: ["get", "put", "post", "patch", "delete"]
        required: true
    data:
        description:
            - HTTP body in YAML or JSON format.
    params:
        description:
            - Query parameters passed to the HTTP API.
    path:
        description:
            - 'Path for Avi API resource. For example, C(path: virtualservice) will translate to C(api/virtualserivce).'
    timeout:
        description:
            - Timeout (in seconds) for Avi API calls.
        default: 60
extends_documentation_fragment:
    - avi
s�

  - name: Get Pool Information using avi_api_session
    avi_api_session:
      controller: "{{ controller }}"
      username: "{{ username }}"
      password: "{{ password }}"
      http_method: get
      path: pool
      params:
        name: "{{ pool_name }}"
      api_version: 16.4
    register: pool_results

  - name: Patch Pool with list of servers
    avi_api_session:
      controller: "{{ controller }}"
      username: "{{ username }}"
      password: "{{ password }}"
      http_method: patch
      path: "{{ pool_path }}"
      api_version: 16.4
      data:
        add:
          servers:
            - ip:
                addr: 10.10.10.10
                type: V4
            - ip:
                addr: 20.20.20.20
                type: V4
    register: updated_pool

  - name: Fetch Pool metrics bandwidth and connections rate
    avi_api_session:
      controller: "{{ controller }}"
      username: "{{ username }}"
      password: "{{ password }}"
      http_method: get
      path: analytics/metrics/pool
      api_version: 16.4
      params:
        name: "{{ pool_name }}"
        metric_id: l4_server.avg_bandwidth,l4_server.avg_complete_conns
        step: 300
        limit: 10
    register: pool_metrics

sW
obj:
    description: Avi REST resource
    returned: success, changed
    type: dict
i����N(t
AnsibleModule(tdeepcopy(tavi_common_argument_spectansible_returntavi_obj_cmptcleanup_absent_fieldstHAS_AVI(t
ApiSessiontAviCredentialscsUtdtdtddddddg�d	td
ddt�dtd
d
�dtd
d�dtd
ddd��}|jt��td|�}ts�|jdd�St�}|j|�t	j
|j|jd|j
d|jd|jd|jd|jd|j�}|j}|j}t|jjd��}|jjd	d��|jjdd�}|jjdd�}|j}	|dk	r�tj|�}n|jd}
d}|
dk}|r�t|�ni}
|
jidd6dd6�dd g}d!d"g}d#g}|
dkrCt�fd$�|D��rCy�t}t�fd%�|D��s�d&|kr||d&|
d&<nt}nt�fd'�|D��s�|j�d|d|d|
d(|	�}|j�}|r�|d)d*}q�nWnttfk
rqCXt�fd+�|D��sCd}
�d,|d-7�qCn|
dkr�t�fd.�|D��r�|dkrit}t�j d,��d/kr�d&|kr�t�fd0�|D��r�|d&|
d&<t}n|j�d|d|d|
d(|	�}|j�}|rH|d)r?|d)d*}�d,|d-7�qfd}
qi|j!d1kr`d}
qi|}n|r�t"||�}t#|�q�n|
dkr�|j�d|d|d|
d(|	�}|j�}n|
dkr�|s�|
dkr1t$||
�}|�d|d|d|d|d|d(|	�}nd}|
dkrd|j!d1krdt}d2|_!n|
dkr|r|j!d3kr�j%d4�r�t&j'd/�n|r�t|�ni}
|
jidd6dd6�|j�d|d|d|
d(|	�}|j�}t"||�}n|dkr?|j(d5|d6|�St)|||d7|�S(8Nthttp_methodtrequiredtchoicestgettputtposttpatchtdeletetpathttypetstrtparamstdicttdatatjsonargttimeouttinttdefaulti<t
argument_spectmsgszAvi python API SDK (avisdk>=17.1) or requests is not installed. For more details visit https://github.com/avinetworks/sdk.tpasswordttenantttenant_uuidttokentportttinclude_refstinclude_nametclustertgslbsiteopstalerttfileservicetbackupc3s|]}�j|�VqdS(N(t
startswith(t.0turi(R(sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pys	<genexpr>�sc3s|]}�j|�VqdS(N(R/(R0R1(R(sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pys	<genexpr>�stnamec3s|]}�j|�VqdS(N(R/(R0R1(R(sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pys	<genexpr>�stapi_versiontresultsic3s|]}�j|�VqdS(N(R/(R0R1(R(sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pys	<genexpr>�st/tuuidc3s|]}�j|�VqdS(N(R/(R0R1(R(sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pys	<genexpr>�sic3s|]}�j|�VqdS(N(R/(R0R1(R(sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pys	<genexpr>�si�i�i+tpooltchangedtobjtreq(*RtTruetupdateRRRt	fail_jsonR
tupdate_from_ansible_moduleRtget_sessiont
controllertusernameR"RR#R$R%R&RRRtNoneR3tjsontloadsRtanytFalset
IndexErrortKeyErrortlentsplittstatus_codeR	R
tgetattrR/ttimetsleept	exit_jsonR(targument_specstmodulet	api_credstapiR$R#RRRR3tmethodtexisting_objR8tgparamstapi_get_not_allowedtapi_post_not_allowedtapi_put_not_allowedtusing_collectiontrsptrsp_datatfntnew_obj((RsO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pytmain�s�		
			
	)	)'	
			!t__main__(t__doc__tANSIBLE_METADATAt
DOCUMENTATIONtEXAMPLEStRETURNRCRMtansible.module_utils.basicRtcopyRt$ansible.module_utils.network.avi.aviRRR	R
Rt(ansible.module_utils.network.avi.avi_apiRR
tImportErrorRFR_t__name__(((sO/usr/lib/python2.7/site-packages/ansible/modules/network/avi/avi_api_session.pyt<module>s$


#2(

	�

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