summaryrefslogtreecommitdiff
path: root/oslo_vmware/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_vmware/api.py')
-rw-r--r--oslo_vmware/api.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/oslo_vmware/api.py b/oslo_vmware/api.py
index aaeb77b..323462b 100644
--- a/oslo_vmware/api.py
+++ b/oslo_vmware/api.py
@@ -408,13 +408,25 @@ class VMwareAPISession(object):
"task: %s."),
task)
else:
+ task_detail = {'id': task.value}
+ # some internal tasks do not have 'name' set
+ if getattr(task_info, 'name', None):
+ task_detail['name'] = task_info.name
+
if task_info.state in ['queued', 'running']:
if hasattr(task_info, 'progress'):
LOG.debug("Task: %(task)s progress is %(progress)s%%.",
- {'task': task,
+ {'task': task_detail,
'progress': task_info.progress})
elif task_info.state == 'success':
- LOG.debug("Task: %s status is success.", task)
+ def get_completed_task():
+ complete_time = getattr(task_info, 'completeTime', None)
+ if complete_time:
+ duration = complete_time - task_info.queueTime
+ task_detail['duration_secs'] = duration.total_seconds()
+ return task_detail
+ LOG.debug("Task: %s completed successfully.",
+ get_completed_task())
raise loopingcall.LoopingCallDone(task_info)
else:
error_msg = six.text_type(task_info.error.localizedMessage)