apache-airflow-providers-edge3 1.1.3__py3-none-any.whl → 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- airflow/providers/edge3/__init__.py +1 -1
- airflow/providers/edge3/cli/worker.py +6 -2
- airflow/providers/edge3/example_dags/integration_test.py +6 -2
- airflow/providers/edge3/example_dags/win_test.py +6 -1
- airflow/providers/edge3/openapi/v2-edge-generated.yaml +1138 -0
- airflow/providers/edge3/plugins/edge_executor_plugin.py +43 -3
- airflow/providers/edge3/plugins/www/.gitignore +27 -0
- airflow/providers/edge3/plugins/www/.prettierignore +6 -0
- airflow/providers/edge3/plugins/www/.prettierrc +13 -0
- airflow/providers/edge3/plugins/www/README.md +141 -0
- airflow/providers/edge3/plugins/www/dist/main.d.ts +1 -0
- airflow/providers/edge3/plugins/www/dist/main.umd.cjs +124 -0
- airflow/providers/edge3/plugins/www/eslint.config.js +54 -0
- airflow/providers/edge3/plugins/www/index.html +13 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts +33 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/ensureQueryData.ts +16 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/index.ts +4 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/infiniteQueries.ts +2 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/prefetch.ts +16 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts +87 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/suspense.ts +16 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiError.ts +21 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiRequestOptions.ts +21 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiResult.ts +7 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/core/CancelablePromise.ts +126 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/core/OpenAPI.ts +57 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/core/request.ts +347 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/index.ts +7 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts +700 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts +289 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts +655 -0
- airflow/providers/edge3/plugins/www/package.json +80 -0
- airflow/providers/edge3/plugins/www/pnpm-lock.yaml +6653 -0
- airflow/providers/edge3/plugins/www/src/components/ErrorAlert.tsx +66 -0
- airflow/providers/edge3/plugins/www/src/components/StateBadge.tsx +43 -0
- airflow/providers/edge3/plugins/www/src/components/StateIcon.tsx +58 -0
- airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx +71 -0
- airflow/providers/edge3/plugins/www/src/components/WorkerStateIcon.tsx +57 -0
- airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx +62 -0
- airflow/providers/edge3/plugins/www/src/components/ui/CloseButton.tsx +32 -0
- airflow/providers/edge3/plugins/www/src/components/ui/index.ts +20 -0
- airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx +24 -0
- airflow/providers/edge3/plugins/www/src/context/colorMode/index.ts +21 -0
- airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx +32 -0
- airflow/providers/edge3/plugins/www/src/dev.tsx +29 -0
- airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx +44 -0
- airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx +63 -0
- airflow/providers/edge3/plugins/www/src/main.tsx +58 -0
- airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx +88 -0
- airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx +105 -0
- airflow/providers/edge3/plugins/www/src/res/README.md +24 -0
- airflow/providers/edge3/plugins/www/src/res/cloud-computer-dark.svg +3 -0
- airflow/providers/edge3/plugins/www/src/res/cloud-computer.svg +3 -0
- airflow/providers/edge3/plugins/www/src/theme.ts +176 -0
- airflow/providers/edge3/plugins/www/src/utils/config.ts +23 -0
- airflow/providers/edge3/plugins/www/src/utils/index.ts +22 -0
- airflow/providers/edge3/plugins/www/src/utils/tokenHandler.ts +51 -0
- airflow/providers/edge3/plugins/www/src/utils/useContainerWidth.ts +43 -0
- airflow/providers/edge3/plugins/www/src/vite-env.d.ts +20 -0
- airflow/providers/edge3/plugins/www/testsSetup.ts +19 -0
- airflow/providers/edge3/plugins/www/tsconfig.app.json +31 -0
- airflow/providers/edge3/plugins/www/tsconfig.json +8 -0
- airflow/providers/edge3/plugins/www/tsconfig.lib.json +15 -0
- airflow/providers/edge3/plugins/www/tsconfig.node.json +29 -0
- airflow/providers/edge3/plugins/www/vite.config.ts +95 -0
- airflow/providers/edge3/version_compat.py +1 -0
- airflow/providers/edge3/worker_api/app.py +34 -8
- airflow/providers/edge3/worker_api/datamodels_ui.py +67 -0
- airflow/providers/edge3/worker_api/routes/health.py +1 -1
- airflow/providers/edge3/worker_api/routes/ui.py +102 -0
- {apache_airflow_providers_edge3-1.1.3.dist-info → apache_airflow_providers_edge3-1.2.0.dist-info}/METADATA +7 -8
- apache_airflow_providers_edge3-1.2.0.dist-info/RECORD +103 -0
- apache_airflow_providers_edge3-1.1.3.dist-info/RECORD +0 -41
- {apache_airflow_providers_edge3-1.1.3.dist-info → apache_airflow_providers_edge3-1.2.0.dist-info}/WHEEL +0 -0
- {apache_airflow_providers_edge3-1.1.3.dist-info → apache_airflow_providers_edge3-1.2.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
3
|
+
"compilerOptions": {
|
4
|
+
"target": "ES2022",
|
5
|
+
"useDefineForClassFields": true,
|
6
|
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
7
|
+
"module": "ESNext",
|
8
|
+
"skipLibCheck": true,
|
9
|
+
|
10
|
+
/* Bundler mode */
|
11
|
+
"moduleResolution": "bundler",
|
12
|
+
"allowImportingTsExtensions": true,
|
13
|
+
"isolatedModules": true,
|
14
|
+
"moduleDetection": "force",
|
15
|
+
"noEmit": true,
|
16
|
+
"jsx": "react-jsx",
|
17
|
+
|
18
|
+
/* Linting */
|
19
|
+
"strict": true,
|
20
|
+
"noUnusedLocals": true,
|
21
|
+
"noUnusedParameters": true,
|
22
|
+
"noFallthroughCasesInSwitch": true,
|
23
|
+
"noUncheckedIndexedAccess": true,
|
24
|
+
"baseUrl": ".",
|
25
|
+
"paths": {
|
26
|
+
"src/*": ["./src/*"],
|
27
|
+
"openapi/*": ["./openapi-gen/*"]
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"include": ["src"]
|
31
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
3
|
+
"extends": "./tsconfig.app.json",
|
4
|
+
"compilerOptions": {
|
5
|
+
"declaration": true,
|
6
|
+
"declarationMap": true,
|
7
|
+
"emitDeclarationOnly": true,
|
8
|
+
"outDir": "./dist",
|
9
|
+
"rootDir": "./src",
|
10
|
+
"noEmit": false,
|
11
|
+
"allowImportingTsExtensions": false
|
12
|
+
},
|
13
|
+
"include": ["src/main.tsx"],
|
14
|
+
"exclude": ["**/*.test.*", "**/*.spec.*"]
|
15
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
3
|
+
"compilerOptions": {
|
4
|
+
"target": "ES2022",
|
5
|
+
"lib": ["ES2023"],
|
6
|
+
"module": "ESNext",
|
7
|
+
"skipLibCheck": true,
|
8
|
+
|
9
|
+
/* Bundler mode */
|
10
|
+
"moduleResolution": "bundler",
|
11
|
+
"allowImportingTsExtensions": true,
|
12
|
+
"isolatedModules": true,
|
13
|
+
"moduleDetection": "force",
|
14
|
+
"noEmit": true,
|
15
|
+
|
16
|
+
/* Linting */
|
17
|
+
"strict": true,
|
18
|
+
"noUnusedLocals": true,
|
19
|
+
"noUnusedParameters": true,
|
20
|
+
"noFallthroughCasesInSwitch": true,
|
21
|
+
"noUncheckedIndexedAccess": true,
|
22
|
+
"baseUrl": ".",
|
23
|
+
"paths": {
|
24
|
+
"src/*": ["./src/*"],
|
25
|
+
"openapi/*": ["./openapi-gen/*"]
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"include": ["vite.config.ts"]
|
29
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
/*!
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
4
|
+
* distributed with this work for additional information
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
7
|
+
* "License"); you may not use this file except in compliance
|
8
|
+
* with the License. You may obtain a copy of the License at
|
9
|
+
*
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
*
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
13
|
+
* software distributed under the License is distributed on an
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
15
|
+
* KIND, either express or implied. See the License for the
|
16
|
+
* specific language governing permissions and limitations
|
17
|
+
* under the License.
|
18
|
+
*/
|
19
|
+
import react from "@vitejs/plugin-react-swc";
|
20
|
+
import { resolve } from "node:path";
|
21
|
+
import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
|
22
|
+
import dts from "vite-plugin-dts";
|
23
|
+
import { defineConfig } from "vitest/config";
|
24
|
+
|
25
|
+
// https://vitejs.dev/config/
|
26
|
+
export default defineConfig(({ command }) => {
|
27
|
+
const isLibraryBuild = command === "build";
|
28
|
+
|
29
|
+
return {
|
30
|
+
base: "./",
|
31
|
+
build: isLibraryBuild
|
32
|
+
? {
|
33
|
+
chunkSizeWarningLimit: 1600,
|
34
|
+
lib: {
|
35
|
+
entry: resolve("src", "main.tsx"),
|
36
|
+
fileName: "main",
|
37
|
+
formats: ["umd"],
|
38
|
+
name: "AirflowPlugin",
|
39
|
+
},
|
40
|
+
rollupOptions: {
|
41
|
+
external: ["react", "react-dom"],
|
42
|
+
output: {
|
43
|
+
globals: {
|
44
|
+
react: "React",
|
45
|
+
"react/jsx-runtime": "ReactJSXRuntime",
|
46
|
+
},
|
47
|
+
},
|
48
|
+
},
|
49
|
+
}
|
50
|
+
: {
|
51
|
+
// Development build configuration
|
52
|
+
chunkSizeWarningLimit: 1600,
|
53
|
+
},
|
54
|
+
define: {
|
55
|
+
global: "globalThis",
|
56
|
+
"process.env": "{}",
|
57
|
+
// Define process.env for browser compatibility
|
58
|
+
"process.env.NODE_ENV": JSON.stringify("production"),
|
59
|
+
},
|
60
|
+
plugins: [
|
61
|
+
react(),
|
62
|
+
cssInjectedByJsPlugin(),
|
63
|
+
...(isLibraryBuild
|
64
|
+
? [
|
65
|
+
dts({
|
66
|
+
include: ["src/main.tsx"],
|
67
|
+
insertTypesEntry: true,
|
68
|
+
outDir: "dist",
|
69
|
+
}),
|
70
|
+
]
|
71
|
+
: []),
|
72
|
+
],
|
73
|
+
resolve: { alias: { openapi: "/openapi-gen", src: "/src" } },
|
74
|
+
server: {
|
75
|
+
cors: true, // Only used by the dev server.
|
76
|
+
proxy: {
|
77
|
+
"/edge_worker": {
|
78
|
+
changeOrigin: true,
|
79
|
+
target: "http://localhost:28080",
|
80
|
+
},
|
81
|
+
},
|
82
|
+
},
|
83
|
+
test: {
|
84
|
+
coverage: {
|
85
|
+
include: ["src/**/*.ts", "src/**/*.tsx"],
|
86
|
+
},
|
87
|
+
css: true,
|
88
|
+
environment: "happy-dom",
|
89
|
+
globals: true,
|
90
|
+
mockReset: true,
|
91
|
+
restoreMocks: true,
|
92
|
+
setupFiles: "./testsSetup.ts",
|
93
|
+
},
|
94
|
+
};
|
95
|
+
});
|
@@ -16,11 +16,15 @@
|
|
16
16
|
# under the License.
|
17
17
|
from __future__ import annotations
|
18
18
|
|
19
|
+
from pathlib import Path
|
20
|
+
|
19
21
|
from fastapi import FastAPI
|
22
|
+
from fastapi.staticfiles import StaticFiles
|
20
23
|
|
21
24
|
from airflow.providers.edge3.worker_api.routes.health import health_router
|
22
25
|
from airflow.providers.edge3.worker_api.routes.jobs import jobs_router
|
23
26
|
from airflow.providers.edge3.worker_api.routes.logs import logs_router
|
27
|
+
from airflow.providers.edge3.worker_api.routes.ui import ui_router
|
24
28
|
from airflow.providers.edge3.worker_api.routes.worker import worker_router
|
25
29
|
|
26
30
|
|
@@ -29,15 +33,37 @@ def create_edge_worker_api_app() -> FastAPI:
|
|
29
33
|
edge_worker_api_app = FastAPI(
|
30
34
|
title="Airflow Edge Worker API",
|
31
35
|
description=(
|
32
|
-
"This is Airflow Edge Worker API -
|
33
|
-
"sites serving for Apache Airflow jobs. It also
|
34
|
-
"
|
35
|
-
"
|
36
|
+
"This is Airflow Edge Worker API - this is a the access endpoint for workers running on remote "
|
37
|
+
"sites serving for Apache Airflow jobs. It also serves for the Edge Worker UI and provides "
|
38
|
+
"endpoints for React web app.\n"
|
39
|
+
"All endpoints under ``/edge_worker/v1`` are used by remote workers and need a specific JWT token.\n"
|
40
|
+
"All endpoints under ``/edge_worker/ui`` are used by UI and can be accessed with normal authentication. "
|
41
|
+
"Please assume UI endpoints to change and not be stable."
|
36
42
|
),
|
37
43
|
)
|
38
44
|
|
39
|
-
edge_worker_api_app.include_router(
|
40
|
-
edge_worker_api_app.include_router(
|
41
|
-
edge_worker_api_app.include_router(
|
42
|
-
edge_worker_api_app.include_router(
|
45
|
+
edge_worker_api_app.include_router(jobs_router, prefix="/v1")
|
46
|
+
edge_worker_api_app.include_router(logs_router, prefix="/v1")
|
47
|
+
edge_worker_api_app.include_router(worker_router, prefix="/v1")
|
48
|
+
edge_worker_api_app.include_router(health_router, prefix="/v1")
|
49
|
+
edge_worker_api_app.include_router(ui_router, prefix="/ui")
|
50
|
+
|
51
|
+
# Fix mimetypes to serve cjs files correctly
|
52
|
+
import mimetypes
|
53
|
+
|
54
|
+
if ".cjs" not in mimetypes.suffix_map:
|
55
|
+
mimetypes.add_type("application/javascript", ".cjs")
|
56
|
+
|
57
|
+
www_files = Path(__file__).parents[1] / "plugins" / "www"
|
58
|
+
edge_worker_api_app.mount(
|
59
|
+
"/static",
|
60
|
+
StaticFiles(directory=(www_files / "dist").absolute(), html=True),
|
61
|
+
name="react_static_plugin_files",
|
62
|
+
)
|
63
|
+
edge_worker_api_app.mount(
|
64
|
+
"/res",
|
65
|
+
StaticFiles(directory=(www_files / "src" / "res").absolute(), html=True),
|
66
|
+
name="react_res_plugin_files",
|
67
|
+
)
|
68
|
+
|
43
69
|
return edge_worker_api_app
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
from __future__ import annotations
|
18
|
+
|
19
|
+
from datetime import datetime
|
20
|
+
from typing import (
|
21
|
+
Annotated,
|
22
|
+
)
|
23
|
+
|
24
|
+
from pydantic import Field
|
25
|
+
|
26
|
+
from airflow.api_fastapi.core_api.base import BaseModel
|
27
|
+
from airflow.providers.edge3.worker_api.datamodels import EdgeJobBase, WorkerStateBody
|
28
|
+
from airflow.utils.state import TaskInstanceState # noqa: TC001
|
29
|
+
|
30
|
+
|
31
|
+
class Worker(WorkerStateBody):
|
32
|
+
"""Details of the worker state sent to the scheduler."""
|
33
|
+
|
34
|
+
worker_name: Annotated[str, Field(description="Name of the worker.")]
|
35
|
+
first_online: Annotated[datetime | None, Field(description="When the worker was first online.")] = None
|
36
|
+
last_heartbeat: Annotated[
|
37
|
+
datetime | None, Field(description="When the worker last sent a heartbeat.")
|
38
|
+
] = None
|
39
|
+
|
40
|
+
|
41
|
+
class WorkerCollectionResponse(BaseModel):
|
42
|
+
"""Worker Collection serializer."""
|
43
|
+
|
44
|
+
workers: list[Worker]
|
45
|
+
total_entries: int
|
46
|
+
|
47
|
+
|
48
|
+
class Job(EdgeJobBase):
|
49
|
+
"""Details of the job sent to the scheduler."""
|
50
|
+
|
51
|
+
state: Annotated[TaskInstanceState, Field(description="State of the job from the view of the executor.")]
|
52
|
+
queue: Annotated[
|
53
|
+
str,
|
54
|
+
Field(description="Queue for which the task is scheduled/running."),
|
55
|
+
]
|
56
|
+
queued_dttm: Annotated[datetime | None, Field(description="When the job was queued.")] = None
|
57
|
+
edge_worker: Annotated[
|
58
|
+
str | None, Field(description="The worker processing the job during execution.")
|
59
|
+
] = None
|
60
|
+
last_update: Annotated[datetime | None, Field(description="Last heartbeat of the job.")] = None
|
61
|
+
|
62
|
+
|
63
|
+
class JobCollectionResponse(BaseModel):
|
64
|
+
"""Job Collection serializer."""
|
65
|
+
|
66
|
+
jobs: list[Job]
|
67
|
+
total_entries: int
|
@@ -19,7 +19,7 @@ from __future__ import annotations
|
|
19
19
|
|
20
20
|
from airflow.providers.edge3.worker_api.routes._v2_compat import AirflowRouter
|
21
21
|
|
22
|
-
health_router = AirflowRouter(tags=["
|
22
|
+
health_router = AirflowRouter(tags=["Monitor"])
|
23
23
|
|
24
24
|
|
25
25
|
@health_router.get("/health")
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
3
|
+
# distributed with this work for additional information
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
6
|
+
# "License"); you may not use this file except in compliance
|
7
|
+
# with the License. You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
|
18
|
+
from __future__ import annotations
|
19
|
+
|
20
|
+
from fastapi import Depends
|
21
|
+
from sqlalchemy import select
|
22
|
+
|
23
|
+
from airflow.api_fastapi.auth.managers.models.resource_details import AccessView
|
24
|
+
from airflow.api_fastapi.common.db.common import SessionDep # noqa: TC001
|
25
|
+
from airflow.api_fastapi.common.router import AirflowRouter
|
26
|
+
from airflow.api_fastapi.core_api.security import requires_access_view
|
27
|
+
from airflow.providers.edge3.models.edge_job import EdgeJobModel
|
28
|
+
from airflow.providers.edge3.models.edge_worker import EdgeWorkerModel
|
29
|
+
from airflow.providers.edge3.worker_api.datamodels_ui import (
|
30
|
+
Job,
|
31
|
+
JobCollectionResponse,
|
32
|
+
Worker,
|
33
|
+
WorkerCollectionResponse,
|
34
|
+
)
|
35
|
+
|
36
|
+
ui_router = AirflowRouter(tags=["UI"])
|
37
|
+
|
38
|
+
|
39
|
+
@ui_router.get(
|
40
|
+
"/worker",
|
41
|
+
dependencies=[
|
42
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
43
|
+
],
|
44
|
+
)
|
45
|
+
def worker(
|
46
|
+
session: SessionDep,
|
47
|
+
) -> WorkerCollectionResponse:
|
48
|
+
"""Return Edge Workers."""
|
49
|
+
query = select(EdgeWorkerModel).order_by(EdgeWorkerModel.worker_name)
|
50
|
+
workers: list[EdgeWorkerModel] = session.scalars(query)
|
51
|
+
|
52
|
+
result = [
|
53
|
+
Worker(
|
54
|
+
worker_name=w.worker_name,
|
55
|
+
queues=w.queues,
|
56
|
+
state=w.state,
|
57
|
+
jobs_active=w.jobs_active,
|
58
|
+
sysinfo=w.sysinfo_json or {},
|
59
|
+
maintenance_comments=w.maintenance_comment,
|
60
|
+
first_online=w.first_online,
|
61
|
+
last_heartbeat=w.last_update,
|
62
|
+
)
|
63
|
+
for w in workers
|
64
|
+
]
|
65
|
+
return WorkerCollectionResponse(
|
66
|
+
workers=result,
|
67
|
+
total_entries=len(result),
|
68
|
+
)
|
69
|
+
|
70
|
+
|
71
|
+
@ui_router.get(
|
72
|
+
"/jobs",
|
73
|
+
dependencies=[
|
74
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
75
|
+
],
|
76
|
+
)
|
77
|
+
def jobs(
|
78
|
+
session: SessionDep,
|
79
|
+
) -> JobCollectionResponse:
|
80
|
+
"""Return Edge Jobs."""
|
81
|
+
query = select(EdgeJobModel).order_by(EdgeJobModel.queued_dttm)
|
82
|
+
jobs: list[EdgeJobModel] = session.scalars(query)
|
83
|
+
|
84
|
+
result = [
|
85
|
+
Job(
|
86
|
+
dag_id=j.dag_id,
|
87
|
+
task_id=j.task_id,
|
88
|
+
run_id=j.run_id,
|
89
|
+
map_index=j.map_index,
|
90
|
+
try_number=j.try_number,
|
91
|
+
state=j.state,
|
92
|
+
queue=j.queue,
|
93
|
+
queued_dttm=j.queued_dttm,
|
94
|
+
edge_worker=j.edge_worker,
|
95
|
+
last_update=j.last_update,
|
96
|
+
)
|
97
|
+
for j in jobs
|
98
|
+
]
|
99
|
+
return JobCollectionResponse(
|
100
|
+
jobs=result,
|
101
|
+
total_entries=len(result),
|
102
|
+
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: apache-airflow-providers-edge3
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.2.0
|
4
4
|
Summary: Provider package apache-airflow-providers-edge3 for Apache Airflow
|
5
5
|
Keywords: airflow-provider,edge3,airflow,integration
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
@@ -24,8 +24,8 @@ Requires-Dist: apache-airflow>=2.10.0
|
|
24
24
|
Requires-Dist: pydantic>=2.11.0
|
25
25
|
Requires-Dist: retryhttp>=1.2.0,!=1.3.0
|
26
26
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
27
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.
|
28
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.
|
27
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.2.0/changelog.html
|
28
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.2.0
|
29
29
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
30
30
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
31
31
|
Project-URL: Source Code, https://github.com/apache/airflow
|
@@ -56,9 +56,8 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
56
56
|
|
57
57
|
Package ``apache-airflow-providers-edge3``
|
58
58
|
|
59
|
-
Release: ``1.
|
59
|
+
Release: ``1.2.0``
|
60
60
|
|
61
|
-
Release Date: ``|PypiReleaseDate|``
|
62
61
|
|
63
62
|
Handle edge workers on remote sites via HTTP(s) connection and orchestrates work over distributed sites.
|
64
63
|
|
@@ -82,12 +81,12 @@ This is a provider package for ``edge3`` provider. All classes for this provider
|
|
82
81
|
are in ``airflow.providers.edge3`` python package.
|
83
82
|
|
84
83
|
You can find package information and changelog for the provider
|
85
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.
|
84
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.2.0/>`_.
|
86
85
|
|
87
86
|
Installation
|
88
87
|
------------
|
89
88
|
|
90
|
-
You can install this package on top of an existing Airflow
|
89
|
+
You can install this package on top of an existing Airflow installation (see ``Requirements`` below
|
91
90
|
for the minimum Airflow version supported) via
|
92
91
|
``pip install apache-airflow-providers-edge3``
|
93
92
|
|
@@ -105,5 +104,5 @@ PIP package Version required
|
|
105
104
|
================== ===================
|
106
105
|
|
107
106
|
The changelog for the provider package can be found in the
|
108
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.
|
107
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.2.0/changelog.html>`_.
|
109
108
|
|
@@ -0,0 +1,103 @@
|
|
1
|
+
airflow/providers/edge3/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
2
|
+
airflow/providers/edge3/__init__.py,sha256=0XLD5y7rsAnoja7NzOrsd5B1NpLtduJa_hHW2mh1Xtw,1494
|
3
|
+
airflow/providers/edge3/get_provider_info.py,sha256=Ek27-dB4UALHUFYoYjtoQIGq0p7zeHcEgmELHvpVmCU,6836
|
4
|
+
airflow/providers/edge3/version_compat.py,sha256=OMSc1Esqxt7BSjjyG6zWo_4pgW0dGi-71UXSuUKT8jE,1603
|
5
|
+
airflow/providers/edge3/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
6
|
+
airflow/providers/edge3/cli/api_client.py,sha256=334KHVB4eMSzRpQ5emS56o-RTUJQprxf5Q3xQldCHDQ,7440
|
7
|
+
airflow/providers/edge3/cli/dataclasses.py,sha256=JUuvvmzSVWvG9uOEfzLIiXrTZ-HbESvu50jkPpVIYVw,2895
|
8
|
+
airflow/providers/edge3/cli/edge_command.py,sha256=qfHjVxA8QJ6zD8Eb8Ipieso4wo51_3MBaTtuSSIEOI4,20339
|
9
|
+
airflow/providers/edge3/cli/signalling.py,sha256=sf4S6j6OoP0bLkda3UlCmlZabjv5wsMypy3kAvx56Z0,3220
|
10
|
+
airflow/providers/edge3/cli/worker.py,sha256=f_ydI9Z7Ey4rJPnast3CAAuf8DZiBrKOXNUbpq5OTew,17385
|
11
|
+
airflow/providers/edge3/example_dags/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
12
|
+
airflow/providers/edge3/example_dags/integration_test.py,sha256=_bY2tVjUZvKAJXzm0Ozrwas0efRU4X9kULKWxu7LYB4,6264
|
13
|
+
airflow/providers/edge3/example_dags/win_notepad.py,sha256=zYcrKqODN4KLZQ-5wNnZQQskrDd5LA-nKJNgKQDntSE,2832
|
14
|
+
airflow/providers/edge3/example_dags/win_test.py,sha256=Dv2PZ1miG2ypwUK_mMQdBlFdCtpR9o8EBkq1edoYF4Q,13539
|
15
|
+
airflow/providers/edge3/executors/__init__.py,sha256=y830gGSKCvjOcLwLuCDp84NCrHWWB9RSSH1qvJpFhyY,923
|
16
|
+
airflow/providers/edge3/executors/edge_executor.py,sha256=fsGOiJNp6RNT1xGFtV8G0Y-nUfT2daBtZeJBh2MZAZ4,18013
|
17
|
+
airflow/providers/edge3/models/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
18
|
+
airflow/providers/edge3/models/edge_job.py,sha256=3D5HAzcVkyI2bxl3pVbbRxjIz--Tnr_eNFiw2oI6gEQ,3167
|
19
|
+
airflow/providers/edge3/models/edge_logs.py,sha256=bNstp7gR54O2vbxzz4NTL0erbifFbGUjZ-YOM0I4sqk,2768
|
20
|
+
airflow/providers/edge3/models/edge_worker.py,sha256=z3Rru2iFqaFVyvJ6vBQ4-W0T9MenDHip6bJHfLqI6K4,12102
|
21
|
+
airflow/providers/edge3/openapi/__init__.py,sha256=0O-WvmDx8GeKSoECpHYrbe0hW-LgjlKny3VqTCpBQeQ,927
|
22
|
+
airflow/providers/edge3/openapi/edge_worker_api_v1.yaml,sha256=GAE2IdOXmcUueNy5KFkLBgNpoWnOjnHT9TrW5NZEWpI,24938
|
23
|
+
airflow/providers/edge3/openapi/v2-edge-generated.yaml,sha256=rCoakQu0LR_Jl7NCVusSCn8uSW89V7wrK8Av1r3krGs,33676
|
24
|
+
airflow/providers/edge3/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
25
|
+
airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=Ajc2cpX68Kf3dKlBluXDPoEeVIQN6qBQZS7KG3_ucd8,12741
|
26
|
+
airflow/providers/edge3/plugins/templates/edge_worker_hosts.html,sha256=0_P2yfZwpy3Kvqd3GBvu_PgmmKCUbso3ieW8aYa76iU,8997
|
27
|
+
airflow/providers/edge3/plugins/templates/edge_worker_jobs.html,sha256=bZ-6ysmIy6j4eR_TPHiqbgb3qpNMKCcEEB-SpxuxNgc,2831
|
28
|
+
airflow/providers/edge3/plugins/www/.gitignore,sha256=glCQO0xBUzFDPKNjn3_mw7F6e51j3sjyo4knJAUqMz4,281
|
29
|
+
airflow/providers/edge3/plugins/www/.prettierignore,sha256=3FQ52dyPew57fO1lXEQTVRKfJClYQaM5tVkKWKSv4hg,56
|
30
|
+
airflow/providers/edge3/plugins/www/.prettierrc,sha256=l0bDuMVuy86p4BwgAssF2AqJL6x_pZMSt8vm401QHyo,365
|
31
|
+
airflow/providers/edge3/plugins/www/README.md,sha256=VLm9Gf_vSdATdAaSeHDkKHmw3Oo_r4ZIHyu_8o0hju4,5110
|
32
|
+
airflow/providers/edge3/plugins/www/eslint.config.js,sha256=8KEosRBtZkvb2mZYWagAukze0WUu8hrPWz4eSj1ONKE,1851
|
33
|
+
airflow/providers/edge3/plugins/www/index.html,sha256=PsqOtfHrJYYwQjxqcAkVOmsl2cRJe8biKygXJjAj2ng,413
|
34
|
+
airflow/providers/edge3/plugins/www/package.json,sha256=9e0z6polyYW-_LRdJU-6-OD2JKOs2zQBKdiVHi6p5qM,2381
|
35
|
+
airflow/providers/edge3/plugins/www/pnpm-lock.yaml,sha256=6ZgC4tmmVhawGa7Hyqxv3MfASaOAeF_sbdcM3MZJBog,216063
|
36
|
+
airflow/providers/edge3/plugins/www/testsSetup.ts,sha256=x1L_lXmigZgufra1L32Xcci_lLifbaG_tP6vx6gPscc,852
|
37
|
+
airflow/providers/edge3/plugins/www/tsconfig.app.json,sha256=zpihgvrBvwjOwtHddJtYUi7Gp26diFtNYmJ7XlM3GUU,753
|
38
|
+
airflow/providers/edge3/plugins/www/tsconfig.json,sha256=jZfUc2grkJB0eRDSFPEPfmBblsr__nGAww3ojidM0ho,158
|
39
|
+
airflow/providers/edge3/plugins/www/tsconfig.lib.json,sha256=Z5M3uhtIZ0Uc9CFjc7Fro7sWv9iOP3z0iX-dzmdTBtQ,392
|
40
|
+
airflow/providers/edge3/plugins/www/tsconfig.node.json,sha256=On9I0qUPqRSyxJNKP5OlnWX_rYR1CKZV8A3IgF1UxvE,680
|
41
|
+
airflow/providers/edge3/plugins/www/vite.config.ts,sha256=V2XLg7JUx10H_JeHGDmznAsRZw8cJd8NZx3bZ0gS4eI,2806
|
42
|
+
airflow/providers/edge3/plugins/www/dist/main.d.ts,sha256=eZKjnWzeXgUOt4RhqL-a2YYXWpSCboNcEQs5ZykL0kk,10
|
43
|
+
airflow/providers/edge3/plugins/www/dist/main.umd.cjs,sha256=SYbnGEgErqeIgz4emyUAZx9skUXLWEQTFyWEIYd-lf8,504507
|
44
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts,sha256=2e7JKQUXQB4rkjwPXTe1VoJPlNoLi_qBi1DOMcoo7vg,2721
|
45
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/ensureQueryData.ts,sha256=CCvoih7AKo7voklUkF6EjcjMMVB0HOTY53mBFn2Nly0,1317
|
46
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/index.ts,sha256=p941sYs7pyF4XLKPxPgBXIko0H6s2U4sowFygzJ6Jos,114
|
47
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/infiniteQueries.ts,sha256=1Oy_tZ9ORQp_IbfL50MHgh9kYHXNxn2p89eVsxG-RtQ,61
|
48
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/prefetch.ts,sha256=pRKqxicGVetBFpV1UCWI9p5i5_EI2jCfOHgR44JhDRs,1301
|
49
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts,sha256=OLYVdvGAIc9MEI7y9Hx1t4xdzUKeZCd6308gePKGtrw,6206
|
50
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/suspense.ts,sha256=fB73K0oi6HFwvqVz8q3zM-lOp6H4EMS2zt3Lqii59cA,2186
|
51
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/index.ts,sha256=eykx9J6S_c0q9PV3cHOSrSw9OnGo7njAdBjYO3VA_N8,326
|
52
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts,sha256=ZrCutRrFdsNbEyIj27rQLZsR4zQTSKAjzt42o9wpRXY,19657
|
53
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts,sha256=6FrNQ_KZPUR234zuqRvFHgYfqe4VVbdGzhbhaW9Z5VY,9832
|
54
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts,sha256=RNMN8BLyk3ScbTi8axD8vu2p9d-ePM0tSXOkqGvRMO8,15269
|
55
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiError.ts,sha256=lfUGx_azgmK9WTL4eCD6q3MSHgi9kwbORAtzKpRD_pU,611
|
56
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiRequestOptions.ts,sha256=TXwm2FFITqANuXL9C6kdYUtG6TJEuQWtERQOrbS1zxA,617
|
57
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiResult.ts,sha256=i4pH_Yw7ZHyZmsb4PIXn8LhRqJVMFIp4fZ6OkPO32k4,166
|
58
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/CancelablePromise.ts,sha256=ZjI34GKHYGvnzNuJLdyVYjUq7BXe3KmDrIQATCsbF8w,3258
|
59
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/OpenAPI.ts,sha256=Gu0_JlDV061xLt7NF2w9zb2gpP84-rybL86sgX71Ef0,1477
|
60
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/request.ts,sha256=jG833drJAZFBKN9hnEL6RIRmAfys9eb5rC8p99wBWXk,9598
|
61
|
+
airflow/providers/edge3/plugins/www/src/dev.tsx,sha256=5sZlduF3IFFXKZMxV06hLsxhcCuWNzUMM4Ni1RITG8w,1114
|
62
|
+
airflow/providers/edge3/plugins/www/src/main.tsx,sha256=Iv_6Ln7cYlcsZT8C3vDsJGRY3YdDwVBe86CrcCs7euQ,1837
|
63
|
+
airflow/providers/edge3/plugins/www/src/theme.ts,sha256=c_UfM2PXZxjIHvyxcfchXKmXptrqA1YbAW550Xg32Yk,6856
|
64
|
+
airflow/providers/edge3/plugins/www/src/vite-env.d.ts,sha256=eY6SmeO3WS4Bxne5yY6kn_PXLilnlFfluNuZswLUDys,848
|
65
|
+
airflow/providers/edge3/plugins/www/src/components/ErrorAlert.tsx,sha256=4DFdnxEPWRBHCvMm5q5HKMH4D223jMNUX6zxKdZStNM,2182
|
66
|
+
airflow/providers/edge3/plugins/www/src/components/StateBadge.tsx,sha256=rORPnRI5h2oJaOGffnW7x4EgP6O_IbHAqA_6jO3DQUw,1506
|
67
|
+
airflow/providers/edge3/plugins/www/src/components/StateIcon.tsx,sha256=Bdrl_DOjV5lN4fXHVmxLK_OjNpODQiy2Fqk3iA5Z87s,2131
|
68
|
+
airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx,sha256=BefwNkMPxplc26c_SqiiWB1y_IGDUzRtIu7uyvhv2bw,2135
|
69
|
+
airflow/providers/edge3/plugins/www/src/components/WorkerStateIcon.tsx,sha256=kJ3HgTLlQb5xBph9Cb-LxYLO-d7DMMURBbq-asfXDo0,2158
|
70
|
+
airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx,sha256=gvndA8o2UqF0tfqijDZD4NkZ_DGBQK4Xj-oPKSgjEGw,2200
|
71
|
+
airflow/providers/edge3/plugins/www/src/components/ui/CloseButton.tsx,sha256=ZsaWKOHXz5Ic20l9nxy1IUNFJqvTXEn6Tnz6LVha1ZM,1341
|
72
|
+
airflow/providers/edge3/plugins/www/src/components/ui/index.ts,sha256=0-HHyE8t8AA63LCcFygeK0OcavKw_zOhdTTYfHWUDhc,835
|
73
|
+
airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx,sha256=TBTDueq9Pfv52BUdP47qCnhgsywGS1MrRg-AkJZb65U,1065
|
74
|
+
airflow/providers/edge3/plugins/www/src/context/colorMode/index.ts,sha256=nTdA6xva8PrXEybO-JdQN4oSY9GHlHCPvUwREzJvhDM,879
|
75
|
+
airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx,sha256=c00cGOKmck1JMyQBq4_rtkbKtHat_XStsJS6NSyOobI,1166
|
76
|
+
airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx,sha256=1VBqDFOsmj3GUz9xOv94t7ntNs1mwWZwYb-RMFxoaiU,1573
|
77
|
+
airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx,sha256=I3UV7KnEhIXfyYVRf4muloLAcpx_x6dFIPGSTRwMQfI,2126
|
78
|
+
airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx,sha256=mC6x1TAxzo8v_zdlWW-N-AZi_KSrX_Nx4AHRXpd7Xf4,3392
|
79
|
+
airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx,sha256=HOTJayfJNl6bv30CYrqgIMDnyNYHQWjdk4yLRlqE6sY,3891
|
80
|
+
airflow/providers/edge3/plugins/www/src/res/README.md,sha256=v9BEjvcB_pOcCP0bCL8wZ00xovBdzSk79FPFlqM9ZoQ,1010
|
81
|
+
airflow/providers/edge3/plugins/www/src/res/cloud-computer-dark.svg,sha256=o_HFnxsF9M8BbBgIMXuAv3gO0Wc7owQDg5hvw-Pz3ek,368
|
82
|
+
airflow/providers/edge3/plugins/www/src/res/cloud-computer.svg,sha256=oRbCGtHKdKwIqa3_540Np4Td5fkhu1YQ0n--OCRrkyw,365
|
83
|
+
airflow/providers/edge3/plugins/www/src/utils/config.ts,sha256=XTd5NDxkuNshitc1pL6zANnwBnOh8srKnLGfoKJLL80,1118
|
84
|
+
airflow/providers/edge3/plugins/www/src/utils/index.ts,sha256=IAP8x06DtpblvwRBr2n9XZeC4HoX45haHr8r-S80rKM,962
|
85
|
+
airflow/providers/edge3/plugins/www/src/utils/tokenHandler.ts,sha256=aLNV3b1_vYL_FnwPExMZozUMFCtR0cATAXk7c0t92yM,1690
|
86
|
+
airflow/providers/edge3/plugins/www/src/utils/useContainerWidth.ts,sha256=lLNc0NGM9y9ao538_MvbTiOBK3UYhNfBPX_PvRslCSg,1386
|
87
|
+
airflow/providers/edge3/worker_api/__init__.py,sha256=nnPvxWGTEKZ9YyB1Yd7P9IvDOenK01LVHm22Owwxj3g,839
|
88
|
+
airflow/providers/edge3/worker_api/app.py,sha256=yM2S2JLYE2lS4kN88XYnbeKKRa8vqVVhRq10yA_X0ig,3003
|
89
|
+
airflow/providers/edge3/worker_api/auth.py,sha256=nmwfUz-nokUKyQp-UKwlMn-i2U5AXzq7c8Xfrt_bGeU,4867
|
90
|
+
airflow/providers/edge3/worker_api/datamodels.py,sha256=FAiXqnrSN8zH4YE2fUMjXfXcH9cHlhRh4uZvvr936Ys,6696
|
91
|
+
airflow/providers/edge3/worker_api/datamodels_ui.py,sha256=xROczXO2M9aiVMbMScaztOFtJ6AWlAw5lGpvtyNX-rc,2425
|
92
|
+
airflow/providers/edge3/worker_api/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
93
|
+
airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=PuzSL9dMuji_MsluCoPdCvYboqJD0h4zERcIoB5kJvI,4543
|
94
|
+
airflow/providers/edge3/worker_api/routes/_v2_routes.py,sha256=xcbf6RdOHx5zOl9JlIAW9nQhiy3ju-EIyq1tbXGJSYc,10800
|
95
|
+
airflow/providers/edge3/worker_api/routes/health.py,sha256=1nRn_lvGhaMkGKGeEJbD_p7tJdMbC1LhEmwuQbqI9oE,1076
|
96
|
+
airflow/providers/edge3/worker_api/routes/jobs.py,sha256=UK1w6nXEUadOLwE9abZ4jHH4KtbvXcwaAF0EnwSa3y4,5733
|
97
|
+
airflow/providers/edge3/worker_api/routes/logs.py,sha256=uk0SZ5hAimj3sAcq1FYCDu0AXYNeTeyjZDGBvw-986E,4945
|
98
|
+
airflow/providers/edge3/worker_api/routes/ui.py,sha256=bZXjN1RqNyjLW8xwDV7OGrAxM9FHrj7bs4l-r4HbLk8,3174
|
99
|
+
airflow/providers/edge3/worker_api/routes/worker.py,sha256=BGARu1RZ74lW9X-ltuMYbbVXczm_MZdqHaai2MhDWtY,8969
|
100
|
+
apache_airflow_providers_edge3-1.2.0.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
|
101
|
+
apache_airflow_providers_edge3-1.2.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
102
|
+
apache_airflow_providers_edge3-1.2.0.dist-info/METADATA,sha256=_lcmdgrcPSU7ES9uRFGEzbIWUYJtACYh7gBmBaVvtDs,4741
|
103
|
+
apache_airflow_providers_edge3-1.2.0.dist-info/RECORD,,
|
@@ -1,41 +0,0 @@
|
|
1
|
-
airflow/providers/edge3/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
2
|
-
airflow/providers/edge3/__init__.py,sha256=BjORgGO_bF2ofz3p_XipVRgv7thzIxVbHYrpwdW4qvA,1494
|
3
|
-
airflow/providers/edge3/get_provider_info.py,sha256=Ek27-dB4UALHUFYoYjtoQIGq0p7zeHcEgmELHvpVmCU,6836
|
4
|
-
airflow/providers/edge3/version_compat.py,sha256=j5PCtXvZ71aBjixu-EFTNtVDPsngzzs7os0ZQDgFVDk,1536
|
5
|
-
airflow/providers/edge3/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
6
|
-
airflow/providers/edge3/cli/api_client.py,sha256=334KHVB4eMSzRpQ5emS56o-RTUJQprxf5Q3xQldCHDQ,7440
|
7
|
-
airflow/providers/edge3/cli/dataclasses.py,sha256=JUuvvmzSVWvG9uOEfzLIiXrTZ-HbESvu50jkPpVIYVw,2895
|
8
|
-
airflow/providers/edge3/cli/edge_command.py,sha256=qfHjVxA8QJ6zD8Eb8Ipieso4wo51_3MBaTtuSSIEOI4,20339
|
9
|
-
airflow/providers/edge3/cli/signalling.py,sha256=sf4S6j6OoP0bLkda3UlCmlZabjv5wsMypy3kAvx56Z0,3220
|
10
|
-
airflow/providers/edge3/cli/worker.py,sha256=x1SX5J2mFgfUTERKv5m8lDxNnoss3BV4F7Jgv6u8rPg,17259
|
11
|
-
airflow/providers/edge3/example_dags/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
12
|
-
airflow/providers/edge3/example_dags/integration_test.py,sha256=4iXvv379nFPxF1_gfbqb5NW1z-24MscYWLDxDwTNbPo,6120
|
13
|
-
airflow/providers/edge3/example_dags/win_notepad.py,sha256=zYcrKqODN4KLZQ-5wNnZQQskrDd5LA-nKJNgKQDntSE,2832
|
14
|
-
airflow/providers/edge3/example_dags/win_test.py,sha256=aZ5UbgrDsxmxPgxE6OXZV-LBhRgH0QR7xCt5mcxT7uQ,13392
|
15
|
-
airflow/providers/edge3/executors/__init__.py,sha256=y830gGSKCvjOcLwLuCDp84NCrHWWB9RSSH1qvJpFhyY,923
|
16
|
-
airflow/providers/edge3/executors/edge_executor.py,sha256=fsGOiJNp6RNT1xGFtV8G0Y-nUfT2daBtZeJBh2MZAZ4,18013
|
17
|
-
airflow/providers/edge3/models/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
18
|
-
airflow/providers/edge3/models/edge_job.py,sha256=3D5HAzcVkyI2bxl3pVbbRxjIz--Tnr_eNFiw2oI6gEQ,3167
|
19
|
-
airflow/providers/edge3/models/edge_logs.py,sha256=bNstp7gR54O2vbxzz4NTL0erbifFbGUjZ-YOM0I4sqk,2768
|
20
|
-
airflow/providers/edge3/models/edge_worker.py,sha256=z3Rru2iFqaFVyvJ6vBQ4-W0T9MenDHip6bJHfLqI6K4,12102
|
21
|
-
airflow/providers/edge3/openapi/__init__.py,sha256=0O-WvmDx8GeKSoECpHYrbe0hW-LgjlKny3VqTCpBQeQ,927
|
22
|
-
airflow/providers/edge3/openapi/edge_worker_api_v1.yaml,sha256=GAE2IdOXmcUueNy5KFkLBgNpoWnOjnHT9TrW5NZEWpI,24938
|
23
|
-
airflow/providers/edge3/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
24
|
-
airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=cJcjmk-4OYBISpeGFXGvi78GPZ5EFgymzBm6FWvMMFA,10992
|
25
|
-
airflow/providers/edge3/plugins/templates/edge_worker_hosts.html,sha256=0_P2yfZwpy3Kvqd3GBvu_PgmmKCUbso3ieW8aYa76iU,8997
|
26
|
-
airflow/providers/edge3/plugins/templates/edge_worker_jobs.html,sha256=bZ-6ysmIy6j4eR_TPHiqbgb3qpNMKCcEEB-SpxuxNgc,2831
|
27
|
-
airflow/providers/edge3/worker_api/__init__.py,sha256=nnPvxWGTEKZ9YyB1Yd7P9IvDOenK01LVHm22Owwxj3g,839
|
28
|
-
airflow/providers/edge3/worker_api/app.py,sha256=Dda2VjkzgBtbQbSWSVEAoqd22RlqvBMyiPau65uKkv4,2006
|
29
|
-
airflow/providers/edge3/worker_api/auth.py,sha256=nmwfUz-nokUKyQp-UKwlMn-i2U5AXzq7c8Xfrt_bGeU,4867
|
30
|
-
airflow/providers/edge3/worker_api/datamodels.py,sha256=FAiXqnrSN8zH4YE2fUMjXfXcH9cHlhRh4uZvvr936Ys,6696
|
31
|
-
airflow/providers/edge3/worker_api/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
32
|
-
airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=PuzSL9dMuji_MsluCoPdCvYboqJD0h4zERcIoB5kJvI,4543
|
33
|
-
airflow/providers/edge3/worker_api/routes/_v2_routes.py,sha256=xcbf6RdOHx5zOl9JlIAW9nQhiy3ju-EIyq1tbXGJSYc,10800
|
34
|
-
airflow/providers/edge3/worker_api/routes/health.py,sha256=XxqIppnRA138Q6mAHCdyL2JvoeeganUiI-TXyXSPTGo,1075
|
35
|
-
airflow/providers/edge3/worker_api/routes/jobs.py,sha256=UK1w6nXEUadOLwE9abZ4jHH4KtbvXcwaAF0EnwSa3y4,5733
|
36
|
-
airflow/providers/edge3/worker_api/routes/logs.py,sha256=uk0SZ5hAimj3sAcq1FYCDu0AXYNeTeyjZDGBvw-986E,4945
|
37
|
-
airflow/providers/edge3/worker_api/routes/worker.py,sha256=BGARu1RZ74lW9X-ltuMYbbVXczm_MZdqHaai2MhDWtY,8969
|
38
|
-
apache_airflow_providers_edge3-1.1.3.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
|
39
|
-
apache_airflow_providers_edge3-1.1.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
40
|
-
apache_airflow_providers_edge3-1.1.3.dist-info/METADATA,sha256=Q_0GBApe8amF0E0-_69-wVMrDOc9QBYaKTNkTgsY8yA,4779
|
41
|
-
apache_airflow_providers_edge3-1.1.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|