diff --git a/airflow/providers/amazon/aws/operators/glue.py b/airflow/providers/amazon/aws/operators/glue.py index 053e530c72674..815dda8acd3e7 100644 --- a/airflow/providers/amazon/aws/operators/glue.py +++ b/airflow/providers/amazon/aws/operators/glue.py @@ -200,4 +200,4 @@ def execute(self, context: Context): def execute_complete(self, context, event=None): if event["status"] != "success": raise AirflowException(f"Error in glue job: {event}") - return + return event["value"] diff --git a/airflow/providers/amazon/aws/operators/glue_crawler.py b/airflow/providers/amazon/aws/operators/glue_crawler.py index c7ac25f1f2e30..5ba3dd0fcf4a9 100644 --- a/airflow/providers/amazon/aws/operators/glue_crawler.py +++ b/airflow/providers/amazon/aws/operators/glue_crawler.py @@ -107,4 +107,4 @@ def execute(self, context: Context): def execute_complete(self, context, event=None): if event["status"] != "success": raise AirflowException(f"Error in glue crawl: {event}") - return + return self.config["Name"] diff --git a/airflow/providers/amazon/aws/triggers/glue.py b/airflow/providers/amazon/aws/triggers/glue.py index 42219a993ad25..fbb4d83eb0c1f 100644 --- a/airflow/providers/amazon/aws/triggers/glue.py +++ b/airflow/providers/amazon/aws/triggers/glue.py @@ -60,4 +60,4 @@ def serialize(self) -> tuple[str, dict[str, Any]]: async def run(self) -> AsyncIterator[TriggerEvent]: hook = GlueJobHook(aws_conn_id=self.aws_conn_id) await hook.async_job_completion(self.job_name, self.run_id, self.verbose) - yield TriggerEvent({"status": "success", "message": "Job done"}) + yield TriggerEvent({"status": "success", "message": "Job done", "value": self.run_id}) diff --git a/airflow/providers/amazon/aws/triggers/glue_crawler.py b/airflow/providers/amazon/aws/triggers/glue_crawler.py index 10ab45dda73d3..3d058cf3f5b2f 100644 --- a/airflow/providers/amazon/aws/triggers/glue_crawler.py +++ b/airflow/providers/amazon/aws/triggers/glue_crawler.py @@ -68,10 +68,7 @@ async def run(self) -> AsyncIterator[TriggerEvent]: break # we reach this point only if the waiter met a success criteria except WaiterError as error: if "terminal failure" in str(error): - yield TriggerEvent( - {"status": "failure", "message": f"Glue Crawler creation Failed: {error}"} - ) - break + raise self.log.info("Status of glue crawl is %s", error.last_response["Crawler"]["State"]) await asyncio.sleep(int(self.poll_interval))