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