Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AIP-84 Get Mapped Task Instance Try Details #44206

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions airflow/api_connexion/endpoints/task_instance_endpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -756,6 +756,7 @@ def _query(orm_object):
return task_instance_history_schema.dump(result[0])


@mark_fastapi_migration_done
@provide_session
def get_mapped_task_instance_try_details(
*,
Expand Down
68 changes: 68 additions & 0 deletions airflow/api_fastapi/core_api/openapi/v1-generated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3961,6 +3961,74 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/public/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/tries/{task_try_number}:
get:
tags:
- Task Instance
summary: Get Mapped Task Instance Try Details
operationId: get_mapped_task_instance_try_details
parameters:
- name: dag_id
in: path
required: true
schema:
type: string
title: Dag Id
- name: dag_run_id
in: path
required: true
schema:
type: string
title: Dag Run Id
- name: task_id
in: path
required: true
schema:
type: string
title: Task Id
- name: task_try_number
in: path
required: true
schema:
type: integer
title: Task Try Number
- name: map_index
in: path
required: true
schema:
type: integer
title: Map Index
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskInstanceHistoryResponse'
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPExceptionResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPExceptionResponse'
description: Forbidden
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPExceptionResponse'
description: Not Found
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/public/dags/{dag_id}/tasks/:
get:
tags:
Expand Down
22 changes: 22 additions & 0 deletions airflow/api_fastapi/core_api/routes/public/task_instances.py
Original file line number Diff line number Diff line change
Expand Up @@ -460,3 +460,25 @@ def _query(orm_object: Base) -> TI | TIH | None:
f"The Task Instance with dag_id: `{dag_id}`, run_id: `{dag_run_id}`, task_id: `{task_id}`, try_number: `{task_try_number}` and map_index: `{map_index}` was not found",
)
return TaskInstanceHistoryResponse.model_validate(result, from_attributes=True)


@task_instances_router.get(
"/{task_id}/{map_index}/tries/{task_try_number}",
responses=create_openapi_http_exception_doc([status.HTTP_404_NOT_FOUND]),
)
def get_mapped_task_instance_try_details(
dag_id: str,
dag_run_id: str,
task_id: str,
task_try_number: int,
session: Annotated[Session, Depends(get_session)],
map_index: int,
) -> TaskInstanceHistoryResponse:
return get_task_instance_try_details(
dag_id=dag_id,
dag_run_id=dag_run_id,
task_id=task_id,
task_try_number=task_try_number,
map_index=map_index,
session=session,
)
29 changes: 29 additions & 0 deletions airflow/ui/openapi-gen/queries/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1092,6 +1092,35 @@ export const UseTaskInstanceServiceGetTaskInstanceTryDetailsKeyFn = (
useTaskInstanceServiceGetTaskInstanceTryDetailsKey,
...(queryKey ?? [{ dagId, dagRunId, mapIndex, taskId, taskTryNumber }]),
];
export type TaskInstanceServiceGetMappedTaskInstanceTryDetailsDefaultResponse =
Awaited<
ReturnType<typeof TaskInstanceService.getMappedTaskInstanceTryDetails>
>;
export type TaskInstanceServiceGetMappedTaskInstanceTryDetailsQueryResult<
TData = TaskInstanceServiceGetMappedTaskInstanceTryDetailsDefaultResponse,
TError = unknown,
> = UseQueryResult<TData, TError>;
export const useTaskInstanceServiceGetMappedTaskInstanceTryDetailsKey =
"TaskInstanceServiceGetMappedTaskInstanceTryDetails";
export const UseTaskInstanceServiceGetMappedTaskInstanceTryDetailsKeyFn = (
{
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}: {
dagId: string;
dagRunId: string;
mapIndex: number;
taskId: string;
taskTryNumber: number;
},
queryKey?: Array<unknown>,
) => [
useTaskInstanceServiceGetMappedTaskInstanceTryDetailsKey,
...(queryKey ?? [{ dagId, dagRunId, mapIndex, taskId, taskTryNumber }]),
];
export type TaskServiceGetTasksDefaultResponse = Awaited<
ReturnType<typeof TaskService.getTasks>
>;
Expand Down
40 changes: 40 additions & 0 deletions airflow/ui/openapi-gen/queries/prefetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1471,6 +1471,46 @@ export const prefetchUseTaskInstanceServiceGetTaskInstanceTryDetails = (
taskTryNumber,
}),
});
/**
* Get Mapped Task Instance Try Details
* @param data The data for the request.
* @param data.dagId
* @param data.dagRunId
* @param data.taskId
* @param data.taskTryNumber
* @param data.mapIndex
* @returns TaskInstanceHistoryResponse Successful Response
* @throws ApiError
*/
export const prefetchUseTaskInstanceServiceGetMappedTaskInstanceTryDetails = (
queryClient: QueryClient,
{
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}: {
dagId: string;
dagRunId: string;
mapIndex: number;
taskId: string;
taskTryNumber: number;
},
) =>
queryClient.prefetchQuery({
queryKey: Common.UseTaskInstanceServiceGetMappedTaskInstanceTryDetailsKeyFn(
{ dagId, dagRunId, mapIndex, taskId, taskTryNumber },
),
queryFn: () =>
TaskInstanceService.getMappedTaskInstanceTryDetails({
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}),
});
/**
* Get Tasks
* Get tasks for DAG.
Expand Down
47 changes: 47 additions & 0 deletions airflow/ui/openapi-gen/queries/queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1762,6 +1762,53 @@ export const useTaskInstanceServiceGetTaskInstanceTryDetails = <
}) as TData,
...options,
});
/**
* Get Mapped Task Instance Try Details
* @param data The data for the request.
* @param data.dagId
* @param data.dagRunId
* @param data.taskId
* @param data.taskTryNumber
* @param data.mapIndex
* @returns TaskInstanceHistoryResponse Successful Response
* @throws ApiError
*/
export const useTaskInstanceServiceGetMappedTaskInstanceTryDetails = <
TData = Common.TaskInstanceServiceGetMappedTaskInstanceTryDetailsDefaultResponse,
TError = unknown,
TQueryKey extends Array<unknown> = unknown[],
>(
{
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}: {
dagId: string;
dagRunId: string;
mapIndex: number;
taskId: string;
taskTryNumber: number;
},
queryKey?: TQueryKey,
options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">,
) =>
useQuery<TData, TError>({
queryKey: Common.UseTaskInstanceServiceGetMappedTaskInstanceTryDetailsKeyFn(
{ dagId, dagRunId, mapIndex, taskId, taskTryNumber },
queryKey,
),
queryFn: () =>
TaskInstanceService.getMappedTaskInstanceTryDetails({
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}) as TData,
...options,
});
/**
* Get Tasks
* Get tasks for DAG.
Expand Down
47 changes: 47 additions & 0 deletions airflow/ui/openapi-gen/queries/suspense.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1744,6 +1744,53 @@ export const useTaskInstanceServiceGetTaskInstanceTryDetailsSuspense = <
}) as TData,
...options,
});
/**
* Get Mapped Task Instance Try Details
* @param data The data for the request.
* @param data.dagId
* @param data.dagRunId
* @param data.taskId
* @param data.taskTryNumber
* @param data.mapIndex
* @returns TaskInstanceHistoryResponse Successful Response
* @throws ApiError
*/
export const useTaskInstanceServiceGetMappedTaskInstanceTryDetailsSuspense = <
TData = Common.TaskInstanceServiceGetMappedTaskInstanceTryDetailsDefaultResponse,
TError = unknown,
TQueryKey extends Array<unknown> = unknown[],
>(
{
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}: {
dagId: string;
dagRunId: string;
mapIndex: number;
taskId: string;
taskTryNumber: number;
},
queryKey?: TQueryKey,
options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">,
) =>
useSuspenseQuery<TData, TError>({
queryKey: Common.UseTaskInstanceServiceGetMappedTaskInstanceTryDetailsKeyFn(
{ dagId, dagRunId, mapIndex, taskId, taskTryNumber },
queryKey,
),
queryFn: () =>
TaskInstanceService.getMappedTaskInstanceTryDetails({
dagId,
dagRunId,
mapIndex,
taskId,
taskTryNumber,
}) as TData,
...options,
});
/**
* Get Tasks
* Get tasks for DAG.
Expand Down
35 changes: 35 additions & 0 deletions airflow/ui/openapi-gen/requests/services.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ import type {
GetTaskInstancesBatchResponse,
GetTaskInstanceTryDetailsData,
GetTaskInstanceTryDetailsResponse,
GetMappedTaskInstanceTryDetailsData,
GetMappedTaskInstanceTryDetailsResponse,
GetTasksData,
GetTasksResponse,
GetTaskData,
Expand Down Expand Up @@ -2095,6 +2097,39 @@ export class TaskInstanceService {
},
});
}

/**
* Get Mapped Task Instance Try Details
* @param data The data for the request.
* @param data.dagId
* @param data.dagRunId
* @param data.taskId
* @param data.taskTryNumber
* @param data.mapIndex
* @returns TaskInstanceHistoryResponse Successful Response
* @throws ApiError
*/
public static getMappedTaskInstanceTryDetails(
data: GetMappedTaskInstanceTryDetailsData,
): CancelablePromise<GetMappedTaskInstanceTryDetailsResponse> {
return __request(OpenAPI, {
method: "GET",
url: "/public/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/tries/{task_try_number}",
path: {
dag_id: data.dagId,
dag_run_id: data.dagRunId,
task_id: data.taskId,
task_try_number: data.taskTryNumber,
map_index: data.mapIndex,
},
errors: {
401: "Unauthorized",
403: "Forbidden",
404: "Not Found",
422: "Validation Error",
},
});
}
}

export class TaskService {
Expand Down
Loading