Note
This plugin is part of the netapp.ontap collection (version 21.1.1).
To install it use: ansible-galaxy collection install netapp.ontap
.
To use it in a playbook, specify: netapp.ontap.na_ontap_restit
.
New in version 20.4.0: of netapp.ontap
response
.status_code
, error_code
, error_message
are set to help with diagnosing the issue,The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments |
---|---|---|
api string / required | The REST API to call (eg cluster/software, svms/svm). | |
body dictionary | A dictionary for the info parameter aliases: info | |
cert_filepath string added in 20.6.0 of netapp.ontap | path to SSL client cert file (.pem). not supported with python 2.6. | |
feature_flags dictionary added in 20.5.0 of netapp.ontap | Enable or disable a new feature. This can be used to enable an experimental feature or disable a new feature that breaks backward compatibility. Supported keys and values are subject to change without notice. Unknown keys are ignored. | |
hal_linking boolean |
| if true, HAL-encoded links are returned in the response. |
hostname string / required | The hostname or IP address of the ONTAP instance. | |
http_port integer | Override the default port (80 or 443) with this port | |
https boolean |
| Enable and disable https. Ignored when using REST as only https is supported. Ignored when using SSL certificate authentication as it requires SSL. |
key_filepath string added in 20.6.0 of netapp.ontap | path to SSL client key file. | |
method string | Default: "GET" | The REST method to use. |
ontapi integer | The ontap api version to use | |
password string | Password for the specified user. aliases: pass | |
query dictionary | A list of dictionaries for the query parameters | |
use_rest string | Default: "auto" | REST API if supported by the target system for all the resources and attributes the module requires. Otherwise will revert to ZAPI. always -- will always use the REST API never -- will always use the ZAPI auto -- will try to use the REST Api |
username string | This can be a Cluster-scoped or SVM-scoped account, depending on whether a Cluster-level or SVM-level API is required. For more information, please read the documentation https://mysupport.netapp.com/NOW/download/software/nmsdk/9.4/. Two authentication methods are supported 1. basic authentication, using username and password, 2. SSL certificate authentication, using a ssl client cert file, and optionally a private key file. To use a certificate, the certificate must have been installed in the ONTAP cluster, and cert authentication must have been enabled. aliases: user | |
validate_certs boolean |
| If set to no , the SSL certificates will not be validated.This should only set to False used on personally controlled sites using self-signed certificates. |
vserver_name string | if provided, forces vserver tunneling. username identifies a cluster admin account. | |
vserver_uuid string | if provided, forces vserver tunneling. username identifies a cluster admin account. |
Note
- name: Ontap REST API hosts: localhost gather_facts: False collections: - netapp.ontap vars: login: &login hostname: "{{ admin_ip }}" username: "{{ admin_username }}" password: "{{ admin_password }}" https: true validate_certs: false svm_login: &svm_login hostname: "{{ svm_admin_ip }}" username: "{{ svm_admin_username }}" password: "{{ svm_admin_password }}" https: true validate_certs: false tasks: - name: run ontap REST API command as cluster admin na_ontap_restit: <<: *login api: cluster/software register: result - debug: var=result - assert: { that: result.status_code==200, quiet: True } - name: run ontap REST API command as cluster admin na_ontap_restit: <<: *login api: cluster/software query: fields: version register: result - debug: var=result - assert: { that: result.status_code==200, quiet: True } - name: run ontap REST API command as cluster admin na_ontap_restit: <<: *login api: svm/svms register: result - debug: var=result - assert: { that: result.status_code==200, quiet: True } - name: run ontap REST API command as cluster admin na_ontap_restit: <<: *login api: svm/svms query: fields: aggregates,cifs,nfs,uuid query_fields: name query: trident_svm hal_linking: true register: result - debug: var=result - name: run ontap REST API command as vsadmin na_ontap_restit: <<: *svm_login api: svm/svms register: result - debug: var=result - assert: { that: result.status_code==200, quiet: True } - name: run ontap REST API command as vserver tunneling na_ontap_restit: <<: *login api: storage/volumes vserver_name: ansibleSVM register: result - debug: var=result - assert: { that: result.status_code==200, quiet: True } - set_fact: uuid: "{{ result.response.records | json_query(get_uuid) }}" vars: get_uuid: "[? name=='deleteme_ln1'].uuid" - debug: var=uuid - name: run ontap REST API command as DELETE method with vserver tunneling na_ontap_restit: <<: *login api: "storage/volumes/{{ uuid[0] }}" method: DELETE vserver_name: ansibleSVM query: return_timeout: 60 register: result when: uuid|length == 1 - debug: var=result - assert: { that: result.skipped|default(false) or result.status_code|default(404) == 200, quiet: True } - name: run ontap REST API command as POST method with vserver tunneling na_ontap_restit: <<: *login api: storage/volumes method: POST vserver_name: ansibleSVM query: return_records: "true" return_timeout: 60 body: name: deleteme_ln1 aggregates: - name: aggr1 register: result - debug: var=result - assert: { that: result.status_code==201, quiet: True } - name: run ontap REST API command as DELETE method with vserver tunneling # delete test volume if present na_ontap_restit: <<: *login api: "storage/volumes/{{ result.response.records[0].uuid }}" method: DELETE vserver_name: ansibleSVM query: return_timeout: 60 register: result - debug: var=result - assert: { that: result.status_code==200, quiet: True } # error cases - name: run ontap REST API command na_ontap_restit: <<: *login api: unknown/endpoint register: result ignore_errors: True - debug: var=result - assert: { that: result.status_code==404, quiet: True }
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
error_code string | On error | If the REST API was executed but failed, the error code set by the REST API. Not present if successful, or if the REST API call cannot be performed. |
error_message string | On error | If the REST API was executed but failed, the error message set by the REST API. Not present if successful, or if the REST API call cannot be performed. |
response dictionary | On success | If successful, a json dictionary returned by the REST API. If the REST API was executed but failed, an empty dictionary. Not present if the REST API call cannot be performed. |
status_code string | Always | The http status code. |
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/netapp/ontap/na_ontap_restit_module.html