Documentation

avi_api_session - Avi API Module

New in version 2.3.

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
(added in 2.5)
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 Default:
16.4.4
Avi API version of to use for Avi API and objects.
avi_credentials
(added in 2.5)
Avi Credentials dictionary which can be used in lieu of enumerating Avi Controller login details.
controller Default:
IP address or hostname of the controller. The default value is the environment variable AVI_CONTROLLER.
data
HTTP body in YAML or JSON format.
http_method
required
    Choices:
  • get
  • put
  • post
  • patch
  • delete
Allowed HTTP methods for RESTful services and are supported by Avi Controller.
params
Query parameters passed to the HTTP API.
password Default:
Password of Avi user in Avi controller. The default value is the environment variable AVI_PASSWORD.
path
Path for Avi API resource. For example, path: virtualservice will translate to api/virtualserivce.
tenant Default:
admin
Name of tenant used for all Avi API calls and context of object.
tenant_uuid Default:
UUID of tenant used for all Avi API calls and context of object.
timeout Default:
60
Timeout (in seconds) for Avi API calls.
username Default:
Username used for accessing Avi controller. The default value is the environment variable AVI_USERNAME.

Notes

Note

Examples

- 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

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
obj
dict
success, changed
Avi REST resource



Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Maintenance

This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.

For a list of other modules that are also maintained by the Ansible Community, see here.

Author

Hint

If you notice any issues in this documentation you can edit this document to improve it.