pankajkoti commented on code in PR #39110:
URL: https://github.com/apache/airflow/pull/39110#discussion_r1578991339


##########
airflow/providers/databricks/triggers/databricks.py:
##########
@@ -84,13 +84,30 @@ async def run(self):
         async with self.hook:
             while True:
                 run_state = await self.hook.a_get_run_state(self.run_id)
+                notebook_error = None
                 if run_state.is_terminal:
+                    if run_state.result_state == "FAILED":
+                        run_info = await self.hook.a_get_run(self.run_id)
+                        task_run_id = None
+                        if "tasks" in run_info:
+                            for task in run_info["tasks"]:
+                                if task.get("state", {}).get("result_state", 
"") == "FAILED":
+                                    task_run_id = task["run_id"]

Review Comment:
   This seems like so many nested blocks. if -> if -> if -> for -> if.
   Can we refactor this to reduce the nesting?
   
   Ref: 
https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/too-many-nested-blocks.html
   
   e.g. modifying to something like this could avoid some of nested branches.
   ```
                   if not run_state.is_terminal:
                       self.log.info(
                           "run-id %s in run state %s. sleeping for %s seconds",
                           self.run_id,
                           run_state,
                           self.polling_period_seconds,
                       )
                       await asyncio.sleep(self.polling_period_seconds)
                       continue
                   if run_state.result_state == "FAILED":
                       run_info = await self.hook.a_get_run(self.run_id)
                       task_run_id = None
                       for task in run_info.get("tasks"):
                           if task.get("state", {}).get("result_state", "") == 
"FAILED":
   ```
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to