Setting VDB Snapshot Policy when Provisioning via API (KBA4039)
KBA
KBA# 4039Setting VDB Snapshot Policy
The provisioning API does not include a parameter to set the VDB snapshot policy. To set the snapshot policy to the selected value, the GUI first calls the provision API and then immediately calls the policy API. This article provides the API calls required to apply a policy to a provisioned VDB.
Provision API
=== POST http://[delphix_platform]/resources/json/delphix/provision ===
API JSON POST Parameters:
{......}
Policy Apply API
=== POST http://[delphix_platform]/resources/json/delphix/policy/POLICY_SNAPSHOT-2/apply ===
API JSON POST Parameters:
{"target":"ORACLE_DB_CONTAINER-46","type":"PolicyApplyTargetParameters"}
Where the "POLICY_SNAPSHOT-2" reference is the "None: SnapshotPolicy" and the
"ORACLE_DB_CONTAINER-46" is the VDB database reference.
API Used for Database List
=== GET /resources/json/delphix/database === === RESPONSE === { "type": "ListResult", "status": "OK", "result": [ { "type": "OracleDatabaseContainer", "reference": "ORACLE_DB_CONTAINER-46", "namespace": null, "name": "vorcl", "group": "GROUP-6", "provisionContainer": "ORACLE_DB_CONTAINER-2", "creationTime": "2019-04-05T07:08:16.223Z", "currentTimeflow": "ORACLE_TIMEFLOW-2", "previousTimeflow": null, "description": "", "runtime": { "type": "OracleDBContainerRuntime", "logSyncActive": true, "preProvisioningStatus": null, "crossPlatformEligible": false, "crossPlatformScriptUploaded": false, "liveSourceEligible": true }, ... ... ... Etc ... ... ...
To get a specific vdb or dsource
=== GET /resources/json/delphix/database/APPDATA_CONTAINER-8 === === RESPONSE === { "type": "OKResult", "status": "OK", "result": { "type": "AppDataContainer", "reference": "APPDATA_CONTAINER-8", "namespace": null, "name": "C:\\Python27", "group": "GROUP-1", "provisionContainer": null, "creationTime": "2019-05-10T05:12:14.890Z", "currentTimeflow": "APPDATA_WINDOWS_TIMEFLOW-10", "previousTimeflow": null, "description": "", "runtime": { "type": "AppDataContainerRuntime", "logSyncActive": false, "preProvisioningStatus": null }, "transformation": false, "masked": false, "os": "Windows", "processor": "x86", "sourcingPolicy": { "type": "SourcingPolicy", "logsyncEnabled": false }, "performanceMode": "DISABLED", "toolkit": "APPDATA_TOOLKIT-1", "guid": "6c23096d-f2de-4fa4-a9ca-932b20d89076" }, "job": null, "action": null }
API Used for Policy List
=== GET /resources/json/delphix/policy === === RESPONSE === { "type": "ListResult", "status": "OK", "result": [ { "type": "SyncPolicy", "reference": "POLICY_SYNC-1", "namespace": null, "name": "None:SyncPolicy", "customized": false, "effectiveType": "DIRECT_APPLIED", "scheduleList": [], "timezone": { "type": "TimeZone", "id": "US/Pacific", "offset": 420, "offsetString": "UTC -07:00" }, "default": false }, { "type": "SnapshotPolicy", "reference": "POLICY_SNAPSHOT-2", "namespace": null, "name": "None:SnapshotPolicy", "customized": false, "effectiveType": "DIRECT_APPLIED", "scheduleList": [], "timezone": { "type": "TimeZone", "id": "US/Pacific", "offset": 420, "offsetString": "UTC -07:00" }, "default": false }, ... ... ... Etc ... ... ...
To get a specific policy
=== GET /resources/json/delphix/policy/POLICY_SYNC-1 === === RESPONSE === { "type": "OKResult", "status": "OK", "result": { "type": "SyncPolicy", "reference": "POLICY_SYNC-1", "namespace": null, "name": "None:SyncPolicy", "customized": false, "effectiveType": "DIRECT_APPLIED", "scheduleList": [], "timezone": { "type": "TimeZone", "id": "US/Pacific", "offset": 420, "offsetString": "UTC -07:00" }, "default": false }, "job": null, "action": null }
Applying a Policy to a Provisioned VDB
For API Developers, you will need to use the above API's in this sequence to apply a Policy to a provisioned VDB.
- Provision Database API
- Get Database API database list to get the respective database "reference" object value, for Oracle it's in this format: ORACLE_DB_CONTAINER-#
[ Optional: Create a New Policy ]
- Get Policy API policy list to get the respective policy "reference" object value, POLICY_SYNC-#
- Apply the Policy to the Database, vie the policy/[reference]/apply API call, using the database and policy reference from steps 2 and 3.
Policy API Call
json='{"target":"ORACLE_DB_CONTAINER-81","type":" PolicyApplyTargetParameters"}' echo " " echo "Policy " STATUS=`curl -sX POST -k --data @- ${BaseURL}/policy/POLICY_ SNAPSHOT-2/apply -b "${COOKIE}" -H "${CONTENT_TYPE}" <<EOF ${json} EOF {"type":"OKResult","status":" OK","result":"","job":null," action":"ACTION-2402"}`
Related Articles
The following articles may provide more information or related information to this article: