apache-airflow-providers-edge3 1.0.0rc1__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/LICENSE +201 -0
- airflow/providers/edge3/__init__.py +39 -0
- airflow/providers/edge3/cli/__init__.py +16 -0
- airflow/providers/edge3/cli/api_client.py +206 -0
- airflow/providers/edge3/cli/dataclasses.py +95 -0
- airflow/providers/edge3/cli/edge_command.py +689 -0
- airflow/providers/edge3/example_dags/__init__.py +16 -0
- airflow/providers/edge3/example_dags/integration_test.py +164 -0
- airflow/providers/edge3/example_dags/win_notepad.py +83 -0
- airflow/providers/edge3/example_dags/win_test.py +342 -0
- airflow/providers/edge3/executors/__init__.py +22 -0
- airflow/providers/edge3/executors/edge_executor.py +367 -0
- airflow/providers/edge3/get_provider_info.py +99 -0
- airflow/providers/edge3/models/__init__.py +16 -0
- airflow/providers/edge3/models/edge_job.py +94 -0
- airflow/providers/edge3/models/edge_logs.py +73 -0
- airflow/providers/edge3/models/edge_worker.py +230 -0
- airflow/providers/edge3/openapi/__init__.py +19 -0
- airflow/providers/edge3/openapi/edge_worker_api_v1.yaml +808 -0
- airflow/providers/edge3/plugins/__init__.py +16 -0
- airflow/providers/edge3/plugins/edge_executor_plugin.py +229 -0
- airflow/providers/edge3/plugins/templates/edge_worker_hosts.html +175 -0
- airflow/providers/edge3/plugins/templates/edge_worker_jobs.html +69 -0
- airflow/providers/edge3/version_compat.py +36 -0
- airflow/providers/edge3/worker_api/__init__.py +17 -0
- airflow/providers/edge3/worker_api/app.py +43 -0
- airflow/providers/edge3/worker_api/auth.py +135 -0
- airflow/providers/edge3/worker_api/datamodels.py +190 -0
- airflow/providers/edge3/worker_api/routes/__init__.py +16 -0
- airflow/providers/edge3/worker_api/routes/_v2_compat.py +135 -0
- airflow/providers/edge3/worker_api/routes/_v2_routes.py +237 -0
- airflow/providers/edge3/worker_api/routes/health.py +28 -0
- airflow/providers/edge3/worker_api/routes/jobs.py +162 -0
- airflow/providers/edge3/worker_api/routes/logs.py +133 -0
- airflow/providers/edge3/worker_api/routes/worker.py +224 -0
- apache_airflow_providers_edge3-1.0.0rc1.dist-info/METADATA +117 -0
- apache_airflow_providers_edge3-1.0.0rc1.dist-info/RECORD +39 -0
- apache_airflow_providers_edge3-1.0.0rc1.dist-info/WHEEL +4 -0
- apache_airflow_providers_edge3-1.0.0rc1.dist-info/entry_points.txt +6 -0
@@ -0,0 +1,808 @@
|
|
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
|
+
---
|
19
|
+
openapi: 3.0.2
|
20
|
+
info:
|
21
|
+
title: Airflow Edge Worker API
|
22
|
+
version: 1.0.0
|
23
|
+
description: |
|
24
|
+
This is Airflow Edge Worker API - which is a the access endpoint for workers
|
25
|
+
running on remote sites serving for Apache Airflow jobs. It also proxies internal API
|
26
|
+
to edge endpoints.
|
27
|
+
|
28
|
+
It is not intended to be used by any external code.
|
29
|
+
|
30
|
+
You can find more information in AIP-69
|
31
|
+
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=301795932
|
32
|
+
|
33
|
+
|
34
|
+
servers:
|
35
|
+
- url: /edge_worker/v1
|
36
|
+
description: Airflow Edge Worker API
|
37
|
+
paths:
|
38
|
+
/worker/{worker_name}:
|
39
|
+
patch:
|
40
|
+
description: Set state of worker and returns the current assigned queues.
|
41
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
42
|
+
operationId: set_state_v2
|
43
|
+
parameters:
|
44
|
+
- description: Hostname or instance name of the worker
|
45
|
+
in: path
|
46
|
+
name: worker_name
|
47
|
+
required: true
|
48
|
+
schema:
|
49
|
+
description: Hostname or instance name of the worker
|
50
|
+
title: Worker Name
|
51
|
+
type: string
|
52
|
+
- description: JWT Authorization Token
|
53
|
+
in: header
|
54
|
+
name: authorization
|
55
|
+
required: true
|
56
|
+
schema:
|
57
|
+
description: JWT Authorization Token
|
58
|
+
title: Authorization
|
59
|
+
type: string
|
60
|
+
requestBody:
|
61
|
+
content:
|
62
|
+
application/json:
|
63
|
+
schema:
|
64
|
+
$ref: '#/components/schemas/WorkerStateBody'
|
65
|
+
description: State of the worker with details
|
66
|
+
examples:
|
67
|
+
- jobs_active: 3
|
68
|
+
queues:
|
69
|
+
- large_node
|
70
|
+
- wisconsin_site
|
71
|
+
state: running
|
72
|
+
sysinfo:
|
73
|
+
airflow_version: 2.10.0
|
74
|
+
concurrency: 4
|
75
|
+
edge_provider_version: 1.0.0
|
76
|
+
title: Worker State
|
77
|
+
required: true
|
78
|
+
responses:
|
79
|
+
'200':
|
80
|
+
content:
|
81
|
+
application/json:
|
82
|
+
schema:
|
83
|
+
$ref: '#/components/schemas/WorkerSetStateReturn'
|
84
|
+
description: Successful Response
|
85
|
+
'400':
|
86
|
+
content:
|
87
|
+
application/json:
|
88
|
+
schema:
|
89
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
90
|
+
description: Bad Request
|
91
|
+
'403':
|
92
|
+
content:
|
93
|
+
application/json:
|
94
|
+
schema:
|
95
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
96
|
+
description: Forbidden
|
97
|
+
'422':
|
98
|
+
content:
|
99
|
+
application/json:
|
100
|
+
schema:
|
101
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
102
|
+
description: Validation Error
|
103
|
+
summary: Set State
|
104
|
+
tags:
|
105
|
+
- Worker
|
106
|
+
post:
|
107
|
+
description: Register a new worker to the backend.
|
108
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
109
|
+
operationId: register_v2
|
110
|
+
parameters:
|
111
|
+
- description: Hostname or instance name of the worker
|
112
|
+
in: path
|
113
|
+
name: worker_name
|
114
|
+
required: true
|
115
|
+
schema:
|
116
|
+
description: Hostname or instance name of the worker
|
117
|
+
title: Worker Name
|
118
|
+
type: string
|
119
|
+
- description: JWT Authorization Token
|
120
|
+
in: header
|
121
|
+
name: authorization
|
122
|
+
required: true
|
123
|
+
schema:
|
124
|
+
description: JWT Authorization Token
|
125
|
+
title: Authorization
|
126
|
+
type: string
|
127
|
+
requestBody:
|
128
|
+
content:
|
129
|
+
application/json:
|
130
|
+
schema:
|
131
|
+
$ref: '#/components/schemas/WorkerStateBody'
|
132
|
+
description: State of the worker with details
|
133
|
+
examples:
|
134
|
+
- jobs_active: 3
|
135
|
+
queues:
|
136
|
+
- large_node
|
137
|
+
- wisconsin_site
|
138
|
+
state: running
|
139
|
+
sysinfo:
|
140
|
+
airflow_version: 2.10.0
|
141
|
+
concurrency: 4
|
142
|
+
edge_provider_version: 1.0.0
|
143
|
+
title: Worker State
|
144
|
+
required: true
|
145
|
+
responses:
|
146
|
+
'200':
|
147
|
+
content:
|
148
|
+
application/json:
|
149
|
+
schema:
|
150
|
+
$ref: "#/components/schemas/WorkerRegistrationReturn"
|
151
|
+
description: Registration response with the last update time of the worker.
|
152
|
+
examples:
|
153
|
+
- last_update: "2025-04-04T13:59:58.773870"
|
154
|
+
title: Worker Registration
|
155
|
+
description: Successful Response
|
156
|
+
'400':
|
157
|
+
content:
|
158
|
+
application/json:
|
159
|
+
schema:
|
160
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
161
|
+
description: Bad Request
|
162
|
+
'403':
|
163
|
+
content:
|
164
|
+
application/json:
|
165
|
+
schema:
|
166
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
167
|
+
description: Forbidden
|
168
|
+
'422':
|
169
|
+
content:
|
170
|
+
application/json:
|
171
|
+
schema:
|
172
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
173
|
+
description: Validation Error
|
174
|
+
summary: Register
|
175
|
+
tags:
|
176
|
+
- Worker
|
177
|
+
/jobs/fetch/{worker_name}:
|
178
|
+
post:
|
179
|
+
description: Fetch a job to execute on the edge worker.
|
180
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
181
|
+
operationId: job_fetch_v2
|
182
|
+
parameters:
|
183
|
+
- in: path
|
184
|
+
name: worker_name
|
185
|
+
required: true
|
186
|
+
schema:
|
187
|
+
title: Worker Name
|
188
|
+
type: string
|
189
|
+
- description: JWT Authorization Token
|
190
|
+
in: header
|
191
|
+
name: authorization
|
192
|
+
required: true
|
193
|
+
schema:
|
194
|
+
description: JWT Authorization Token
|
195
|
+
title: Authorization
|
196
|
+
type: string
|
197
|
+
requestBody:
|
198
|
+
content:
|
199
|
+
application/json:
|
200
|
+
schema:
|
201
|
+
$ref: '#/components/schemas/WorkerQueuesBody'
|
202
|
+
description: The worker remote has no access to log sink and with this
|
203
|
+
can send log chunks to the central site.
|
204
|
+
title: Log data chunks
|
205
|
+
required: true
|
206
|
+
responses:
|
207
|
+
'200':
|
208
|
+
content:
|
209
|
+
application/json:
|
210
|
+
schema:
|
211
|
+
anyOf:
|
212
|
+
- $ref: '#/components/schemas/EdgeJobFetched'
|
213
|
+
- type: object
|
214
|
+
nullable: true
|
215
|
+
title: Response Fetch
|
216
|
+
description: Successful Response
|
217
|
+
'400':
|
218
|
+
content:
|
219
|
+
application/json:
|
220
|
+
schema:
|
221
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
222
|
+
description: Bad Request
|
223
|
+
'403':
|
224
|
+
content:
|
225
|
+
application/json:
|
226
|
+
schema:
|
227
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
228
|
+
description: Forbidden
|
229
|
+
'422':
|
230
|
+
content:
|
231
|
+
application/json:
|
232
|
+
schema:
|
233
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
234
|
+
description: Validation Error
|
235
|
+
summary: Fetch
|
236
|
+
tags:
|
237
|
+
- Jobs
|
238
|
+
/jobs/state/{dag_id}/{task_id}/{run_id}/{try_number}/{map_index}/{state}:
|
239
|
+
patch:
|
240
|
+
description: Update the state of a job running on the edge worker.
|
241
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
242
|
+
operationId: job_state_v2
|
243
|
+
parameters:
|
244
|
+
- description: Identifier of the DAG to which the task belongs.
|
245
|
+
in: path
|
246
|
+
name: dag_id
|
247
|
+
required: true
|
248
|
+
schema:
|
249
|
+
description: Identifier of the DAG to which the task belongs.
|
250
|
+
title: Dag ID
|
251
|
+
type: string
|
252
|
+
- description: Task name in the DAG.
|
253
|
+
in: path
|
254
|
+
name: task_id
|
255
|
+
required: true
|
256
|
+
schema:
|
257
|
+
description: Task name in the DAG.
|
258
|
+
title: Task ID
|
259
|
+
type: string
|
260
|
+
- description: Run ID of the DAG execution.
|
261
|
+
in: path
|
262
|
+
name: run_id
|
263
|
+
required: true
|
264
|
+
schema:
|
265
|
+
description: Run ID of the DAG execution.
|
266
|
+
title: Run ID
|
267
|
+
type: string
|
268
|
+
- description: The number of attempt to execute this task.
|
269
|
+
in: path
|
270
|
+
name: try_number
|
271
|
+
required: true
|
272
|
+
schema:
|
273
|
+
description: The number of attempt to execute this task.
|
274
|
+
title: Try Number
|
275
|
+
type: integer
|
276
|
+
- description: For dynamically mapped tasks the mapping number, -1 if the task
|
277
|
+
is not mapped.
|
278
|
+
in: path
|
279
|
+
name: map_index
|
280
|
+
required: true
|
281
|
+
schema:
|
282
|
+
description: For dynamically mapped tasks the mapping number, -1 if the
|
283
|
+
task is not mapped.
|
284
|
+
title: Map Index
|
285
|
+
type: string # This should be integer, but Connexion/Flask do not support negative integers in path parameters
|
286
|
+
- description: State of the assigned task under execution.
|
287
|
+
in: path
|
288
|
+
name: state
|
289
|
+
required: true
|
290
|
+
schema:
|
291
|
+
$ref: '#/components/schemas/TaskInstanceState'
|
292
|
+
description: State of the assigned task under execution.
|
293
|
+
title: Task State
|
294
|
+
- description: JWT Authorization Token
|
295
|
+
in: header
|
296
|
+
name: authorization
|
297
|
+
required: true
|
298
|
+
schema:
|
299
|
+
description: JWT Authorization Token
|
300
|
+
title: Authorization
|
301
|
+
type: string
|
302
|
+
responses:
|
303
|
+
'200':
|
304
|
+
content:
|
305
|
+
application/json:
|
306
|
+
schema:
|
307
|
+
title: Response State
|
308
|
+
type: object
|
309
|
+
nullable: true
|
310
|
+
description: Successful Response
|
311
|
+
'400':
|
312
|
+
content:
|
313
|
+
application/json:
|
314
|
+
schema:
|
315
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
316
|
+
description: Bad Request
|
317
|
+
'403':
|
318
|
+
content:
|
319
|
+
application/json:
|
320
|
+
schema:
|
321
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
322
|
+
description: Forbidden
|
323
|
+
'422':
|
324
|
+
content:
|
325
|
+
application/json:
|
326
|
+
schema:
|
327
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
328
|
+
description: Validation Error
|
329
|
+
summary: State
|
330
|
+
tags:
|
331
|
+
- Jobs
|
332
|
+
/logs/logfile_path/{dag_id}/{task_id}/{run_id}/{try_number}/{map_index}:
|
333
|
+
get:
|
334
|
+
description: Elaborate the path and filename to expect from task execution.
|
335
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
336
|
+
operationId: logfile_path_v2
|
337
|
+
parameters:
|
338
|
+
- description: Identifier of the DAG to which the task belongs.
|
339
|
+
in: path
|
340
|
+
name: dag_id
|
341
|
+
required: true
|
342
|
+
schema:
|
343
|
+
description: Identifier of the DAG to which the task belongs.
|
344
|
+
title: Dag ID
|
345
|
+
type: string
|
346
|
+
- description: Task name in the DAG.
|
347
|
+
in: path
|
348
|
+
name: task_id
|
349
|
+
required: true
|
350
|
+
schema:
|
351
|
+
description: Task name in the DAG.
|
352
|
+
title: Task ID
|
353
|
+
type: string
|
354
|
+
- description: Run ID of the DAG execution.
|
355
|
+
in: path
|
356
|
+
name: run_id
|
357
|
+
required: true
|
358
|
+
schema:
|
359
|
+
description: Run ID of the DAG execution.
|
360
|
+
title: Run ID
|
361
|
+
type: string
|
362
|
+
- description: The number of attempt to execute this task.
|
363
|
+
in: path
|
364
|
+
name: try_number
|
365
|
+
required: true
|
366
|
+
schema:
|
367
|
+
description: The number of attempt to execute this task.
|
368
|
+
title: Try Number
|
369
|
+
type: integer
|
370
|
+
- description: For dynamically mapped tasks the mapping number, -1 if the task
|
371
|
+
is not mapped.
|
372
|
+
in: path
|
373
|
+
name: map_index
|
374
|
+
required: true
|
375
|
+
schema:
|
376
|
+
description: For dynamically mapped tasks the mapping number, -1 if the
|
377
|
+
task is not mapped.
|
378
|
+
title: Map Index
|
379
|
+
type: string # This should be integer, but Connexion/Flask do not support negative integers in path parameters
|
380
|
+
- description: JWT Authorization Token
|
381
|
+
in: header
|
382
|
+
name: authorization
|
383
|
+
required: true
|
384
|
+
schema:
|
385
|
+
description: JWT Authorization Token
|
386
|
+
title: Authorization
|
387
|
+
type: string
|
388
|
+
responses:
|
389
|
+
'200':
|
390
|
+
content:
|
391
|
+
application/json:
|
392
|
+
schema:
|
393
|
+
title: Response Logfile Path
|
394
|
+
type: string
|
395
|
+
description: Successful Response
|
396
|
+
'400':
|
397
|
+
content:
|
398
|
+
application/json:
|
399
|
+
schema:
|
400
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
401
|
+
description: Bad Request
|
402
|
+
'403':
|
403
|
+
content:
|
404
|
+
application/json:
|
405
|
+
schema:
|
406
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
407
|
+
description: Forbidden
|
408
|
+
'422':
|
409
|
+
content:
|
410
|
+
application/json:
|
411
|
+
schema:
|
412
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
413
|
+
description: Validation Error
|
414
|
+
summary: Logfile Path
|
415
|
+
tags:
|
416
|
+
- Logs
|
417
|
+
/logs/push/{dag_id}/{task_id}/{run_id}/{try_number}/{map_index}:
|
418
|
+
post:
|
419
|
+
description: Push an incremental log chunk from Edge Worker to central site.
|
420
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
421
|
+
operationId: push_logs_v2
|
422
|
+
parameters:
|
423
|
+
- description: Identifier of the DAG to which the task belongs.
|
424
|
+
in: path
|
425
|
+
name: dag_id
|
426
|
+
required: true
|
427
|
+
schema:
|
428
|
+
description: Identifier of the DAG to which the task belongs.
|
429
|
+
title: Dag ID
|
430
|
+
type: string
|
431
|
+
- description: Task name in the DAG.
|
432
|
+
in: path
|
433
|
+
name: task_id
|
434
|
+
required: true
|
435
|
+
schema:
|
436
|
+
description: Task name in the DAG.
|
437
|
+
title: Task ID
|
438
|
+
type: string
|
439
|
+
- description: Run ID of the DAG execution.
|
440
|
+
in: path
|
441
|
+
name: run_id
|
442
|
+
required: true
|
443
|
+
schema:
|
444
|
+
description: Run ID of the DAG execution.
|
445
|
+
title: Run ID
|
446
|
+
type: string
|
447
|
+
- description: The number of attempt to execute this task.
|
448
|
+
in: path
|
449
|
+
name: try_number
|
450
|
+
required: true
|
451
|
+
schema:
|
452
|
+
description: The number of attempt to execute this task.
|
453
|
+
title: Try Number
|
454
|
+
type: integer
|
455
|
+
- description: For dynamically mapped tasks the mapping number, -1 if the task
|
456
|
+
is not mapped.
|
457
|
+
in: path
|
458
|
+
name: map_index
|
459
|
+
required: true
|
460
|
+
schema:
|
461
|
+
description: For dynamically mapped tasks the mapping number, -1 if the
|
462
|
+
task is not mapped.
|
463
|
+
title: Map Index
|
464
|
+
type: string # This should be integer, but Connexion/Flask do not support negative integers in path parameters
|
465
|
+
- description: JWT Authorization Token
|
466
|
+
in: header
|
467
|
+
name: authorization
|
468
|
+
required: true
|
469
|
+
schema:
|
470
|
+
description: JWT Authorization Token
|
471
|
+
title: Authorization
|
472
|
+
type: string
|
473
|
+
requestBody:
|
474
|
+
content:
|
475
|
+
application/json:
|
476
|
+
schema:
|
477
|
+
$ref: '#/components/schemas/PushLogsBody'
|
478
|
+
description: The worker remote has no access to log sink and with this
|
479
|
+
can send log chunks to the central site.
|
480
|
+
title: Log data chunks
|
481
|
+
required: true
|
482
|
+
responses:
|
483
|
+
'200':
|
484
|
+
content:
|
485
|
+
application/json:
|
486
|
+
schema:
|
487
|
+
title: Response Push Logs
|
488
|
+
type: object
|
489
|
+
nullable: true
|
490
|
+
description: Successful Response
|
491
|
+
'400':
|
492
|
+
content:
|
493
|
+
application/json:
|
494
|
+
schema:
|
495
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
496
|
+
description: Bad Request
|
497
|
+
'403':
|
498
|
+
content:
|
499
|
+
application/json:
|
500
|
+
schema:
|
501
|
+
$ref: '#/components/schemas/HTTPExceptionResponse'
|
502
|
+
description: Forbidden
|
503
|
+
'422':
|
504
|
+
content:
|
505
|
+
application/json:
|
506
|
+
schema:
|
507
|
+
$ref: '#/components/schemas/HTTPValidationError'
|
508
|
+
description: Validation Error
|
509
|
+
summary: Push Logs
|
510
|
+
tags:
|
511
|
+
- Logs
|
512
|
+
/rpcapi:
|
513
|
+
post:
|
514
|
+
deprecated: false
|
515
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes._v2_routes
|
516
|
+
operationId: rpcapi_v2
|
517
|
+
tags:
|
518
|
+
- JSONRPC
|
519
|
+
parameters: []
|
520
|
+
responses:
|
521
|
+
'200':
|
522
|
+
description: Successful response
|
523
|
+
requestBody:
|
524
|
+
x-body-name: body
|
525
|
+
required: true
|
526
|
+
content:
|
527
|
+
application/json:
|
528
|
+
schema:
|
529
|
+
type: object
|
530
|
+
required:
|
531
|
+
- method
|
532
|
+
- jsonrpc
|
533
|
+
- params
|
534
|
+
properties:
|
535
|
+
jsonrpc:
|
536
|
+
type: string
|
537
|
+
default: '2.0'
|
538
|
+
description: JSON-RPC Version (2.0)
|
539
|
+
method:
|
540
|
+
type: string
|
541
|
+
description: Method name
|
542
|
+
params:
|
543
|
+
title: Parameters
|
544
|
+
type: object
|
545
|
+
/health:
|
546
|
+
get:
|
547
|
+
operationId: health
|
548
|
+
deprecated: false
|
549
|
+
x-openapi-router-controller: airflow.providers.edge3.worker_api.routes.health
|
550
|
+
tags:
|
551
|
+
- JSONRPC
|
552
|
+
parameters: []
|
553
|
+
responses:
|
554
|
+
'200':
|
555
|
+
description: Successful response
|
556
|
+
x-headers: []
|
557
|
+
x-explorer-enabled: true
|
558
|
+
x-proxy-enabled: true
|
559
|
+
components:
|
560
|
+
schemas:
|
561
|
+
JsonRpcRequired:
|
562
|
+
type: object
|
563
|
+
required:
|
564
|
+
- method
|
565
|
+
- jsonrpc
|
566
|
+
properties:
|
567
|
+
method:
|
568
|
+
type: string
|
569
|
+
description: Method name
|
570
|
+
jsonrpc:
|
571
|
+
type: string
|
572
|
+
default: '2.0'
|
573
|
+
description: JSON-RPC Version (2.0)
|
574
|
+
discriminator:
|
575
|
+
propertyName: method_name
|
576
|
+
EdgeWorkerState:
|
577
|
+
description: Status of a Edge Worker instance.
|
578
|
+
enum:
|
579
|
+
- starting
|
580
|
+
- running
|
581
|
+
- idle
|
582
|
+
- terminating
|
583
|
+
- offline
|
584
|
+
- unknown
|
585
|
+
- maintenance mode
|
586
|
+
- maintenance request
|
587
|
+
- maintenance pending
|
588
|
+
- maintenance exit
|
589
|
+
- offline maintenance
|
590
|
+
title: EdgeWorkerState
|
591
|
+
type: string
|
592
|
+
WorkerStateBody:
|
593
|
+
description: Details of the worker state sent to the scheduler.
|
594
|
+
type: object
|
595
|
+
required:
|
596
|
+
- state
|
597
|
+
- queues
|
598
|
+
- sysinfo
|
599
|
+
properties:
|
600
|
+
jobs_active:
|
601
|
+
default: 0
|
602
|
+
description: Number of active jobs the worker is running.
|
603
|
+
title: Jobs Active
|
604
|
+
type: integer
|
605
|
+
queues:
|
606
|
+
anyOf:
|
607
|
+
- items:
|
608
|
+
type: string
|
609
|
+
type: array
|
610
|
+
- type: object
|
611
|
+
nullable: true
|
612
|
+
description: List of queues the worker is pulling jobs from. If not provided,
|
613
|
+
worker pulls from all queues.
|
614
|
+
title: Queues
|
615
|
+
state:
|
616
|
+
$ref: '#/components/schemas/EdgeWorkerState'
|
617
|
+
description: State of the worker from the view of the worker.
|
618
|
+
sysinfo:
|
619
|
+
description: System information of the worker.
|
620
|
+
title: Sysinfo
|
621
|
+
type: object
|
622
|
+
maintenance_comments:
|
623
|
+
description: Comments about the maintenance state of the worker.
|
624
|
+
title: Maintenance Comments
|
625
|
+
anyOf:
|
626
|
+
- type: string
|
627
|
+
- type: object
|
628
|
+
nullable: true
|
629
|
+
title: WorkerStateBody
|
630
|
+
WorkerQueuesBody:
|
631
|
+
description: Queues that a worker supports to run jobs on.
|
632
|
+
properties:
|
633
|
+
queues:
|
634
|
+
anyOf:
|
635
|
+
- items:
|
636
|
+
type: string
|
637
|
+
type: array
|
638
|
+
- type: object
|
639
|
+
nullable: true
|
640
|
+
description: List of queues the worker is pulling jobs from. If not provided,
|
641
|
+
worker pulls from all queues.
|
642
|
+
title: Queues
|
643
|
+
free_concurrency:
|
644
|
+
description: Number of free slots for running tasks.
|
645
|
+
title: Free Concurrency
|
646
|
+
type: integer
|
647
|
+
required:
|
648
|
+
- queues
|
649
|
+
- free_concurrency
|
650
|
+
title: WorkerQueuesBody
|
651
|
+
type: object
|
652
|
+
WorkerRegistrationReturn:
|
653
|
+
description: The response of the worker registration.
|
654
|
+
properties:
|
655
|
+
last_update:
|
656
|
+
description: Time of the last update of the worker.
|
657
|
+
format: date-time
|
658
|
+
title: Last Update
|
659
|
+
type: string
|
660
|
+
title: WorkerRegistrationReturn
|
661
|
+
WorkerSetStateReturn:
|
662
|
+
description: The state written in the database
|
663
|
+
properties:
|
664
|
+
queues:
|
665
|
+
anyOf:
|
666
|
+
- items:
|
667
|
+
type: string
|
668
|
+
type: array
|
669
|
+
- type: object
|
670
|
+
nullable: true
|
671
|
+
description: List of queues the worker is pulling jobs from. If not provided,
|
672
|
+
worker pulls from all queues.
|
673
|
+
title: Queues
|
674
|
+
state:
|
675
|
+
$ref: '#/components/schemas/EdgeWorkerState'
|
676
|
+
description: State of the worker from the view of the worker.
|
677
|
+
maintenance_comments:
|
678
|
+
description: Comments about the maintenance state of the worker.
|
679
|
+
title: Maintenance Comments
|
680
|
+
anyOf:
|
681
|
+
- type: string
|
682
|
+
- type: object
|
683
|
+
nullable: true
|
684
|
+
title: WorkerSetStateReturn
|
685
|
+
EdgeJobFetched:
|
686
|
+
description: Job that is to be executed on the edge worker.
|
687
|
+
properties:
|
688
|
+
command:
|
689
|
+
description: Command line to use to execute the job.
|
690
|
+
items:
|
691
|
+
type: string
|
692
|
+
title: Command
|
693
|
+
type: array
|
694
|
+
concurrency_slots:
|
695
|
+
description: Number of slots to use for the task.
|
696
|
+
title: Concurrency Slots
|
697
|
+
type: integer
|
698
|
+
dag_id:
|
699
|
+
description: Identifier of the DAG to which the task belongs.
|
700
|
+
title: Dag ID
|
701
|
+
type: string
|
702
|
+
map_index:
|
703
|
+
description: For dynamically mapped tasks the mapping number, -1 if the
|
704
|
+
task is not mapped.
|
705
|
+
title: Map Index
|
706
|
+
type: integer
|
707
|
+
run_id:
|
708
|
+
description: Run ID of the DAG execution.
|
709
|
+
title: Run ID
|
710
|
+
type: string
|
711
|
+
task_id:
|
712
|
+
description: Task name in the DAG.
|
713
|
+
title: Task ID
|
714
|
+
type: string
|
715
|
+
try_number:
|
716
|
+
description: The number of attempt to execute this task.
|
717
|
+
title: Try Number
|
718
|
+
type: integer
|
719
|
+
required:
|
720
|
+
- dag_id
|
721
|
+
- task_id
|
722
|
+
- run_id
|
723
|
+
- map_index
|
724
|
+
- try_number
|
725
|
+
- command
|
726
|
+
title: EdgeJobFetched
|
727
|
+
type: object
|
728
|
+
TaskInstanceState:
|
729
|
+
description: 'All possible states that a Task Instance can be in.
|
730
|
+
|
731
|
+
|
732
|
+
Note that None is also allowed, so always use this in a type hint with Optional.'
|
733
|
+
enum:
|
734
|
+
- removed
|
735
|
+
- scheduled
|
736
|
+
- queued
|
737
|
+
- running
|
738
|
+
- success
|
739
|
+
- restarting
|
740
|
+
- failed
|
741
|
+
- up_for_retry
|
742
|
+
- up_for_reschedule
|
743
|
+
- upstream_failed
|
744
|
+
- skipped
|
745
|
+
- deferred
|
746
|
+
title: TaskInstanceState
|
747
|
+
type: string
|
748
|
+
PushLogsBody:
|
749
|
+
description: Incremental new log content from worker.
|
750
|
+
properties:
|
751
|
+
log_chunk_data:
|
752
|
+
description: Log chunk data as incremental log text.
|
753
|
+
title: Log Chunk Data
|
754
|
+
type: string
|
755
|
+
log_chunk_time:
|
756
|
+
description: Time of the log chunk at point of sending.
|
757
|
+
format: date-time
|
758
|
+
title: Log Chunk Time
|
759
|
+
type: string
|
760
|
+
required:
|
761
|
+
- log_chunk_time
|
762
|
+
- log_chunk_data
|
763
|
+
title: PushLogsBody
|
764
|
+
type: object
|
765
|
+
HTTPExceptionResponse:
|
766
|
+
description: HTTPException Model used for error response.
|
767
|
+
properties:
|
768
|
+
detail:
|
769
|
+
anyOf:
|
770
|
+
- type: string
|
771
|
+
- type: object
|
772
|
+
title: Detail
|
773
|
+
required:
|
774
|
+
- detail
|
775
|
+
title: HTTPExceptionResponse
|
776
|
+
type: object
|
777
|
+
HTTPValidationError:
|
778
|
+
properties:
|
779
|
+
detail:
|
780
|
+
items:
|
781
|
+
$ref: '#/components/schemas/ValidationError'
|
782
|
+
title: Detail
|
783
|
+
type: array
|
784
|
+
title: HTTPValidationError
|
785
|
+
type: object
|
786
|
+
ValidationError:
|
787
|
+
properties:
|
788
|
+
loc:
|
789
|
+
items:
|
790
|
+
anyOf:
|
791
|
+
- type: string
|
792
|
+
- type: integer
|
793
|
+
title: Location
|
794
|
+
type: array
|
795
|
+
msg:
|
796
|
+
title: Message
|
797
|
+
type: string
|
798
|
+
type:
|
799
|
+
title: Error Type
|
800
|
+
type: string
|
801
|
+
required:
|
802
|
+
- loc
|
803
|
+
- msg
|
804
|
+
- type
|
805
|
+
title: ValidationError
|
806
|
+
type: object
|
807
|
+
|
808
|
+
tags: []
|