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: v14.2.17~74^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=58fa432ec53959d991f37d030d7b0372fb7006e7;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) Conflicts: src/pybind/mgr/rbd_support/task.py - file does not exist in nautilus: applied the changes manually --- diff --git a/src/pybind/mgr/rbd_support/module.py b/src/pybind/mgr/rbd_support/module.py index b38aa1f82b9..9f45c497854 100644 --- a/src/pybind/mgr/rbd_support/module.py +++ b/src/pybind/mgr/rbd_support/module.py @@ -55,6 +55,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" @@ -555,6 +556,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 @@ -583,6 +585,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: @@ -873,6 +877,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 @@ -881,6 +886,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: