On this page
community.network.avi_api_session – Avi API Module
Note
This plugin is part of the community.network collection (version 3.0.0).
You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.network.
To use it in a playbook, specify: community.network.avi_api_session.
Synopsis
- This module can be used for calling any resources defined in Avi REST API. 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.
 
Requirements
The below requirements are needed on the host that executes this module.
- avisdk
 
Parameters
| Parameter | Choices/Defaults | Comments | |
|---|---|---|---|
| api_context
        
        dictionary
         | 
      
        
        Avi API context that includes current session ID and CSRF Token.
        
       
        This allows user to perform single login and re-use the session.
         | 
     ||
| api_version
        
        string
         | 
      Default: 
        "16.4.4"
         | 
      
        
        Avi API version of to use for Avi API and objects.
         | 
     |
| avi_credentials
        
        dictionary
         | 
      
        
        Avi Credentials dictionary which can be used in lieu of enumerating Avi Controller login details.
         | 
     ||
| api_version
        
        string
         | 
      Default: 
        "16.4.4"
         | 
      
        
        Avi controller version
         | 
     |
| controller
        
        string
         | 
      
        
        Avi controller IP or SQDN
         | 
     ||
| csrftoken
        
        string
         | 
      
        
        Avi controller API csrftoken to reuse existing session with session id
         | 
     ||
| password
        
        string
         | 
      
        
        Avi controller password
         | 
     ||
| port
        
        string
         | 
      
        
        Avi controller port
         | 
     ||
| session_id
        
        string
         | 
      
        
        Avi controller API session id to reuse existing session with csrftoken
         | 
     ||
| tenant
        
        string
         | 
      Default: 
        "admin"
         | 
      
        
        Avi controller tenant
         | 
     |
| tenant_uuid
        
        string
         | 
      
        
        Avi controller tenant UUID
         | 
     ||
| timeout
        
        string
         | 
      Default: 
        300
         | 
      
        
        Avi controller request timeout
         | 
     |
| token
        
        string
         | 
      
        
        Avi controller API token
         | 
     ||
| username
        
        string
         | 
      
        
        Avi controller username
         | 
     ||
| avi_disable_session_cache_as_fact
        
        boolean
         | 
      
       
  | 
      
        
        It disables avi session information to be cached as a fact.
         | 
     |
| controller
        
        string
         | 
      Default: 
        ""
         | 
      
        
        IP address or hostname of the controller. The default value is the environment variable  AVI_CONTROLLER.
        | 
     |
| data
        
        string
         | 
      
        
        HTTP body in YAML or JSON format.
         | 
     ||
| http_method
        
        string / required
         | 
      
       
  | 
      
        
        Allowed HTTP methods for RESTful services and are supported by Avi Controller.
         | 
     |
| params
        
        string
         | 
      
        
        Query parameters passed to the HTTP API.
         | 
     ||
| password
        
        string
         | 
      Default: 
        ""
         | 
      
        
        Password of Avi user in Avi controller. The default value is the environment variable  AVI_PASSWORD.
        | 
     |
| path
        
        string
         | 
      
        
        Path for Avi API resource. For example,  path: virtualservice will translate to api/virtualserivce.
        | 
     ||
| tenant
        
        string
         | 
      Default: 
        "admin"
         | 
      
        
        Name of tenant used for all Avi API calls and context of object.
         | 
     |
| tenant_uuid
        
        string
         | 
      Default: 
        ""
         | 
      
        
        UUID of tenant used for all Avi API calls and context of object.
         | 
     |
| timeout
        
        string
         | 
      Default: 
        60
         | 
      
        
        Timeout (in seconds) for Avi API calls.
         | 
     |
| username
        
        string
         | 
      Default: 
        ""
         | 
      
        
        Username used for accessing Avi controller. The default value is the environment variable  AVI_USERNAME.
        | 
     |
Notes
Note
- For more information on using Ansible to manage Avi Network devices see https://www.ansible.com/ansible-avi-networks.
 
Examples
- name: Get Pool Information using avi_api_session
  community.network.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
  community.network.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
  community.network.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
  Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
| obj
        
        dictionary
         | 
      success, changed | 
        
        Avi REST resource
          | 
     
Authors
- Gaurav Rastogi (@grastogi23) <grastogi@avinetworks.com>
 
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
 https://docs.ansible.com/ansible/latest/collections/community/network/avi_api_session_module.html