Storage snapshot-policies endpoint overview
Overview
In ONTAP, scheduled Snapshot copy creation works based on Snapshot copy policies. ONTAP provides three cluster-wide Snapshot copy policies: "default", "default-1weekly" and "none". A Snapshot copy policy can have more than one schedule associated with it. A Snapshot copy policy can be linked to a storage object and based on the schedule in the policy, Snapshot copies will be created on the object at that interval. Each schedule in a Snapshot copy policy has a Snapshot copy name prefix attached to it. Every Snapshot copy created using this policy will have this prefix in its name. There is also a retention count associated with every schedule. This count indicates the maximum number of Snapshot copies that can exist for a given schedule. Once the Snapshot copy count reaches the retention count, on the next create operation, the oldest Snapshot copy is deleted.
Snapshot copy policy APIs
The following APIs are used to perform operations related to Snapshot copy policy information:
– POST /api/storage/snapshot-policies
– GET /api/storage/snapshot-policies
– GET /api/storage/snapshot-policies/{uuid}
– PATCH /api/storage/snapshot-policies/{uuid}
– DELETE /api/storage/snapshot-policies/{uuid}
Examples
Creating a Snapshot copy policy
The POST operation is used to create a Snapshot copy policy with the specified attributes.
# The API: /api/storage/snapshot-policies # The call: curl -X POST "https://<mgmt-ip>/api/storage/snapshot-policies" -H "accept: application/hal+json" -d '{"name": "new_policy", "enabled": "true", "comment": "policy comment", "copies": [{ "schedule": { "name": "5min" }, "count": "5", "prefix": "xyz" }], "svm": { "name": "vs0"}}' # The response: HTTP/1.1 201 Created Date: Tue, 12 Mar 2019 21:20:24 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/storage/snapshot-policies/a69d8173-450c-11e9-aa44-005056bbc848 Content-Length: 369 Content-Type: application/json { "num_records": 1, "records": [ { "uuid": "a69d8173-450c-11e9-aa44-005056bbc848", "svm": { "name": "vs0" }, "name": "new_policy", "comment": "This is a 5min schedule policy", "enabled": true, "copies": [ { "count": 5, "schedule": { "name": "5min" } } ] } ] }
Retrieving Snapshot copy policy attributes
The GET operation is used to retrieve Snapshot copy policy attributes.
# The API: /api/storage/snapshot-policies # The call: curl -X GET "https://<mgmt-ip>/api/storage/snapshot-policies/" -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Tue, 12 Mar 2019 21:17:17 GMT Server: libzapid-http X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 686 Content-Type: application/json { "records": [ { "uuid": "0fa7a554-348d-11e9-b55e-005056bbf1c8", "name": "spsv0", "_links": { "self": { "href": "/api/storage/snapshot-policies/0fa7a554-348d-11e9-b55e-005056bbf1c8" } } }, { "uuid": "3c112527-2fe8-11e9-b55e-005056bbf1c8", "name": "default", "_links": { "self": { "href": "/api/storage/snapshot-policies/3c112527-2fe8-11e9-b55e-005056bbf1c8" } } }, { "uuid": "3c1c1656-2fe8-11e9-b55e-005056bbf1c8", "name": "default-1weekly", "_links": { "self": { "href": "/api/storage/snapshot-policies/3c1c1656-2fe8-11e9-b55e-005056bbf1c8" } } }, { "uuid": "3c228b82-2fe8-11e9-b55e-005056bbf1c8", "name": "none", "_links": { "self": { "href": "/api/storage/snapshot-policies/3c228b82-2fe8-11e9-b55e-005056bbf1c8" } } } ], "num_records": 4, "_links": { "self": { "href": "/api/storage/snapshot-policies/" } } }
Retrieving the attributes of a specific Snapshot copy policy
The GET operation is used to retrieve the attributes of a specific Snapshot copy policy.
# The API: /api/storage/snapshot-policies # The call: curl -X GET "https://<mgmt-ip>/api/storage/snapshot-policies/3c112527-2fe8-11e9-b55e-005056bbf1c8" -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Tue, 12 Mar 2019 21:24:48 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 381 Content-Type: application/json { "uuid": "3c112527-2fe8-11e9-b55e-005056bbf1c8", "name": "default", "comment": "Default policy with hourly, daily & weekly schedules.", "enabled": true, "scope": "cluster", "copies": [ { "count": 6, "prefix": "hourly", "schedule": { "name": "hourly" } }, { "count": 2, "prefix": "daily", "schedule": { "name": "daily" } }, { "count": 2, "prefix": "weekly", "schedule": { "name": "weekly" } } ], "_links": { "self": { "href": "/api/storage/snapshot-policies/3c112527-2fe8-11e9-b55e-005056bbf1c8" } } }
Updating a Snapshot copy policy
The PATCH operation is used to update the specific attributes of a Snapshot copy policy.
# The API: /api/storage/snapshot-policies/{uuid} # The call: curl -X PATCH "https://<mgmt-ip>/api/storage/snapshot-policies/ae9e65c4-4506-11e9-aa44-005056bbc848" -d '{"enabled": "false" }' -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Tue, 12 Mar 2019 21:27:04 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 3 Content-Type: application/json
Deleting a Snapshot copy policy
The DELETE operation is used to delete a Snapshot copy policy.
# The API: /api/storage/snapshot-policies/{uuid} # The call: curl -X DELETE "https://<mgmt-ip>/api/storage/snapshot-policies/ae9e65c4-4506-11e9-aa44-005056bbc848" -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Tue, 12 Mar 2019 21:19:04 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 3 Content-Type: application/json