diff --git a/providers/standard/src/airflow/providers/standard/operators/hitl.py b/providers/standard/src/airflow/providers/standard/operators/hitl.py index b0d73ff02cdd6..35f7703cee632 100644 --- a/providers/standard/src/airflow/providers/standard/operators/hitl.py +++ b/providers/standard/src/airflow/providers/standard/operators/hitl.py @@ -26,7 +26,6 @@ from collections.abc import Collection, Mapping -from datetime import datetime, timezone from typing import TYPE_CHECKING, Any from airflow.providers.standard.exceptions import HITLTimeoutError, HITLTriggerEventError @@ -36,6 +35,7 @@ from airflow.providers.standard.version_compat import BaseOperator from airflow.sdk.definitions.param import ParamsDict from airflow.sdk.execution_time.hitl import upsert_hitl_detail +from airflow.sdk.timezone import utcnow if TYPE_CHECKING: from airflow.sdk.definitions.context import Context @@ -109,7 +109,7 @@ def execute(self, context: Context): params=self.serialized_params, ) if self.execution_timeout: - timeout_datetime = datetime.now(timezone.utc) + self.execution_timeout + timeout_datetime = utcnow() + self.execution_timeout else: timeout_datetime = None self.log.info("Waiting for response") diff --git a/providers/standard/src/airflow/providers/standard/triggers/hitl.py b/providers/standard/src/airflow/providers/standard/triggers/hitl.py index 17c818472471e..87dfc57ab076b 100644 --- a/providers/standard/src/airflow/providers/standard/triggers/hitl.py +++ b/providers/standard/src/airflow/providers/standard/triggers/hitl.py @@ -34,8 +34,8 @@ get_hitl_detail_content_detail, update_htil_detail_response, ) +from airflow.sdk.timezone import utcnow from airflow.triggers.base import BaseTrigger, TriggerEvent -from airflow.utils import timezone class HITLTriggerEventSuccessPayload(TypedDict, total=False): @@ -97,7 +97,7 @@ def serialize(self) -> tuple[str, dict[str, Any]]: async def run(self) -> AsyncIterator[TriggerEvent]: """Loop until the Human-in-the-loop response received or timeout reached.""" while True: - if self.timeout_datetime and self.timeout_datetime < timezone.utcnow(): + if self.timeout_datetime and self.timeout_datetime < utcnow(): if self.defaults is None: yield TriggerEvent( HITLTriggerEventFailurePayload(