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]