Zerto Virtual Replication APIs : Tasks API : Code Examples
  
Code Examples
For complete code examples, see Code Samples.
/v1/tasks cURL Code Example
Retrieve information about a specific task.
curl -D responseHeader -H "Content-Type: application/json" –H "Accept: application/json -H "x-zerto-session: 9UDQD6RG7YF33QJLWQXGJV8C453N277NA22P7FSNWVZCJTWCBRHQ" https://127.0.0.1:9669/v1/tasks?taskidentifier=b59b38ef-afb3-432a-a718-3d07d28c93ad.203d3c12-77eb-4c59-8acd-f6a75bdd2281
For a more code examples, see cURL Code.
/v1/tasks Python Code Example
The following code samples are extracts from the fuller code example, Python Code.
The following code sample checks if a task has completed.
import requests
import base64
 
def IsTaskComplete(zvmIp, sessionId, TaskId):
  url = "https://" + zvmIp + ":9669/v1/tasks/" + TaskId
  headers = {'x-zerto-session': sessionId, 'content-type': 'application/json'}
  r = requests.get(url, headers=headers, verify=False)
  print r.status_code
  if(r.status_code != requests.codes.ok):
    raise Exception("Failed getting tasks")
  tasksRes = json.loads(r.text)
  print tasksRes
  taskStatus = tasksRes["Status"]
  state = taskStatus["State"]
  print state
  if(state == 4 or state == 5):
    raise Exception("task failed")
  res = state == 6
  print res
  return res
/v1/tasks C# Code Example
Monitor the status of a task. For a full code example, including setting up a session, see C# Code.
/*
 * Example Follow a task id until the task finishes
 */
private bool FollowTask(string taskId, string operation) {
  bool isSuccess = false;
  if (taskId != null) {
    taskId = (string)DeserializeObjectFromJson(taskId, typeof(string)); // NOTICE output is in json string so needs to be deserialized
    bool isRunning = true;
    do {
      string taskApiAddress = m_baseAddress + "tasks/" + taskId;
      string taskRes = ExecuteHttpGet(taskApiAddress, m_format, m_sessionId);
      TaskApi taskApi = (TaskApi)DeserializeObjectFromJson(taskRes, typeof(TaskApi));
      switch (taskApi.Status.State) {
        case TaskStatusEnumApi.InProgress:
          Console.WriteLine(operation + " Task is at " + (taskApi.Status.Progress) + "%");
          break;
        case TaskStatusEnumApi.Cancelling:
          Console.WriteLine(operation + " Task is aborting.");
          break;
        case TaskStatusEnumApi.Failed:
          Console.WriteLine(operation + " Task failed.");
          isRunning = false;
          break;
        case TaskStatusEnumApi.Completed:
          Console.WriteLine(operation + " Task done.");
          isRunning = false;
          isSuccess = true;
          break;
        default:
          Console.WriteLine(operation + " Task is waiting.");
          break;
      }
      Thread.Sleep(10000);
    } while (isRunning);
  }
  else {
    Console.WriteLine(operation + " Task failed to start.");
  }
  return isSuccess;
}