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  | 
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  | 
/*  * 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; }  |