apache-airflow-providers-edge3 1.2.0__py3-none-any.whl → 1.3.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/edge_command.py +43 -0
- airflow/providers/edge3/cli/worker.py +40 -40
- airflow/providers/edge3/models/edge_worker.py +13 -8
- airflow/providers/edge3/openapi/v2-edge-generated.yaml +249 -0
- airflow/providers/edge3/plugins/www/dist/main.umd.cjs +53 -19
- airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts +7 -0
- airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts +44 -1
- airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts +14 -0
- airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts +158 -1
- airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts +155 -0
- airflow/providers/edge3/plugins/www/package.json +14 -10
- airflow/providers/edge3/plugins/www/pnpm-lock.yaml +601 -457
- airflow/providers/edge3/plugins/www/src/components/AddQueueButton.tsx +138 -0
- airflow/providers/edge3/plugins/www/src/components/MaintenanceEditCommentButton.tsx +106 -0
- airflow/providers/edge3/plugins/www/src/components/MaintenanceEnterButton.tsx +102 -0
- airflow/providers/edge3/plugins/www/src/components/MaintenanceExitButton.tsx +92 -0
- airflow/providers/edge3/plugins/www/src/components/RemoveQueueButton.tsx +151 -0
- airflow/providers/edge3/plugins/www/src/components/WorkerDeleteButton.tsx +104 -0
- airflow/providers/edge3/plugins/www/src/components/WorkerOperations.tsx +85 -0
- airflow/providers/edge3/plugins/www/src/components/WorkerShutdownButton.tsx +104 -0
- airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx +33 -0
- airflow/providers/edge3/plugins/www/src/components/ui/ScrollToAnchor.tsx +49 -0
- airflow/providers/edge3/plugins/www/src/components/ui/createToaster.ts +24 -0
- airflow/providers/edge3/plugins/www/src/components/ui/index.ts +2 -0
- airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx +1 -2
- airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx +2 -5
- airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx +52 -15
- airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx +52 -22
- airflow/providers/edge3/plugins/www/src/theme.ts +378 -130
- airflow/providers/edge3/plugins/www/vite.config.ts +2 -0
- airflow/providers/edge3/worker_api/datamodels_ui.py +12 -0
- airflow/providers/edge3/worker_api/routes/ui.py +193 -3
- {apache_airflow_providers_edge3-1.2.0.dist-info → apache_airflow_providers_edge3-1.3.0.dist-info}/METADATA +6 -6
- {apache_airflow_providers_edge3-1.2.0.dist-info → apache_airflow_providers_edge3-1.3.0.dist-info}/RECORD +37 -27
- {apache_airflow_providers_edge3-1.2.0.dist-info → apache_airflow_providers_edge3-1.3.0.dist-info}/WHEEL +0 -0
- {apache_airflow_providers_edge3-1.2.0.dist-info → apache_airflow_providers_edge3-1.3.0.dist-info}/entry_points.txt +0 -0
|
@@ -17,18 +17,30 @@
|
|
|
17
17
|
|
|
18
18
|
from __future__ import annotations
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from datetime import datetime
|
|
21
|
+
|
|
22
|
+
from fastapi import Depends, HTTPException, status
|
|
21
23
|
from sqlalchemy import select
|
|
22
24
|
|
|
23
25
|
from airflow.api_fastapi.auth.managers.models.resource_details import AccessView
|
|
24
26
|
from airflow.api_fastapi.common.db.common import SessionDep # noqa: TC001
|
|
25
27
|
from airflow.api_fastapi.common.router import AirflowRouter
|
|
26
|
-
from airflow.api_fastapi.core_api.security import requires_access_view
|
|
28
|
+
from airflow.api_fastapi.core_api.security import GetUserDep, requires_access_view
|
|
27
29
|
from airflow.providers.edge3.models.edge_job import EdgeJobModel
|
|
28
|
-
from airflow.providers.edge3.models.edge_worker import
|
|
30
|
+
from airflow.providers.edge3.models.edge_worker import (
|
|
31
|
+
EdgeWorkerModel,
|
|
32
|
+
add_worker_queues,
|
|
33
|
+
change_maintenance_comment,
|
|
34
|
+
exit_maintenance,
|
|
35
|
+
remove_worker,
|
|
36
|
+
remove_worker_queues,
|
|
37
|
+
request_maintenance,
|
|
38
|
+
request_shutdown,
|
|
39
|
+
)
|
|
29
40
|
from airflow.providers.edge3.worker_api.datamodels_ui import (
|
|
30
41
|
Job,
|
|
31
42
|
JobCollectionResponse,
|
|
43
|
+
MaintenanceRequest,
|
|
32
44
|
Worker,
|
|
33
45
|
WorkerCollectionResponse,
|
|
34
46
|
)
|
|
@@ -100,3 +112,181 @@ def jobs(
|
|
|
100
112
|
jobs=result,
|
|
101
113
|
total_entries=len(result),
|
|
102
114
|
)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@ui_router.post(
|
|
118
|
+
"/worker/{worker_name}/maintenance",
|
|
119
|
+
dependencies=[
|
|
120
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
121
|
+
],
|
|
122
|
+
)
|
|
123
|
+
def request_worker_maintenance(
|
|
124
|
+
worker_name: str,
|
|
125
|
+
maintenance_request: MaintenanceRequest,
|
|
126
|
+
session: SessionDep,
|
|
127
|
+
user: GetUserDep,
|
|
128
|
+
) -> None:
|
|
129
|
+
"""Put a worker into maintenance mode."""
|
|
130
|
+
# Check if worker exists first
|
|
131
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
132
|
+
worker = session.scalar(worker_query)
|
|
133
|
+
if not worker:
|
|
134
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
135
|
+
if not maintenance_request.maintenance_comment:
|
|
136
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail="Maintenance comment is required")
|
|
137
|
+
|
|
138
|
+
# Format the comment with timestamp and username (username will be added by plugin layer)
|
|
139
|
+
formatted_comment = f"[{datetime.now().strftime('%Y-%m-%d %H:%M')}] - {user.get_name()} put node into maintenance mode\nComment: {maintenance_request.maintenance_comment}"
|
|
140
|
+
|
|
141
|
+
try:
|
|
142
|
+
request_maintenance(worker_name, formatted_comment, session=session)
|
|
143
|
+
except Exception as e:
|
|
144
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@ui_router.patch(
|
|
148
|
+
"/worker/{worker_name}/maintenance",
|
|
149
|
+
dependencies=[
|
|
150
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
151
|
+
],
|
|
152
|
+
)
|
|
153
|
+
def update_worker_maintenance(
|
|
154
|
+
worker_name: str,
|
|
155
|
+
maintenance_request: MaintenanceRequest,
|
|
156
|
+
session: SessionDep,
|
|
157
|
+
user: GetUserDep,
|
|
158
|
+
) -> None:
|
|
159
|
+
"""Update maintenance comments for a worker."""
|
|
160
|
+
# Check if worker exists first
|
|
161
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
162
|
+
worker = session.scalar(worker_query)
|
|
163
|
+
if not worker:
|
|
164
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
165
|
+
if not maintenance_request.maintenance_comment:
|
|
166
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail="Maintenance comment is required")
|
|
167
|
+
|
|
168
|
+
# Format the comment with timestamp and username (username will be added by plugin layer)
|
|
169
|
+
first_line = worker.maintenance_comment.split("\n", 1)[0] if worker.maintenance_comment else ""
|
|
170
|
+
formatted_comment = f"{first_line}\n[{datetime.now().strftime('%Y-%m-%d %H:%M')}] - {user.get_name()} updated comment:\n{maintenance_request.maintenance_comment}"
|
|
171
|
+
|
|
172
|
+
try:
|
|
173
|
+
change_maintenance_comment(worker_name, formatted_comment, session=session)
|
|
174
|
+
except Exception as e:
|
|
175
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
@ui_router.delete(
|
|
179
|
+
"/worker/{worker_name}/maintenance",
|
|
180
|
+
dependencies=[
|
|
181
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
182
|
+
],
|
|
183
|
+
)
|
|
184
|
+
def exit_worker_maintenance(
|
|
185
|
+
worker_name: str,
|
|
186
|
+
session: SessionDep,
|
|
187
|
+
) -> None:
|
|
188
|
+
"""Exit a worker from maintenance mode."""
|
|
189
|
+
# Check if worker exists first
|
|
190
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
191
|
+
worker = session.scalar(worker_query)
|
|
192
|
+
if not worker:
|
|
193
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
194
|
+
|
|
195
|
+
try:
|
|
196
|
+
exit_maintenance(worker_name, session=session)
|
|
197
|
+
except Exception as e:
|
|
198
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
@ui_router.post(
|
|
202
|
+
"/worker/{worker_name}/shutdown",
|
|
203
|
+
dependencies=[
|
|
204
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
205
|
+
],
|
|
206
|
+
)
|
|
207
|
+
def request_worker_shutdown(
|
|
208
|
+
worker_name: str,
|
|
209
|
+
session: SessionDep,
|
|
210
|
+
) -> None:
|
|
211
|
+
"""Request shutdown of a worker."""
|
|
212
|
+
# Check if worker exists first
|
|
213
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
214
|
+
worker = session.scalar(worker_query)
|
|
215
|
+
if not worker:
|
|
216
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
217
|
+
|
|
218
|
+
try:
|
|
219
|
+
request_shutdown(worker_name, session=session)
|
|
220
|
+
except Exception as e:
|
|
221
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
@ui_router.delete(
|
|
225
|
+
"/worker/{worker_name}",
|
|
226
|
+
dependencies=[
|
|
227
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
228
|
+
],
|
|
229
|
+
)
|
|
230
|
+
def delete_worker(
|
|
231
|
+
worker_name: str,
|
|
232
|
+
session: SessionDep,
|
|
233
|
+
) -> None:
|
|
234
|
+
"""Delete a worker record from the system."""
|
|
235
|
+
# Check if worker exists first
|
|
236
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
237
|
+
worker = session.scalar(worker_query)
|
|
238
|
+
if not worker:
|
|
239
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
240
|
+
|
|
241
|
+
try:
|
|
242
|
+
remove_worker(worker_name, session=session)
|
|
243
|
+
except Exception as e:
|
|
244
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
@ui_router.put(
|
|
248
|
+
"/worker/{worker_name}/queues/{queue_name}",
|
|
249
|
+
dependencies=[
|
|
250
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
251
|
+
],
|
|
252
|
+
)
|
|
253
|
+
def add_worker_queue(
|
|
254
|
+
worker_name: str,
|
|
255
|
+
queue_name: str,
|
|
256
|
+
session: SessionDep,
|
|
257
|
+
) -> None:
|
|
258
|
+
"""Add a queue to a worker."""
|
|
259
|
+
# Check if worker exists first
|
|
260
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
261
|
+
worker = session.scalar(worker_query)
|
|
262
|
+
if not worker:
|
|
263
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
264
|
+
|
|
265
|
+
try:
|
|
266
|
+
add_worker_queues(worker_name, [queue_name], session=session)
|
|
267
|
+
except Exception as e:
|
|
268
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
@ui_router.delete(
|
|
272
|
+
"/worker/{worker_name}/queues/{queue_name}",
|
|
273
|
+
dependencies=[
|
|
274
|
+
Depends(requires_access_view(access_view=AccessView.JOBS)),
|
|
275
|
+
],
|
|
276
|
+
)
|
|
277
|
+
def remove_worker_queue(
|
|
278
|
+
worker_name: str,
|
|
279
|
+
queue_name: str,
|
|
280
|
+
session: SessionDep,
|
|
281
|
+
) -> None:
|
|
282
|
+
"""Remove a queue from a worker."""
|
|
283
|
+
# Check if worker exists first
|
|
284
|
+
worker_query = select(EdgeWorkerModel).where(EdgeWorkerModel.worker_name == worker_name)
|
|
285
|
+
worker = session.scalar(worker_query)
|
|
286
|
+
if not worker:
|
|
287
|
+
raise HTTPException(status.HTTP_404_NOT_FOUND, detail=f"Worker {worker_name} not found")
|
|
288
|
+
|
|
289
|
+
try:
|
|
290
|
+
remove_worker_queues(worker_name, [queue_name], session=session)
|
|
291
|
+
except Exception as e:
|
|
292
|
+
raise HTTPException(status.HTTP_400_BAD_REQUEST, detail=str(e))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-edge3
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.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.3.0/changelog.html
|
|
28
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.3.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,7 +56,7 @@ 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.3.0``
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
Handle edge workers on remote sites via HTTP(s) connection and orchestrates work over distributed sites.
|
|
@@ -81,7 +81,7 @@ This is a provider package for ``edge3`` provider. All classes for this provider
|
|
|
81
81
|
are in ``airflow.providers.edge3`` python package.
|
|
82
82
|
|
|
83
83
|
You can find package information and changelog for the provider
|
|
84
|
-
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.3.0/>`_.
|
|
85
85
|
|
|
86
86
|
Installation
|
|
87
87
|
------------
|
|
@@ -104,5 +104,5 @@ PIP package Version required
|
|
|
104
104
|
================== ===================
|
|
105
105
|
|
|
106
106
|
The changelog for the provider package can be found in the
|
|
107
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.
|
|
107
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-edge3/1.3.0/changelog.html>`_.
|
|
108
108
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
airflow/providers/edge3/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
|
|
2
|
-
airflow/providers/edge3/__init__.py,sha256=
|
|
2
|
+
airflow/providers/edge3/__init__.py,sha256=vT6YKrohbryLOfXpKveRM0-hfus4_pJ9k-nCpQ8Rq4A,1494
|
|
3
3
|
airflow/providers/edge3/get_provider_info.py,sha256=Ek27-dB4UALHUFYoYjtoQIGq0p7zeHcEgmELHvpVmCU,6836
|
|
4
4
|
airflow/providers/edge3/version_compat.py,sha256=OMSc1Esqxt7BSjjyG6zWo_4pgW0dGi-71UXSuUKT8jE,1603
|
|
5
5
|
airflow/providers/edge3/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
6
6
|
airflow/providers/edge3/cli/api_client.py,sha256=334KHVB4eMSzRpQ5emS56o-RTUJQprxf5Q3xQldCHDQ,7440
|
|
7
7
|
airflow/providers/edge3/cli/dataclasses.py,sha256=JUuvvmzSVWvG9uOEfzLIiXrTZ-HbESvu50jkPpVIYVw,2895
|
|
8
|
-
airflow/providers/edge3/cli/edge_command.py,sha256=
|
|
8
|
+
airflow/providers/edge3/cli/edge_command.py,sha256=aZ8P9x9FBR_pyuDxi6LaLkz4ubGOBDk1RNNp0ppTbKY,21747
|
|
9
9
|
airflow/providers/edge3/cli/signalling.py,sha256=sf4S6j6OoP0bLkda3UlCmlZabjv5wsMypy3kAvx56Z0,3220
|
|
10
|
-
airflow/providers/edge3/cli/worker.py,sha256=
|
|
10
|
+
airflow/providers/edge3/cli/worker.py,sha256=hYRx6LjP4bWnD8k0i8L7c1zto2BMiutY2Jxd7yZIMXE,17216
|
|
11
11
|
airflow/providers/edge3/example_dags/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
12
12
|
airflow/providers/edge3/example_dags/integration_test.py,sha256=_bY2tVjUZvKAJXzm0Ozrwas0efRU4X9kULKWxu7LYB4,6264
|
|
13
13
|
airflow/providers/edge3/example_dags/win_notepad.py,sha256=zYcrKqODN4KLZQ-5wNnZQQskrDd5LA-nKJNgKQDntSE,2832
|
|
@@ -17,10 +17,10 @@ airflow/providers/edge3/executors/edge_executor.py,sha256=fsGOiJNp6RNT1xGFtV8G0Y
|
|
|
17
17
|
airflow/providers/edge3/models/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
18
18
|
airflow/providers/edge3/models/edge_job.py,sha256=3D5HAzcVkyI2bxl3pVbbRxjIz--Tnr_eNFiw2oI6gEQ,3167
|
|
19
19
|
airflow/providers/edge3/models/edge_logs.py,sha256=bNstp7gR54O2vbxzz4NTL0erbifFbGUjZ-YOM0I4sqk,2768
|
|
20
|
-
airflow/providers/edge3/models/edge_worker.py,sha256=
|
|
20
|
+
airflow/providers/edge3/models/edge_worker.py,sha256=wUxDfxN-Hb4oAyHiA3TdwriIbgostHyg0fquyy37rEI,12405
|
|
21
21
|
airflow/providers/edge3/openapi/__init__.py,sha256=0O-WvmDx8GeKSoECpHYrbe0hW-LgjlKny3VqTCpBQeQ,927
|
|
22
22
|
airflow/providers/edge3/openapi/edge_worker_api_v1.yaml,sha256=GAE2IdOXmcUueNy5KFkLBgNpoWnOjnHT9TrW5NZEWpI,24938
|
|
23
|
-
airflow/providers/edge3/openapi/v2-edge-generated.yaml,sha256=
|
|
23
|
+
airflow/providers/edge3/openapi/v2-edge-generated.yaml,sha256=Log1huZkCqBTei1Z9no-O6pSQWPphHJTO5nBda7MFEw,40489
|
|
24
24
|
airflow/providers/edge3/plugins/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
25
25
|
airflow/providers/edge3/plugins/edge_executor_plugin.py,sha256=Ajc2cpX68Kf3dKlBluXDPoEeVIQN6qBQZS7KG3_ucd8,12741
|
|
26
26
|
airflow/providers/edge3/plugins/templates/edge_worker_hosts.html,sha256=0_P2yfZwpy3Kvqd3GBvu_PgmmKCUbso3ieW8aYa76iU,8997
|
|
@@ -31,27 +31,27 @@ airflow/providers/edge3/plugins/www/.prettierrc,sha256=l0bDuMVuy86p4BwgAssF2AqJL
|
|
|
31
31
|
airflow/providers/edge3/plugins/www/README.md,sha256=VLm9Gf_vSdATdAaSeHDkKHmw3Oo_r4ZIHyu_8o0hju4,5110
|
|
32
32
|
airflow/providers/edge3/plugins/www/eslint.config.js,sha256=8KEosRBtZkvb2mZYWagAukze0WUu8hrPWz4eSj1ONKE,1851
|
|
33
33
|
airflow/providers/edge3/plugins/www/index.html,sha256=PsqOtfHrJYYwQjxqcAkVOmsl2cRJe8biKygXJjAj2ng,413
|
|
34
|
-
airflow/providers/edge3/plugins/www/package.json,sha256=
|
|
35
|
-
airflow/providers/edge3/plugins/www/pnpm-lock.yaml,sha256=
|
|
34
|
+
airflow/providers/edge3/plugins/www/package.json,sha256=7gagPyIlh-DzD_iYc2zW0RkzyPtyPfVNpuT95RIEOGA,2450
|
|
35
|
+
airflow/providers/edge3/plugins/www/pnpm-lock.yaml,sha256=MV2XlPs4AhZQyaWBt8bXQqJfCzF860Kzky9yUDnq8o0,220866
|
|
36
36
|
airflow/providers/edge3/plugins/www/testsSetup.ts,sha256=x1L_lXmigZgufra1L32Xcci_lLifbaG_tP6vx6gPscc,852
|
|
37
37
|
airflow/providers/edge3/plugins/www/tsconfig.app.json,sha256=zpihgvrBvwjOwtHddJtYUi7Gp26diFtNYmJ7XlM3GUU,753
|
|
38
38
|
airflow/providers/edge3/plugins/www/tsconfig.json,sha256=jZfUc2grkJB0eRDSFPEPfmBblsr__nGAww3ojidM0ho,158
|
|
39
39
|
airflow/providers/edge3/plugins/www/tsconfig.lib.json,sha256=Z5M3uhtIZ0Uc9CFjc7Fro7sWv9iOP3z0iX-dzmdTBtQ,392
|
|
40
40
|
airflow/providers/edge3/plugins/www/tsconfig.node.json,sha256=On9I0qUPqRSyxJNKP5OlnWX_rYR1CKZV8A3IgF1UxvE,680
|
|
41
|
-
airflow/providers/edge3/plugins/www/vite.config.ts,sha256=
|
|
41
|
+
airflow/providers/edge3/plugins/www/vite.config.ts,sha256=d1AANLpXH9lmreFQXxKJDGLDK20GOSp2tlhcKT9aLQk,2876
|
|
42
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=
|
|
44
|
-
airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts,sha256=
|
|
43
|
+
airflow/providers/edge3/plugins/www/dist/main.umd.cjs,sha256=GJ9n3CbnTmtQsUXuMXuy0mCdfUXdwPhNr47aUBlvACM,562721
|
|
44
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/common.ts,sha256=mnY7x73LFNTprAZjwPRbl9W1VSmKXPflqtaQa4ocOxw,3531
|
|
45
45
|
airflow/providers/edge3/plugins/www/openapi-gen/queries/ensureQueryData.ts,sha256=CCvoih7AKo7voklUkF6EjcjMMVB0HOTY53mBFn2Nly0,1317
|
|
46
46
|
airflow/providers/edge3/plugins/www/openapi-gen/queries/index.ts,sha256=p941sYs7pyF4XLKPxPgBXIko0H6s2U4sowFygzJ6Jos,114
|
|
47
47
|
airflow/providers/edge3/plugins/www/openapi-gen/queries/infiniteQueries.ts,sha256=1Oy_tZ9ORQp_IbfL50MHgh9kYHXNxn2p89eVsxG-RtQ,61
|
|
48
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=
|
|
49
|
+
airflow/providers/edge3/plugins/www/openapi-gen/queries/queries.ts,sha256=XQUk9_HwXC3A-3X_QeiB5V_Q3n1jv6Cql__-x4CPmBM,9616
|
|
50
50
|
airflow/providers/edge3/plugins/www/openapi-gen/queries/suspense.ts,sha256=fB73K0oi6HFwvqVz8q3zM-lOp6H4EMS2zt3Lqii59cA,2186
|
|
51
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=
|
|
53
|
-
airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts,sha256=
|
|
54
|
-
airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts,sha256=
|
|
52
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/schemas.gen.ts,sha256=Vu5-aOO7-RU3QwS4G-4420bnNrj5W0ao4hcfDi_n_rc,20065
|
|
53
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/services.gen.ts,sha256=D-vVoLWvjh9qDoBnjtLgHESYUTC0S_GJcclCqH4_IBY,15177
|
|
54
|
+
airflow/providers/edge3/plugins/www/openapi-gen/requests/types.gen.ts,sha256=Sn6qG4qSAjCDB6gAAG-PU-Mwct2h7RENhdkyxxQeFzc,18943
|
|
55
55
|
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiError.ts,sha256=lfUGx_azgmK9WTL4eCD6q3MSHgi9kwbORAtzKpRD_pU,611
|
|
56
56
|
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiRequestOptions.ts,sha256=TXwm2FFITqANuXL9C6kdYUtG6TJEuQWtERQOrbS1zxA,617
|
|
57
57
|
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/ApiResult.ts,sha256=i4pH_Yw7ZHyZmsb4PIXn8LhRqJVMFIp4fZ6OkPO32k4,166
|
|
@@ -60,23 +60,33 @@ airflow/providers/edge3/plugins/www/openapi-gen/requests/core/OpenAPI.ts,sha256=
|
|
|
60
60
|
airflow/providers/edge3/plugins/www/openapi-gen/requests/core/request.ts,sha256=jG833drJAZFBKN9hnEL6RIRmAfys9eb5rC8p99wBWXk,9598
|
|
61
61
|
airflow/providers/edge3/plugins/www/src/dev.tsx,sha256=5sZlduF3IFFXKZMxV06hLsxhcCuWNzUMM4Ni1RITG8w,1114
|
|
62
62
|
airflow/providers/edge3/plugins/www/src/main.tsx,sha256=Iv_6Ln7cYlcsZT8C3vDsJGRY3YdDwVBe86CrcCs7euQ,1837
|
|
63
|
-
airflow/providers/edge3/plugins/www/src/theme.ts,sha256=
|
|
63
|
+
airflow/providers/edge3/plugins/www/src/theme.ts,sha256=jHKET2sbLILW2nrARgAL5cXYfAxOIoIt16WruK26Ies,21459
|
|
64
64
|
airflow/providers/edge3/plugins/www/src/vite-env.d.ts,sha256=eY6SmeO3WS4Bxne5yY6kn_PXLilnlFfluNuZswLUDys,848
|
|
65
|
+
airflow/providers/edge3/plugins/www/src/components/AddQueueButton.tsx,sha256=Ahyf0_NXqEM0UjIdMyTuANKToD1coqfEjdsQiudK_Fg,4159
|
|
65
66
|
airflow/providers/edge3/plugins/www/src/components/ErrorAlert.tsx,sha256=4DFdnxEPWRBHCvMm5q5HKMH4D223jMNUX6zxKdZStNM,2182
|
|
67
|
+
airflow/providers/edge3/plugins/www/src/components/MaintenanceEditCommentButton.tsx,sha256=Yuy9iSaIlp25MdU2TDum7EKlI8BDuT27TEhkkokMUk0,3586
|
|
68
|
+
airflow/providers/edge3/plugins/www/src/components/MaintenanceEnterButton.tsx,sha256=uJTKGJgWHATpSTMhshUkmGgTt0vLxOtwACRnOe5glyU,3641
|
|
69
|
+
airflow/providers/edge3/plugins/www/src/components/MaintenanceExitButton.tsx,sha256=zkKv9UfPiXVr2y3wBwTnpM_kV-i2cc0CkNVH9izXpRw,3183
|
|
70
|
+
airflow/providers/edge3/plugins/www/src/components/RemoveQueueButton.tsx,sha256=L6S9v0Z7kNShiyQN6UnjZXnrVOvWHT-yO4y4ImTB-qo,4792
|
|
66
71
|
airflow/providers/edge3/plugins/www/src/components/StateBadge.tsx,sha256=rORPnRI5h2oJaOGffnW7x4EgP6O_IbHAqA_6jO3DQUw,1506
|
|
67
72
|
airflow/providers/edge3/plugins/www/src/components/StateIcon.tsx,sha256=Bdrl_DOjV5lN4fXHVmxLK_OjNpODQiy2Fqk3iA5Z87s,2131
|
|
68
|
-
airflow/providers/edge3/plugins/www/src/components/
|
|
73
|
+
airflow/providers/edge3/plugins/www/src/components/WorkerDeleteButton.tsx,sha256=4JPuKGcDAXqsFMEBeO2rZm9BDjpCTLMjOuBFh2VY8mM,3529
|
|
74
|
+
airflow/providers/edge3/plugins/www/src/components/WorkerOperations.tsx,sha256=NUCPGr8hAg1HiSFWaMRd5H7IssCp1HxHhzKK-K01CLA,3330
|
|
75
|
+
airflow/providers/edge3/plugins/www/src/components/WorkerShutdownButton.tsx,sha256=IehKTRjCOkDuN1FeSQR-2TCxuK3BaN4VIWz_LBC9bjM,3629
|
|
76
|
+
airflow/providers/edge3/plugins/www/src/components/WorkerStateBadge.tsx,sha256=tJX9FifJZKt4WqUyaTwMFxreTGpqxXK6-idfFSvNfXQ,3925
|
|
69
77
|
airflow/providers/edge3/plugins/www/src/components/WorkerStateIcon.tsx,sha256=kJ3HgTLlQb5xBph9Cb-LxYLO-d7DMMURBbq-asfXDo0,2158
|
|
70
78
|
airflow/providers/edge3/plugins/www/src/components/ui/Alert.tsx,sha256=gvndA8o2UqF0tfqijDZD4NkZ_DGBQK4Xj-oPKSgjEGw,2200
|
|
71
79
|
airflow/providers/edge3/plugins/www/src/components/ui/CloseButton.tsx,sha256=ZsaWKOHXz5Ic20l9nxy1IUNFJqvTXEn6Tnz6LVha1ZM,1341
|
|
72
|
-
airflow/providers/edge3/plugins/www/src/components/ui/
|
|
73
|
-
airflow/providers/edge3/plugins/www/src/
|
|
80
|
+
airflow/providers/edge3/plugins/www/src/components/ui/ScrollToAnchor.tsx,sha256=iznVBnAu5kbGY-F8YoDu1ZXrm_K-0mnqsfVCv0adVP8,1653
|
|
81
|
+
airflow/providers/edge3/plugins/www/src/components/ui/createToaster.ts,sha256=kuOy0Zs_gLXSWJguySQALqjn1r5KPB90Hci8sVKbjrE,955
|
|
82
|
+
airflow/providers/edge3/plugins/www/src/components/ui/index.ts,sha256=oMFdotQy8u1LqSJRZ_oZ_pyXVbA17pmWKG1V5hOT7wA,902
|
|
83
|
+
airflow/providers/edge3/plugins/www/src/context/colorMode/ColorModeProvider.tsx,sha256=D9tDe9sYEQvCSQ_3fmf6zCaS9rZnzWoZrvb3qrJ0qf0,1024
|
|
74
84
|
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=
|
|
85
|
+
airflow/providers/edge3/plugins/www/src/context/colorMode/useColorMode.tsx,sha256=YYcXELSveM_10fOwZeCh9yxiN8H7essKz1QDiy9Jio8,1122
|
|
76
86
|
airflow/providers/edge3/plugins/www/src/layouts/EdgeLayout.tsx,sha256=1VBqDFOsmj3GUz9xOv94t7ntNs1mwWZwYb-RMFxoaiU,1573
|
|
77
87
|
airflow/providers/edge3/plugins/www/src/layouts/NavTabs.tsx,sha256=I3UV7KnEhIXfyYVRf4muloLAcpx_x6dFIPGSTRwMQfI,2126
|
|
78
|
-
airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx,sha256=
|
|
79
|
-
airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx,sha256=
|
|
88
|
+
airflow/providers/edge3/plugins/www/src/pages/JobsPage.tsx,sha256=9spI-Ru7ANKkadWGiiILHnllbc-TRmIA4iY3-YM5Kww,4971
|
|
89
|
+
airflow/providers/edge3/plugins/www/src/pages/WorkerPage.tsx,sha256=nvEuqk0tr1Y_JMGJTYDzmdadwB-LiJ4OrdmqNfHhiwA,5070
|
|
80
90
|
airflow/providers/edge3/plugins/www/src/res/README.md,sha256=v9BEjvcB_pOcCP0bCL8wZ00xovBdzSk79FPFlqM9ZoQ,1010
|
|
81
91
|
airflow/providers/edge3/plugins/www/src/res/cloud-computer-dark.svg,sha256=o_HFnxsF9M8BbBgIMXuAv3gO0Wc7owQDg5hvw-Pz3ek,368
|
|
82
92
|
airflow/providers/edge3/plugins/www/src/res/cloud-computer.svg,sha256=oRbCGtHKdKwIqa3_540Np4Td5fkhu1YQ0n--OCRrkyw,365
|
|
@@ -88,16 +98,16 @@ airflow/providers/edge3/worker_api/__init__.py,sha256=nnPvxWGTEKZ9YyB1Yd7P9IvDOe
|
|
|
88
98
|
airflow/providers/edge3/worker_api/app.py,sha256=yM2S2JLYE2lS4kN88XYnbeKKRa8vqVVhRq10yA_X0ig,3003
|
|
89
99
|
airflow/providers/edge3/worker_api/auth.py,sha256=nmwfUz-nokUKyQp-UKwlMn-i2U5AXzq7c8Xfrt_bGeU,4867
|
|
90
100
|
airflow/providers/edge3/worker_api/datamodels.py,sha256=FAiXqnrSN8zH4YE2fUMjXfXcH9cHlhRh4uZvvr936Ys,6696
|
|
91
|
-
airflow/providers/edge3/worker_api/datamodels_ui.py,sha256=
|
|
101
|
+
airflow/providers/edge3/worker_api/datamodels_ui.py,sha256=yPEdtZ7noV5BBNXvA9F-pqVDq7UxTIKUdoUf3_FTDdE,2795
|
|
92
102
|
airflow/providers/edge3/worker_api/routes/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
93
103
|
airflow/providers/edge3/worker_api/routes/_v2_compat.py,sha256=PuzSL9dMuji_MsluCoPdCvYboqJD0h4zERcIoB5kJvI,4543
|
|
94
104
|
airflow/providers/edge3/worker_api/routes/_v2_routes.py,sha256=xcbf6RdOHx5zOl9JlIAW9nQhiy3ju-EIyq1tbXGJSYc,10800
|
|
95
105
|
airflow/providers/edge3/worker_api/routes/health.py,sha256=1nRn_lvGhaMkGKGeEJbD_p7tJdMbC1LhEmwuQbqI9oE,1076
|
|
96
106
|
airflow/providers/edge3/worker_api/routes/jobs.py,sha256=UK1w6nXEUadOLwE9abZ4jHH4KtbvXcwaAF0EnwSa3y4,5733
|
|
97
107
|
airflow/providers/edge3/worker_api/routes/logs.py,sha256=uk0SZ5hAimj3sAcq1FYCDu0AXYNeTeyjZDGBvw-986E,4945
|
|
98
|
-
airflow/providers/edge3/worker_api/routes/ui.py,sha256=
|
|
108
|
+
airflow/providers/edge3/worker_api/routes/ui.py,sha256=qXELQI6RZ80fLDTB0K6Z2H__ofJwRSvK6J1UYW3JC7g,9786
|
|
99
109
|
airflow/providers/edge3/worker_api/routes/worker.py,sha256=BGARu1RZ74lW9X-ltuMYbbVXczm_MZdqHaai2MhDWtY,8969
|
|
100
|
-
apache_airflow_providers_edge3-1.
|
|
101
|
-
apache_airflow_providers_edge3-1.
|
|
102
|
-
apache_airflow_providers_edge3-1.
|
|
103
|
-
apache_airflow_providers_edge3-1.
|
|
110
|
+
apache_airflow_providers_edge3-1.3.0.dist-info/entry_points.txt,sha256=7WUIGfd3o9NvvbK5trbZxNXTgYGc6pqg74wZPigbx5o,206
|
|
111
|
+
apache_airflow_providers_edge3-1.3.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
112
|
+
apache_airflow_providers_edge3-1.3.0.dist-info/METADATA,sha256=YqVQO-zSk_1IGy_UGpGEqTmhVfLE5n7yatlzdYHZnPY,4741
|
|
113
|
+
apache_airflow_providers_edge3-1.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|