Storage snapshot-policies snapshot_policy.uuid schedules endpoint overview
Overview
In ONTAP, scheduled Snapshot copy creation works based on the schedules associated with Snapshot copy policies. ONTAP provides six cluster-wide schedules: "5min", "8hour", "hourly", "daily", "weekly" and "monthly". A Snapshot copy policy is created using at least one of these schedules and up to 5 schedules can be associated with a Snapshot copy policy. A Snapshot copy policy can be linked to a storage object and based on the schedule in the policy, Snapshot copies are 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 has 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. A schedule can be added, modified or deleted from a Snapshot copy policy.
Snapshot copy policy schedule APIs
The following APIs are used to perform operations related to Snapshot copy policy schedules:
– POST /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/
– GET /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/
– GET /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/{schedule.uuid}
– PATCH /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/{schedule.uuid}
– DELETE /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/{schedule.uuid}
Examples
Adding schedule to a Snapshot copy policy
The POST operation is used to create a schedule for a Snapshot copy policy with the specified attributes.
# The API: /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/ # The call: curl -X POST "https://<mgmt-ip>/api/storage/snapshot-policies/32a0841a-818e-11e9-b4f4-005056bbab9c/schedules" -H "accept: application/hal+json" -d '{"schedule.uuid": "7c985d80-818a-11e9-b4f4-005056bbab9c", "count": "5", "prefix": "new_hourly" }' # The response: HTTP/1.1 201 Created Date: Wed, 29 May 2019 22:41:33 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Location: /api/storage/snapshot-policies/32a0841a-818e-11e9-b4f4-005056bbab9c/schedules Content-Length: 271 Content-Type: application/json { "num_records": 1, "records": [ { "snapshot_policy": { "uuid": "32a0841a-818e-11e9-b4f4-005056bbab9c" }, "schedule": { "uuid": "7c985d80-818a-11e9-b4f4-005056bbab9c" }, "count": 5, "prefix": "new_monthly" } ] }
Retrieving Snapshot copy policy schedules
The GET operation is used to retrieve Snapshot copy policy schedules.
# The API: /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/ # The call: curl -X GET "https://<mgmt-ip>/api/storage/snapshot-policies/32a0841a-818e-11e9-b4f4-005056bbab9c/schedules" -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Wed, 29 May 2019 22:49:58 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 898 Content-Type: application/json { "records": [ { "snapshot_policy": { "uuid": "32a0841a-818e-11e9-b4f4-005056bbab9c" }, "schedule": { "uuid": "63d017dc-818a-11e9-b4f4-005056bbab9c", "name": "5min" } }, { "snapshot_policy": { "uuid": "32a0841a-818e-11e9-b4f4-005056bbab9c" }, "schedule": { "uuid": "64a5c5da-818a-11e9-b4f4-005056bbab9c", "name": "8hour" } }, { "snapshot_policy": { "uuid": "32a0841a-818e-11e9-b4f4-005056bbab9c" }, "schedule": { "uuid": "63e21a3e-818a-11e9-b4f4-005056bbab9c", "name": "daily" } }, { "snapshot_policy": { "uuid": "32a0841a-818e-11e9-b4f4-005056bbab9c" }, "schedule": { "uuid": "7c985d80-818a-11e9-b4f4-005056bbab9c", "name": "monthly" } } ], "num_records": 4 }
Retrieving the attributes of a specific Snapshot copy policy schedule
The GET operation is used to retrieve the attributes of a specific Snapshot copy policy schedule.
# The API: /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/{schedule.uuid} # The call: curl -X GET "https://<mgmt-ip>/api/storage/snapshot-policies/32a0841a-818e-11e9-b4f4-005056bbab9c/schedules/7c985d80-818a-11e9-b4f4-005056bbab9c" -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Wed, 29 May 2019 22:54:06 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 238 Content-Type: application/json { "snapshot_policy": { "uuid": "32a0841a-818e-11e9-b4f4-005056bbab9c" }, "schedule": { "uuid": "7c985d80-818a-11e9-b4f4-005056bbab9c", "name": "monthly" }, "count": 5, "prefix": "new_monthly", "snapmirror_label": "-" }
Updating a Snapshot copy policy schedule
The PATCH operation is used to update the specific attributes of a Snapshot copy policy.
# The API: /api/storage/snapshot-policies/{snapshot_policy.uuid}/schedules/{schedule.uuid} # The call: curl -X PATCH "https://<mgmt-ip>/api/storage/snapshot-policies/32a0841a-818e-11e9-b4f4-005056bbab9c/schedules/7c985d80-818a-11e9-b4f4-005056bbab9c" -d '{"count": "10" }' -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Wed, 29 May 2019 23:08:00 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/{snapshot_policy.uuid}/schedules/{schedule.uuid} # The call: curl -X DELETE "https://<mgmt-ip>/api/storage/snapshot-policies/32a0841a-818e-11e9-b4f4-005056bbab9c/schedules/7c985d80-818a-11e9-b4f4-005056bbab9c" -H "accept: application/hal+json" # The response: HTTP/1.1 200 OK Date: Wed, 29 May 2019 23:12:32 GMT Server: libzapid-httpd X-Content-Type-Options: nosniff Cache-Control: no-cache,no-store,must-revalidate Content-Length: 3 Content-Type: application/json