From: Jason Dillaman Date: Thu, 19 Nov 2020 21:08:22 +0000 (-0500) Subject: pybind/mgr/rbd_support: include retryable error message in task X-Git-Tag: v15.2.9~123^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a75b7f030f08763a563b0c13f69a22bbdc04593e;p=ceph.git pybind/mgr/rbd_support: include retryable error message in task If a retryable error occurs, include the reason message in the task JSON structure that is exposed via the "rbd task list" MGR command. Signed-off-by: Jason Dillaman (cherry picked from commit 66ddfee8590769935f260becee5e8fc070bce66d) --- diff --git a/src/pybind/mgr/rbd_support/task.py b/src/pybind/mgr/rbd_support/task.py index 12a4a3c06dee..78c7db071907 100644 --- a/src/pybind/mgr/rbd_support/task.py +++ b/src/pybind/mgr/rbd_support/task.py @@ -23,6 +23,7 @@ TASK_REFS = "refs" TASK_MESSAGE = "message" TASK_RETRY_ATTEMPTS = "retry_attempts" TASK_RETRY_TIME = "retry_time" +TASK_RETRY_MESSAGE = "retry_message" TASK_IN_PROGRESS = "in_progress" TASK_PROGRESS = "progress" TASK_CANCELED = "canceled" @@ -73,6 +74,7 @@ class Task: self.task_id = task_id self.message = message self.refs = refs + self.retry_message = None self.retry_attempts = 0 self.retry_time = None self.in_progress = False @@ -101,6 +103,8 @@ class Task: TASK_MESSAGE: self.message, TASK_REFS: self.refs } + if self.retry_message: + d[TASK_RETRY_MESSAGE] = self.retry_message if self.retry_attempts: d[TASK_RETRY_ATTEMPTS] = self.retry_attempts if self.retry_time: @@ -391,6 +395,7 @@ class TaskHandler: except rados.ObjectNotFound as e: self.log.error("execute_task: {}".format(e)) if pool_valid: + task.retry_message = "{}".format(e) self.update_progress(task, 0) else: # pool DNE -- remove the task @@ -399,6 +404,7 @@ class TaskHandler: except (rados.Error, rbd.Error) as e: self.log.error("execute_task: {}".format(e)) + task.retry_message = "{}".format(e) self.update_progress(task, 0) finally: