dstack 0.18.42__py3-none-any.whl → 0.18.43__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.
- dstack/_internal/cli/commands/__init__.py +2 -1
- dstack/_internal/cli/commands/apply.py +4 -2
- dstack/_internal/cli/commands/attach.py +21 -1
- dstack/_internal/cli/commands/completion.py +20 -0
- dstack/_internal/cli/commands/delete.py +3 -1
- dstack/_internal/cli/commands/fleet.py +2 -1
- dstack/_internal/cli/commands/gateway.py +7 -2
- dstack/_internal/cli/commands/logs.py +3 -2
- dstack/_internal/cli/commands/stats.py +2 -1
- dstack/_internal/cli/commands/stop.py +2 -1
- dstack/_internal/cli/commands/volume.py +2 -1
- dstack/_internal/cli/main.py +6 -0
- dstack/_internal/cli/services/completion.py +86 -0
- dstack/_internal/cli/services/configurators/run.py +10 -17
- dstack/_internal/cli/utils/fleet.py +5 -1
- dstack/_internal/core/backends/aws/compute.py +22 -10
- dstack/_internal/core/backends/aws/resources.py +3 -3
- dstack/_internal/core/backends/azure/compute.py +14 -8
- dstack/_internal/core/backends/azure/resources.py +2 -0
- dstack/_internal/core/backends/base/compute.py +102 -2
- dstack/_internal/core/backends/base/offers.py +7 -1
- dstack/_internal/core/backends/cudo/compute.py +8 -4
- dstack/_internal/core/backends/datacrunch/compute.py +10 -4
- dstack/_internal/core/backends/gcp/auth.py +19 -13
- dstack/_internal/core/backends/gcp/compute.py +25 -19
- dstack/_internal/core/backends/gcp/resources.py +3 -10
- dstack/_internal/core/backends/kubernetes/compute.py +4 -3
- dstack/_internal/core/backends/lambdalabs/compute.py +9 -3
- dstack/_internal/core/backends/nebius/compute.py +2 -2
- dstack/_internal/core/backends/oci/compute.py +10 -4
- dstack/_internal/core/backends/runpod/compute.py +11 -4
- dstack/_internal/core/backends/tensordock/compute.py +14 -3
- dstack/_internal/core/backends/vastai/compute.py +12 -2
- dstack/_internal/core/backends/vultr/api_client.py +3 -3
- dstack/_internal/core/backends/vultr/compute.py +9 -3
- dstack/_internal/core/models/backends/aws.py +2 -0
- dstack/_internal/core/models/backends/base.py +1 -0
- dstack/_internal/core/models/configurations.py +0 -1
- dstack/_internal/core/services/__init__.py +5 -1
- dstack/_internal/core/services/configs/__init__.py +3 -0
- dstack/_internal/server/background/tasks/common.py +22 -0
- dstack/_internal/server/background/tasks/process_instances.py +11 -18
- dstack/_internal/server/background/tasks/process_running_jobs.py +9 -16
- dstack/_internal/server/background/tasks/process_terminating_jobs.py +1 -7
- dstack/_internal/server/routers/logs.py +3 -0
- dstack/_internal/server/services/backends/configurators/aws.py +31 -1
- dstack/_internal/server/services/backends/configurators/gcp.py +8 -15
- dstack/_internal/server/services/config.py +11 -1
- dstack/_internal/server/services/jobs/__init__.py +12 -9
- dstack/_internal/server/services/jobs/configurators/dev.py +1 -3
- dstack/_internal/server/services/jobs/configurators/task.py +1 -3
- dstack/_internal/server/services/logs/__init__.py +78 -0
- dstack/_internal/server/services/{logs.py → logs/aws.py} +12 -207
- dstack/_internal/server/services/logs/base.py +47 -0
- dstack/_internal/server/services/logs/filelog.py +110 -0
- dstack/_internal/server/services/logs/gcp.py +165 -0
- dstack/_internal/server/services/pools.py +16 -17
- dstack/_internal/server/services/proxy/routers/service_proxy.py +14 -7
- dstack/_internal/server/settings.py +3 -0
- dstack/_internal/server/statics/index.html +1 -1
- dstack/_internal/server/statics/{main-ad5150a441de98cd8987.css → main-7510e71dfa9749a4e70e.css} +1 -1
- dstack/_internal/server/statics/{main-2ac66bfcbd2e39830b88.js → main-fe8fd9db55df8d10e648.js} +66 -66
- dstack/_internal/server/statics/{main-2ac66bfcbd2e39830b88.js.map → main-fe8fd9db55df8d10e648.js.map} +1 -1
- dstack/_internal/server/testing/common.py +33 -8
- dstack/api/_public/runs.py +1 -1
- dstack/version.py +2 -2
- {dstack-0.18.42.dist-info → dstack-0.18.43.dist-info}/METADATA +4 -3
- {dstack-0.18.42.dist-info → dstack-0.18.43.dist-info}/RECORD +80 -71
- tests/_internal/core/backends/base/__init__.py +0 -0
- tests/_internal/core/backends/base/test_compute.py +56 -0
- tests/_internal/server/background/tasks/test_process_running_jobs.py +1 -1
- tests/_internal/server/conftest.py +4 -5
- tests/_internal/server/routers/test_backends.py +1 -0
- tests/_internal/server/routers/test_logs.py +1 -1
- tests/_internal/server/routers/test_runs.py +2 -2
- tests/_internal/server/services/test_logs.py +3 -3
- {dstack-0.18.42.dist-info → dstack-0.18.43.dist-info}/LICENSE.md +0 -0
- {dstack-0.18.42.dist-info → dstack-0.18.43.dist-info}/WHEEL +0 -0
- {dstack-0.18.42.dist-info → dstack-0.18.43.dist-info}/entry_points.txt +0 -0
- {dstack-0.18.42.dist-info → dstack-0.18.43.dist-info}/top_level.txt +0 -0
|
@@ -16,7 +16,7 @@ from dstack._internal.core.models.configurations import (
|
|
|
16
16
|
)
|
|
17
17
|
from dstack._internal.core.models.envs import Env
|
|
18
18
|
from dstack._internal.core.models.fleets import FleetConfiguration, FleetSpec, FleetStatus
|
|
19
|
-
from dstack._internal.core.models.gateways import GatewayStatus
|
|
19
|
+
from dstack._internal.core.models.gateways import GatewayComputeConfiguration, GatewayStatus
|
|
20
20
|
from dstack._internal.core.models.instances import (
|
|
21
21
|
Disk,
|
|
22
22
|
Gpu,
|
|
@@ -420,6 +420,24 @@ async def create_gateway_compute(
|
|
|
420
420
|
return gateway_compute
|
|
421
421
|
|
|
422
422
|
|
|
423
|
+
def get_gateway_compute_configuration(
|
|
424
|
+
project_name: str = "test-project",
|
|
425
|
+
instance_name: str = "test-instance",
|
|
426
|
+
backend: BackendType = BackendType.AWS,
|
|
427
|
+
region: str = "us",
|
|
428
|
+
public_ip: bool = True,
|
|
429
|
+
) -> GatewayComputeConfiguration:
|
|
430
|
+
return GatewayComputeConfiguration(
|
|
431
|
+
project_name=project_name,
|
|
432
|
+
instance_name=instance_name,
|
|
433
|
+
backend=backend,
|
|
434
|
+
region=region,
|
|
435
|
+
public_ip=public_ip,
|
|
436
|
+
ssh_key_pub="",
|
|
437
|
+
certificate=None,
|
|
438
|
+
)
|
|
439
|
+
|
|
440
|
+
|
|
423
441
|
async def create_pool(
|
|
424
442
|
session: AsyncSession,
|
|
425
443
|
project: ProjectModel,
|
|
@@ -533,13 +551,7 @@ async def create_instance(
|
|
|
533
551
|
requirements = Requirements(resources=ResourcesSpec(cpu=1))
|
|
534
552
|
|
|
535
553
|
if instance_configuration is None:
|
|
536
|
-
instance_configuration =
|
|
537
|
-
project_name="test_proj",
|
|
538
|
-
instance_name="test_instance_name",
|
|
539
|
-
instance_id="test instance id",
|
|
540
|
-
ssh_keys=[],
|
|
541
|
-
user="test_user",
|
|
542
|
-
)
|
|
554
|
+
instance_configuration = get_instance_configuration()
|
|
543
555
|
|
|
544
556
|
if volumes is None:
|
|
545
557
|
volumes = []
|
|
@@ -581,6 +593,19 @@ async def create_instance(
|
|
|
581
593
|
return im
|
|
582
594
|
|
|
583
595
|
|
|
596
|
+
def get_instance_configuration(
|
|
597
|
+
project_name: str = "test-project",
|
|
598
|
+
instance_name: str = "test-instance",
|
|
599
|
+
user: str = "dstack-user",
|
|
600
|
+
) -> InstanceConfiguration:
|
|
601
|
+
return InstanceConfiguration(
|
|
602
|
+
project_name=project_name,
|
|
603
|
+
instance_name=instance_name,
|
|
604
|
+
user=user,
|
|
605
|
+
ssh_keys=[],
|
|
606
|
+
)
|
|
607
|
+
|
|
608
|
+
|
|
584
609
|
def get_instance_offer_with_availability(
|
|
585
610
|
backend: BackendType = BackendType.AWS,
|
|
586
611
|
region: str = "eu-west",
|
dstack/api/_public/runs.py
CHANGED
dstack/version.py
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
__version__ = "0.18.
|
|
1
|
+
__version__ = "0.18.43"
|
|
2
2
|
__is_release__ = True
|
|
3
|
-
base_image = "0.
|
|
3
|
+
base_image = "0.7"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dstack
|
|
3
|
-
Version: 0.18.
|
|
3
|
+
Version: 0.18.43
|
|
4
4
|
Summary: dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.
|
|
5
5
|
Home-page: https://dstack.ai
|
|
6
6
|
Author: Andrey Cheptsov
|
|
@@ -37,7 +37,8 @@ Requires-Dist: websocket-client
|
|
|
37
37
|
Requires-Dist: python-multipart>=0.0.16
|
|
38
38
|
Requires-Dist: filelock
|
|
39
39
|
Requires-Dist: psutil
|
|
40
|
-
Requires-Dist: gpuhunt<0.
|
|
40
|
+
Requires-Dist: gpuhunt<0.2.0,>=0.1.0
|
|
41
|
+
Requires-Dist: argcomplete>=3.5.0
|
|
41
42
|
Provides-Extra: all
|
|
42
43
|
Requires-Dist: fastapi; extra == "all"
|
|
43
44
|
Requires-Dist: starlette>=0.26.0; extra == "all"
|
|
@@ -307,9 +308,9 @@ for AI workloads both in the cloud and on-prem, speeding up the development, tra
|
|
|
307
308
|
|
|
308
309
|
## Major news ✨
|
|
309
310
|
|
|
311
|
+
- [2025/02] [dstack 0.18.41: GPU blocks, Proxy jump, inactivity duration, and more](https://github.com/dstackai/dstack/releases/tag/0.18.41)
|
|
310
312
|
- [2025/01] [dstack 0.18.38: Intel Gaudi](https://github.com/dstackai/dstack/releases/tag/0.18.38)
|
|
311
313
|
- [2025/01] [dstack 0.18.35: Vultr](https://github.com/dstackai/dstack/releases/tag/0.18.35)
|
|
312
|
-
- [2024/12] [dstack 0.18.32: TPU v6e](https://github.com/dstackai/dstack/releases/tag/0.18.32)
|
|
313
314
|
- [2024/12] [dstack 0.18.30: AWS Capacity Reservations and Capacity Blocks](https://github.com/dstackai/dstack/releases/tag/0.18.30)
|
|
314
315
|
- [2024/10] [dstack 0.18.21: Instance volumes](https://github.com/dstackai/dstack/releases/tag/0.18.21)
|
|
315
316
|
- [2024/10] [dstack 0.18.18: Hardware metrics monitoring](https://github.com/dstackai/dstack/releases/tag/0.18.18)
|
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
dstack/version.py,sha256=
|
|
2
|
+
dstack/version.py,sha256=d3JTxTwIqwsUKYkzkrgMvw4t7I2HgxbJ2Bl3oR5u-g4,65
|
|
3
3
|
dstack/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
dstack/_internal/compat.py,sha256=bF9U9fTMfL8UVhCouedoUSTYFl7UAOiU0WXrnRoByxw,40
|
|
5
5
|
dstack/_internal/settings.py,sha256=8XODoSW2joaEndvZxuHUPSFK85sGgJ7fVL976isYeJM,557
|
|
6
6
|
dstack/_internal/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
dstack/_internal/cli/main.py,sha256=
|
|
8
|
-
dstack/_internal/cli/commands/__init__.py,sha256=
|
|
9
|
-
dstack/_internal/cli/commands/apply.py,sha256=
|
|
10
|
-
dstack/_internal/cli/commands/attach.py,sha256=
|
|
7
|
+
dstack/_internal/cli/main.py,sha256=RBGA0CvpRTS2seJPwYBQN_HIqEqSCF8iYoUMjDub57g,3676
|
|
8
|
+
dstack/_internal/cli/commands/__init__.py,sha256=e8EjD8Ej7Q3_APlxAN7NBwY7dGnW-DR91nH_RgcjBXg,2023
|
|
9
|
+
dstack/_internal/cli/commands/apply.py,sha256=dZH2B3Yr-lB7hs-QeUnvX0FV0Yk2x19dEO5uSFo4098,4909
|
|
10
|
+
dstack/_internal/cli/commands/attach.py,sha256=resmqoqkIOptp9Vn4BMs8m42Txl4mPzFDhHcv_lkWJk,5033
|
|
11
|
+
dstack/_internal/cli/commands/completion.py,sha256=2gDBYNb9u1JtuvZaAzqEOy0_ZatBvwn0Aq10j138xnA,546
|
|
11
12
|
dstack/_internal/cli/commands/config.py,sha256=wc4haqU2-a65DcHdIH0gLyz3ViZ05dR7RXTlPm92G9g,3113
|
|
12
|
-
dstack/_internal/cli/commands/delete.py,sha256=
|
|
13
|
-
dstack/_internal/cli/commands/fleet.py,sha256=
|
|
14
|
-
dstack/_internal/cli/commands/gateway.py,sha256=
|
|
13
|
+
dstack/_internal/cli/commands/delete.py,sha256=agFBwJg8JXy1xp1UplRFLEPbix1bKvt6XvSBKpSPwYI,1418
|
|
14
|
+
dstack/_internal/cli/commands/fleet.py,sha256=J0Yi5CAYvIQF_NC4ZBsDYGc3grTOtvaF7sVcobd19Go,4028
|
|
15
|
+
dstack/_internal/cli/commands/gateway.py,sha256=PYVP3ngxKZ7hIvjUF3HcphMjXQRj84ePQs6gVrDjkgU,5567
|
|
15
16
|
dstack/_internal/cli/commands/init.py,sha256=bLhSlViNWtjflB6xNq_PuCR2o2A06h222luh1NeUgVA,1169
|
|
16
|
-
dstack/_internal/cli/commands/logs.py,sha256=
|
|
17
|
+
dstack/_internal/cli/commands/logs.py,sha256=ytWsxo_MGlAxsuNOd-yXsFzRDbnye_gtMcFfVdP2F4c,2349
|
|
17
18
|
dstack/_internal/cli/commands/pool.py,sha256=XjTkW8cMQR20KoUrPuiQI246IMv8qTJD7-_Siuzgu0U,20656
|
|
18
19
|
dstack/_internal/cli/commands/ps.py,sha256=WUQKL-1HcoM-oFF_WX4zplO8yKGMWfVbsivg0L7LP2w,1666
|
|
19
20
|
dstack/_internal/cli/commands/run.py,sha256=hDItdHKXvVGQPqXKN-OQJ0HKupgmocqP3DNPl-yCamE,2690
|
|
20
21
|
dstack/_internal/cli/commands/server.py,sha256=dCEdmVp1OlwFnSGw9k8mBb26wZy1D_ctgn5pmK8ZrCQ,2802
|
|
21
|
-
dstack/_internal/cli/commands/stats.py,sha256=
|
|
22
|
-
dstack/_internal/cli/commands/stop.py,sha256=
|
|
23
|
-
dstack/_internal/cli/commands/volume.py,sha256=
|
|
22
|
+
dstack/_internal/cli/commands/stats.py,sha256=KKSYfUmTL8d8_29Fajue_sa8KX_ifE_vx98CCNjttSo,5376
|
|
23
|
+
dstack/_internal/cli/commands/stop.py,sha256=i7TreejSemrQcL7C37La22KkwM98O09IDMRNt8cw1NI,1000
|
|
24
|
+
dstack/_internal/cli/commands/volume.py,sha256=h0bQQm6zx1Bq0kdBX5ksqPZk55wz-md_Kitm0RTDReg,3214
|
|
24
25
|
dstack/_internal/cli/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
26
|
dstack/_internal/cli/services/args.py,sha256=Rnqq4M979bNACwWehgGKF2j30x01Efs-dDP-bjyTroE,782
|
|
27
|
+
dstack/_internal/cli/services/completion.py,sha256=HvWHdZhXQWX1FyHf1OtQJxeuIXMXBKcoa5UjNRr0AN0,2984
|
|
26
28
|
dstack/_internal/cli/services/profile.py,sha256=Fl052TeMCbWO1Q6HiaPVD9CdfClzZAkknkCd2pYXpdM,7716
|
|
27
29
|
dstack/_internal/cli/services/repos.py,sha256=ImJuElGjsR4OQ7dBquy4PCQUbBM4bR4vhyLwMrVBS7k,3307
|
|
28
30
|
dstack/_internal/cli/services/configurators/__init__.py,sha256=z94VPBFqybP8Zpwy3CzYxmpPAqYBOvRRLpXoz2H4GKI,2697
|
|
29
31
|
dstack/_internal/cli/services/configurators/base.py,sha256=DxVuF9pDqghq9mFCcTDG1CxO06IAAwvzlc9nHflCipc,3443
|
|
30
32
|
dstack/_internal/cli/services/configurators/fleet.py,sha256=bKnWXhr7r8GndxedNdG_TWvwcxV4gab_LFt4s3Q17D0,14822
|
|
31
33
|
dstack/_internal/cli/services/configurators/gateway.py,sha256=czB2s89s7IowOmWnpDwWErPAUlW3FvFMizImhrkQiBM,8927
|
|
32
|
-
dstack/_internal/cli/services/configurators/run.py,sha256=
|
|
34
|
+
dstack/_internal/cli/services/configurators/run.py,sha256=kRbT-yczl8h4rjCjiWMd2bB44x7iBWqDC1qKCOPi2HU,23072
|
|
33
35
|
dstack/_internal/cli/services/configurators/volume.py,sha256=riMXLQbgvHIIFwLKdHfad-_0iE9wE3G_rUmXU5P3ZS8,8519
|
|
34
36
|
dstack/_internal/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
37
|
dstack/_internal/cli/utils/common.py,sha256=rfmzqrsgR3rXW3wj0vxDdvrhUUg2aIy4A6E9MZbd55g,1763
|
|
36
|
-
dstack/_internal/cli/utils/fleet.py,sha256=
|
|
38
|
+
dstack/_internal/cli/utils/fleet.py,sha256=NpqTdcMVcuUGke9drroxDoNnmifbKV7iziqdGPLc3lk,3885
|
|
37
39
|
dstack/_internal/cli/utils/gateway.py,sha256=jMytH6u3x8hctMhm9bcmXLJxSgTXmpW8M9abATQrw3c,1474
|
|
38
40
|
dstack/_internal/cli/utils/rich.py,sha256=Gx1MJU929kMKsbdo9qF7XHARNta2426Ssb-xMLVhwbQ,5710
|
|
39
41
|
dstack/_internal/cli/utils/run.py,sha256=4NDhlcdE4bccQ4gWzhZ2EP8tHryZt4eI3BBho425VOA,7737
|
|
@@ -45,50 +47,50 @@ dstack/_internal/core/errors.py,sha256=UvqMIBVHG1NIUP0w0g5dWjnxOz37sfFi4lh4yuYK0
|
|
|
45
47
|
dstack/_internal/core/backends/__init__.py,sha256=P7uX9QYj-aWSHOub1vIwr-MVERVCwTi8pcG4MQVuEYw,958
|
|
46
48
|
dstack/_internal/core/backends/aws/__init__.py,sha256=gGXM9op3UJ3-OGDjNr4ywa_fNf--oywRbrOGUH2tTDA,850
|
|
47
49
|
dstack/_internal/core/backends/aws/auth.py,sha256=lRBwNUdEWMWlblDnFSGlIcNkZMY2tSjapdq1OjwollU,1253
|
|
48
|
-
dstack/_internal/core/backends/aws/compute.py,sha256=
|
|
50
|
+
dstack/_internal/core/backends/aws/compute.py,sha256=PIxXZEzUQoLqIiplPkDyP5pWUgTPXz8XVe5Bg9Ge3hQ,35945
|
|
49
51
|
dstack/_internal/core/backends/aws/config.py,sha256=bd4juOaiqsUsWeorIgqCW0xNigCFIRQIvaRxEHyhpwg,533
|
|
50
|
-
dstack/_internal/core/backends/aws/resources.py,sha256=
|
|
52
|
+
dstack/_internal/core/backends/aws/resources.py,sha256=8Pm1zwejYESlH559GB0zNg5zVBgC5D4bPyGx7zBRhmg,22540
|
|
51
53
|
dstack/_internal/core/backends/azure/__init__.py,sha256=J-mWp413v0DQFaTochlvMJXlGf8ukQCH_6oGuYFR31U,718
|
|
52
54
|
dstack/_internal/core/backends/azure/auth.py,sha256=CZZlcUMkjh18wwtMl75K7kfob1bc9aI1TRr5QwMn_u8,1523
|
|
53
|
-
dstack/_internal/core/backends/azure/compute.py,sha256=
|
|
55
|
+
dstack/_internal/core/backends/azure/compute.py,sha256=ERtj3cEWVUR6MeA8W4dr4fo4SqtVMPfbkomoge5IIZs,23290
|
|
54
56
|
dstack/_internal/core/backends/azure/config.py,sha256=nb7e9rBt5glSOcXW1NZUxlyjfe2W1CiEPERNlxLcLUo,391
|
|
55
|
-
dstack/_internal/core/backends/azure/resources.py,sha256=
|
|
57
|
+
dstack/_internal/core/backends/azure/resources.py,sha256=keE3ruSSNWhSYMCkG7832TYppMMe8lDEyph0tulhd18,3048
|
|
56
58
|
dstack/_internal/core/backends/azure/utils.py,sha256=taHMJq6UHRzUXLUcO2P5VCKy3wJaye2bG-6QdkEPNdY,1741
|
|
57
59
|
dstack/_internal/core/backends/base/__init__.py,sha256=nTI1mn75hqwUumBVmyD_OSJW3boYHzNh1ER6m9yl39Y,280
|
|
58
|
-
dstack/_internal/core/backends/base/compute.py,sha256=
|
|
60
|
+
dstack/_internal/core/backends/base/compute.py,sha256=cATataCnSX881cU5spmpckI5bgjGseOQ8_Ms6ksYyqI,20077
|
|
59
61
|
dstack/_internal/core/backends/base/config.py,sha256=iwgrp31Yt0iHRU2IpGhOwyuEcdt3igP9Q9rV7pmnyEg,74
|
|
60
|
-
dstack/_internal/core/backends/base/offers.py,sha256=
|
|
62
|
+
dstack/_internal/core/backends/base/offers.py,sha256=89H6g6Dw5WvXDEBnKoZUF-fGIE3Clc8T4lEjZ_jr71A,5909
|
|
61
63
|
dstack/_internal/core/backends/cudo/__init__.py,sha256=e-RHwoV4-rg1I31BrSIZsgPBY5rsa_kN9dbZM0pve04,519
|
|
62
64
|
dstack/_internal/core/backends/cudo/api_client.py,sha256=ygq1Gx7ZvwKaifdXtvzDSw4xR4ZH6UWd5J47BjuaGh0,3685
|
|
63
|
-
dstack/_internal/core/backends/cudo/compute.py,sha256
|
|
65
|
+
dstack/_internal/core/backends/cudo/compute.py,sha256=-N6u7PmU--cpSk-B_KG-SbBbFO3ida4yJeTCVPyqhyI,6871
|
|
64
66
|
dstack/_internal/core/backends/cudo/config.py,sha256=OEtzz3bxJ29D07i5pHd5xd5SkclbpFBN-i--yHyZ6gc,245
|
|
65
67
|
dstack/_internal/core/backends/datacrunch/__init__.py,sha256=UiyGh78DabzGFkb-zwm84NB5CyhhSoXpqX8FxJp7pY8,573
|
|
66
68
|
dstack/_internal/core/backends/datacrunch/api_client.py,sha256=EMnd4uEZqSXEcCajMvaYKnL4l-mZRPGYlsjaeG4It8M,2602
|
|
67
|
-
dstack/_internal/core/backends/datacrunch/compute.py,sha256=
|
|
69
|
+
dstack/_internal/core/backends/datacrunch/compute.py,sha256=8ldjO2CtiOHTj9LsoIv2WS0Tcpc-14-1tvZZZ4gI_dg,6759
|
|
68
70
|
dstack/_internal/core/backends/datacrunch/config.py,sha256=bShWTAb02PYP8fuBz7H7r-YhRkhy6_yfD0nuaKd9xd4,281
|
|
69
71
|
dstack/_internal/core/backends/gcp/__init__.py,sha256=nxhPNTGd1pPag2DwBRKg3X5gEKlh32p7a9Yfyi7-d5k,546
|
|
70
|
-
dstack/_internal/core/backends/gcp/auth.py,sha256=
|
|
71
|
-
dstack/_internal/core/backends/gcp/compute.py,sha256
|
|
72
|
+
dstack/_internal/core/backends/gcp/auth.py,sha256=hSClOujk8_kcodqK4SltdaIty6kKaQAecHYya99-LBQ,2495
|
|
73
|
+
dstack/_internal/core/backends/gcp/compute.py,sha256=-tp5z4cwUY3SVCSsijRHm8QnBaAzvMh-wVs6sVHdoCE,36087
|
|
72
74
|
dstack/_internal/core/backends/gcp/config.py,sha256=AjNHgIsDqB5aKdyFXTKG9wNO2d3lgNyJW4Dk5Yb-LL4,722
|
|
73
|
-
dstack/_internal/core/backends/gcp/resources.py,sha256=
|
|
75
|
+
dstack/_internal/core/backends/gcp/resources.py,sha256=ZDs8rjdMCgHeeHH_vzxJjhCJN-omF4tRBApkN3GOjpg,14539
|
|
74
76
|
dstack/_internal/core/backends/kubernetes/__init__.py,sha256=MpuT3Dxt2ZwZpAQomE_fXUDmgHBmfP8xvUP1YMAKTJQ,573
|
|
75
|
-
dstack/_internal/core/backends/kubernetes/compute.py,sha256=
|
|
77
|
+
dstack/_internal/core/backends/kubernetes/compute.py,sha256=aAh4XNs-5lTI-q_2Bt6NzyKT3-mQSCLTk_1qCDLPAhg,22719
|
|
76
78
|
dstack/_internal/core/backends/kubernetes/config.py,sha256=odZgt1y8tPPm5L6Wta4XjpVDNi7aJGPANyyyapzUDWU,227
|
|
77
79
|
dstack/_internal/core/backends/kubernetes/utils.py,sha256=k0cmjqMoNfJ_pAe6W82exV4AywMcpZ5jf0QICVbVuFY,1218
|
|
78
80
|
dstack/_internal/core/backends/lambdalabs/__init__.py,sha256=eAjZoRfstuNcgDpYjYPBfHbBTjmQ0jkRP1AvftyR_Lk,581
|
|
79
81
|
dstack/_internal/core/backends/lambdalabs/api_client.py,sha256=WaBO7VrPB4kbMQJDxjFxx0HEtAoSncQvH-cahWnVxx4,2688
|
|
80
|
-
dstack/_internal/core/backends/lambdalabs/compute.py,sha256=
|
|
82
|
+
dstack/_internal/core/backends/lambdalabs/compute.py,sha256=1G5Z2ECtSqlp9dZcbFSKa0zYcgMb5_IA3kMOLFXNCu0,8398
|
|
81
83
|
dstack/_internal/core/backends/lambdalabs/config.py,sha256=dK5nDZ320x8xVWaIZ_As2rk1rJOpxuFwIve1Qe6tjp8,261
|
|
82
84
|
dstack/_internal/core/backends/local/__init__.py,sha256=Bbq2l8PWJTsMqovjS4u5VTDFrxYn-o3nJtdD1hfrBHM,399
|
|
83
85
|
dstack/_internal/core/backends/local/compute.py,sha256=5ETgGZ09axLpRghBZp4GHUcOX0-m4ShhcL3MXHvySaU,3248
|
|
84
86
|
dstack/_internal/core/backends/nebius/__init__.py,sha256=wmJ1JPm54Vc3omuVrLKbbEr_F9mZbeLl-Vb_eMF5r2s,537
|
|
85
87
|
dstack/_internal/core/backends/nebius/api_client.py,sha256=T2f429uY2KFWY8NrnCaAu16O4L2ygYrkc10crrbu-BI,10326
|
|
86
|
-
dstack/_internal/core/backends/nebius/compute.py,sha256=
|
|
88
|
+
dstack/_internal/core/backends/nebius/compute.py,sha256=trlHEGlBiMg_ehYYUyxlA4hM2qQ3dMb7FSMBzy2cvdk,8518
|
|
87
89
|
dstack/_internal/core/backends/nebius/config.py,sha256=S4XL45mxaZvqFraCyGefGY7G3vXbzLDP-ozIndKrL_w,244
|
|
88
90
|
dstack/_internal/core/backends/nebius/types.py,sha256=7V5UTFlhdKO410pxtsQRpCjsaMf1vxcTwT3ncp1QI78,509
|
|
89
91
|
dstack/_internal/core/backends/oci/__init__.py,sha256=Tjf82P3e3nRnYwvr27IRi9C-c9SI6-39TongpJFeQqY,510
|
|
90
92
|
dstack/_internal/core/backends/oci/auth.py,sha256=dZy8EWsnUbylp0x1VYZpgu2MBXh_Tocz6KPAjPNmjbs,883
|
|
91
|
-
dstack/_internal/core/backends/oci/compute.py,sha256=
|
|
93
|
+
dstack/_internal/core/backends/oci/compute.py,sha256=rNEXOsrjfcGRuz-tXVlKJrMcxPXAaxgdaBSwwgGXzu4,7894
|
|
92
94
|
dstack/_internal/core/backends/oci/config.py,sha256=rSwnbRh7qXe64CfJ_oOnIRFaYevjZ5J4Hx1dNwkT3Xo,226
|
|
93
95
|
dstack/_internal/core/backends/oci/exceptions.py,sha256=GxlUf7itcAQgY3m-U2ul_ZXzfUOcEcPEmisWFaoWSkA,288
|
|
94
96
|
dstack/_internal/core/backends/oci/region.py,sha256=6MElwRMVQvl7FF2E90nQ1p7QmcRcyhAps2Dy2cOYR4A,2935
|
|
@@ -97,24 +99,24 @@ dstack/_internal/core/backends/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
|
|
|
97
99
|
dstack/_internal/core/backends/remote/provisioning.py,sha256=oNbomEuXIBdgYeCh6_RWB0nWtnrJ0-HRf9M6VYgoQvk,12461
|
|
98
100
|
dstack/_internal/core/backends/runpod/__init__.py,sha256=CC9K4rZlSxpSIqt9akM1PIRzaOGozreY4hQWxO8dRZ4,537
|
|
99
101
|
dstack/_internal/core/backends/runpod/api_client.py,sha256=Oet7CwQTu3sE57unqh-JvuMCBDEDPruAbGB4GyM0dM4,13427
|
|
100
|
-
dstack/_internal/core/backends/runpod/compute.py,sha256=
|
|
102
|
+
dstack/_internal/core/backends/runpod/compute.py,sha256=u6OSdGCXH5L2JX6ztEtXHW76MNv8ZE95PIhhVcfsHnU,9867
|
|
101
103
|
dstack/_internal/core/backends/runpod/config.py,sha256=V9ihNEigp5szdDuffHDM47JsshyPc25x6jHwbuc2YhY,257
|
|
102
104
|
dstack/_internal/core/backends/tensordock/__init__.py,sha256=AihBzxY8RjJHXYrpqaSGCkcOwqYsMgiyIlH16fnHxso,573
|
|
103
105
|
dstack/_internal/core/backends/tensordock/api_client.py,sha256=4106Jzn_I1WTX0VZkZk3I-xkG7sHGTUBRapi8Fk2H7o,3805
|
|
104
|
-
dstack/_internal/core/backends/tensordock/compute.py,sha256=
|
|
106
|
+
dstack/_internal/core/backends/tensordock/compute.py,sha256=njDKvNxN7Fupoxw_eMiItimOvadvdLXEAivM3e75ro0,5584
|
|
105
107
|
dstack/_internal/core/backends/tensordock/config.py,sha256=tDbQd2JaALw05WQMHepbyaIBKLvDP0AW3qJyoMDxX5o,281
|
|
106
108
|
dstack/_internal/core/backends/vastai/__init__.py,sha256=0biDt0AfWis81AJZc-R2TuUdSodjpiJjUtxPTG8RdG8,537
|
|
107
109
|
dstack/_internal/core/backends/vastai/api_client.py,sha256=b-qgx352lnxhBXichJtURFGxR7Jd9JYx4WXaxYV-HH0,4940
|
|
108
|
-
dstack/_internal/core/backends/vastai/compute.py,sha256=
|
|
110
|
+
dstack/_internal/core/backends/vastai/compute.py,sha256=3gvzzaYo5yTrnWbRz10M6DRca2WUCiQXqUaVKVBUi5M,4854
|
|
109
111
|
dstack/_internal/core/backends/vastai/config.py,sha256=cVHqnEkPKw2DFOkEGJ3XhMcRx4IBDgfUuS69DKksosI,244
|
|
110
112
|
dstack/_internal/core/backends/vultr/__init__.py,sha256=D5FekILnO-lQ91hPYKrXWB0BuiGx7djMajuMa3ZlrV0,528
|
|
111
|
-
dstack/_internal/core/backends/vultr/api_client.py,sha256=
|
|
112
|
-
dstack/_internal/core/backends/vultr/compute.py,sha256=
|
|
113
|
+
dstack/_internal/core/backends/vultr/api_client.py,sha256=isHbdBQr2hFRYTcnTsGxSlWIKYrpC1X_gjSZjGxUupE,4363
|
|
114
|
+
dstack/_internal/core/backends/vultr/compute.py,sha256=HqoI7ZF_DafrOG3XALdRjYQdzpvCP0_SBsm6GSk1Sw4,6357
|
|
113
115
|
dstack/_internal/core/backends/vultr/config.py,sha256=TqjT2yhW9rAiDpJ96gBFTM638FS9QwYAT33WSoh6z34,251
|
|
114
116
|
dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
117
|
dstack/_internal/core/models/common.py,sha256=XNfEP_lHAs398oDfSVn8kCX79GIWvl0hDs05Rz1CBic,2579
|
|
116
118
|
dstack/_internal/core/models/config.py,sha256=JJ7rT7dztzTWCY5TkoyxXxTvG5D4IFYhGe7EzwkLOWQ,581
|
|
117
|
-
dstack/_internal/core/models/configurations.py,sha256=
|
|
119
|
+
dstack/_internal/core/models/configurations.py,sha256=lC5Pp_sQUb8GzR2z3QL1vMEMRgC8YwMPQlgpKt0z9dM,14726
|
|
118
120
|
dstack/_internal/core/models/envs.py,sha256=ls2ahIhEb3LYLX_auH3F46uTRp2zdlMWKEpjmU_V3S4,5017
|
|
119
121
|
dstack/_internal/core/models/fleets.py,sha256=MzJFMpzsuXBE1Fxlbf8dtsqes5qWMCMRSUWGoWIcRnA,10772
|
|
120
122
|
dstack/_internal/core/models/gateways.py,sha256=n9lPq6X0n2a7fF-CseiBVDDwasJsU3VQumTetMsfZcc,3465
|
|
@@ -134,9 +136,9 @@ dstack/_internal/core/models/unix.py,sha256=KxnSQELnkAjjuUgYcQKVkf-UAbYREBD8WCWD
|
|
|
134
136
|
dstack/_internal/core/models/users.py,sha256=o_rd0GAmd6jufypVUs9P12NRri3rgAPDt-KxnqNNsGw,703
|
|
135
137
|
dstack/_internal/core/models/volumes.py,sha256=ZebkSybGXmnPQHjsDCWVofHavjwjLIovssmpXnLW6nU,6207
|
|
136
138
|
dstack/_internal/core/models/backends/__init__.py,sha256=iPMAv4j7gpHc0cjt3SxzQGb-sywms8LUXt7IjtKNPnM,5589
|
|
137
|
-
dstack/_internal/core/models/backends/aws.py,sha256=
|
|
139
|
+
dstack/_internal/core/models/backends/aws.py,sha256=YCt2Q3MF7RjYa707iU0EyXvkXYIr2ivNtdauCW-khss,2550
|
|
138
140
|
dstack/_internal/core/models/backends/azure.py,sha256=OhK3HBvI_ZfLmKVxlnm7AowWOlarp6QXb3tbcbFoACw,2076
|
|
139
|
-
dstack/_internal/core/models/backends/base.py,sha256=
|
|
141
|
+
dstack/_internal/core/models/backends/base.py,sha256=FabJjSLFnLMY597fJXgS8o2shtToML756aEd30OQyDo,1428
|
|
140
142
|
dstack/_internal/core/models/backends/cudo.py,sha256=ZaqIq1yxxnoFddvzFES7VO82bVNxeI5laFWKKN_JaeE,1111
|
|
141
143
|
dstack/_internal/core/models/backends/datacrunch.py,sha256=CpQDDZ2xHWz5BQPb9NA_eSP7FaQQegT0yGJZ1CCSNqc,1281
|
|
142
144
|
dstack/_internal/core/models/backends/dstack.py,sha256=Oxyf8zqbOjxStimYrYuYvf0Kop3dJbyBQnkMnUGDs0Y,754
|
|
@@ -154,13 +156,13 @@ dstack/_internal/core/models/repos/base.py,sha256=lHV9iNSV1Iv1xxqxO7wCcGZ5WIliMp
|
|
|
154
156
|
dstack/_internal/core/models/repos/local.py,sha256=ve9DoCn9qDyE2VOxzoK4_BdXwVveFPFY0fSls7jRcmI,2379
|
|
155
157
|
dstack/_internal/core/models/repos/remote.py,sha256=JjqPVGzeYr7T8MhsvkUs3GzUpfnAIEWj-UAUbwJhl2Q,10877
|
|
156
158
|
dstack/_internal/core/models/repos/virtual.py,sha256=1p6k2vBfWI6UT91os3lZfV5wl8bskNGFa1hyI5kiY-8,2569
|
|
157
|
-
dstack/_internal/core/services/__init__.py,sha256=
|
|
159
|
+
dstack/_internal/core/services/__init__.py,sha256=UVVcj26WYVgo7jHzD07sNRqSOO7zA3QzQv-9LnCDqR4,415
|
|
158
160
|
dstack/_internal/core/services/api_client.py,sha256=HTQ0fcZciUh-nmfV09hUt__Z4N2zq_R12xAiYXD0Jy0,650
|
|
159
161
|
dstack/_internal/core/services/diff.py,sha256=lw7vTOYnGtRWlEulgVlHt1KjLdC8VJpfBcqMRuFZzSQ,532
|
|
160
162
|
dstack/_internal/core/services/logs.py,sha256=7_eJdH4MD-3rVb4A6rIJfjj_p4jzUOCmjRVlPD-UDsg,2166
|
|
161
163
|
dstack/_internal/core/services/profiles.py,sha256=SJGT6LG8JmrfsqlyXOkPZd61BDwZ4Q1ngcmDVgq826M,2160
|
|
162
164
|
dstack/_internal/core/services/repos.py,sha256=YgTmLX8U1Y5cz2dG9yThK1-Geq02iik_C6DGZ0y6uEY,5311
|
|
163
|
-
dstack/_internal/core/services/configs/__init__.py,sha256=
|
|
165
|
+
dstack/_internal/core/services/configs/__init__.py,sha256=hBFfU1IhkFJ7HZU9JgzBys8i1l_YM-iEKt0JqYd1YiE,5580
|
|
164
166
|
dstack/_internal/core/services/ssh/__init__.py,sha256=UhgC3Lv3CPSGqSPEQZIKOfLKUlCFnaB0uqPQhfKCFt0,878
|
|
165
167
|
dstack/_internal/core/services/ssh/attach.py,sha256=Vc47zLXqCUcg14BahwyX9qnBaGEJi96mTU1Nd0XU31Q,9011
|
|
166
168
|
dstack/_internal/core/services/ssh/client.py,sha256=FUg74jNOagYR3OKuWMBwNgJWIDwHfYrIMSER8xn92D8,4102
|
|
@@ -224,18 +226,19 @@ dstack/_internal/server/db.py,sha256=WjuqmjG3QAZmSMCeUaJ_ynbowlHuNAvYCZO649cTPHc
|
|
|
224
226
|
dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
|
|
225
227
|
dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
|
|
226
228
|
dstack/_internal/server/models.py,sha256=VKh_lfgGUlc0Xy_CGo02IDgwPRp3membAJg07jm27j4,27405
|
|
227
|
-
dstack/_internal/server/settings.py,sha256=
|
|
229
|
+
dstack/_internal/server/settings.py,sha256=4Vazy6qel63ToJzQSjlOHAt_5UpM99inAQYEINUgUAw,3170
|
|
228
230
|
dstack/_internal/server/background/__init__.py,sha256=jNDwTgQwKhK1NYl0RJaKU4mwKIMOSIxPTKVyhizU1PM,3436
|
|
229
231
|
dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
232
|
+
dstack/_internal/server/background/tasks/common.py,sha256=N7xSXbf2MoBWgbJ1e3AEzYBTf1Gn-pDXYND8Zr_YCJQ,970
|
|
230
233
|
dstack/_internal/server/background/tasks/process_fleets.py,sha256=lKXUvN_b7DNjD3psHzyCt_JYsTxPFuQ86iXi8fj8GkM,3202
|
|
231
234
|
dstack/_internal/server/background/tasks/process_gateways.py,sha256=KN5n9r0cKizJ3oGpeLsv3euZKZOMf-02X0Sv09GE8N8,7141
|
|
232
|
-
dstack/_internal/server/background/tasks/process_instances.py,sha256=
|
|
235
|
+
dstack/_internal/server/background/tasks/process_instances.py,sha256=xRV0tJbSPean2E09opTYLUH2Z4Xpm1Lw-o-LqPcecqc,37046
|
|
233
236
|
dstack/_internal/server/background/tasks/process_metrics.py,sha256=BPv0S7pmMX91vObZiW51AJiNR0ULIj-OQlo5n97KISY,5328
|
|
234
237
|
dstack/_internal/server/background/tasks/process_placement_groups.py,sha256=DZctiMF2TXKbYeygoz--ZiC9MXVL1sQJgq0oqRIc7hg,3858
|
|
235
|
-
dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=
|
|
238
|
+
dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=8YH4hQXvkSxzrWz9wW0lYoMZmNgC3iUHBWR-tG_LCZI,29829
|
|
236
239
|
dstack/_internal/server/background/tasks/process_runs.py,sha256=JWJqMzXXqvwQSxyKs4bKH2aBP8YQbiyO4tuwyMPVduk,16673
|
|
237
240
|
dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=xv1aW2umlOdbdZn4TOvlhl6td3Uam378yIwosfSO9ks,27022
|
|
238
|
-
dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=
|
|
241
|
+
dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=0Z3Q409RwSxOL_pgK8JktBthjtESEUH3ahwTLsTdYPk,3800
|
|
239
242
|
dstack/_internal/server/background/tasks/process_volumes.py,sha256=YafZml-b-bD7M6S0UmY-rLV-pIIX-SdzuyaErqxrnyk,4939
|
|
240
243
|
dstack/_internal/server/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
241
244
|
dstack/_internal/server/migrations/env.py,sha256=RuhcN-CST86VzMatjqBMdYcG0fGGMZl_o1YgZTL-WDw,2831
|
|
@@ -304,7 +307,7 @@ dstack/_internal/server/routers/backends.py,sha256=nocj-M0m54t_rpjZQBk15XRIVDpXI
|
|
|
304
307
|
dstack/_internal/server/routers/fleets.py,sha256=Tmw4hlviCBuntQPpp4J8XyQZyoK2-4o41OlcEP4NNtg,4867
|
|
305
308
|
dstack/_internal/server/routers/gateways.py,sha256=am5HnyWUydgUbEjIdjYBcob8CEIrx4bRtdj9kQhutkA,3149
|
|
306
309
|
dstack/_internal/server/routers/instances.py,sha256=ELxXF4BiS9e4YCKFmBp8U4SsjP8eGmbj9Q4LiLfgsgY,1592
|
|
307
|
-
dstack/_internal/server/routers/logs.py,sha256
|
|
310
|
+
dstack/_internal/server/routers/logs.py,sha256=_Euk283LbhlwHibJTKM-7YcpbeQFtWBqMfbOry3PSkU,1159
|
|
308
311
|
dstack/_internal/server/routers/metrics.py,sha256=WEICSvIbs1-8zCgxF9WqgsR_9p0afDX_HjNW4-1LCOk,1581
|
|
309
312
|
dstack/_internal/server/routers/pools.py,sha256=3NnwGQVLp5GFMypaXNKFqPjop746EEi4LSPMmx5NKek,4889
|
|
310
313
|
dstack/_internal/server/routers/projects.py,sha256=0R-w_6WXUbNo6fREAexFUQ3RoOJF2D_Iz35elKjym14,2717
|
|
@@ -332,17 +335,16 @@ dstack/_internal/server/schemas/volumes.py,sha256=9iwaQLMhA6aj9XmtdU_9jWVhpzNOtF
|
|
|
332
335
|
dstack/_internal/server/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
333
336
|
dstack/_internal/server/security/permissions.py,sha256=K756I8fnBLBrq4PZwz1ttt74HI0UWBSmjaIfMHN5d1s,4425
|
|
334
337
|
dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
335
|
-
dstack/_internal/server/services/config.py,sha256=
|
|
338
|
+
dstack/_internal/server/services/config.py,sha256=4X9KCh7Gta3WrB735YuVt7aNlH5m7G-ULRBSwHatXOo,29955
|
|
336
339
|
dstack/_internal/server/services/docker.py,sha256=3EcYPiVsrNBGDQYOb60QJ241mzTT6lJROYQXIwt-8dk,5351
|
|
337
340
|
dstack/_internal/server/services/fleets.py,sha256=h5LL8FGOZMOl0kzLycP36U6k3SWl_bSnSn7oFg8ubQY,28980
|
|
338
341
|
dstack/_internal/server/services/locking.py,sha256=UV5kc-BgROBuNDpBrp8jkcf-fHPOpHLc8JufL-8mbN8,2453
|
|
339
342
|
dstack/_internal/server/services/logging.py,sha256=Nu1628kW2hqB__N0Eyr07wGWjVWxfyJnczonTJ72kSM,417
|
|
340
|
-
dstack/_internal/server/services/logs.py,sha256=53pymPDaM9-xXHFzCyEHdvM49JPTpsLI2aPTSP5zaPo,20090
|
|
341
343
|
dstack/_internal/server/services/metrics.py,sha256=_YmAQ_oCzzklgk_O5iSJDZJhRk9rBqx8REkPcRQUTAo,3490
|
|
342
344
|
dstack/_internal/server/services/offers.py,sha256=GIaICztEu4zbcpIGHvNsfMVYmPvoYg5zcQ0apHNdgBw,6954
|
|
343
345
|
dstack/_internal/server/services/permissions.py,sha256=l7Ngdelmn65vjw13NcOdaC6lBYMRuSw6FbHzYwdK3nE,1005
|
|
344
346
|
dstack/_internal/server/services/placement.py,sha256=DWZ8-iAE3o0J0xaHikuJYZzpuBiq7lj41LiAP1PfoEs,1773
|
|
345
|
-
dstack/_internal/server/services/pools.py,sha256
|
|
347
|
+
dstack/_internal/server/services/pools.py,sha256=-lF9jrAosNpRxRG3PnbzLWgwPFidGFccjF7tgKyC67A,28911
|
|
346
348
|
dstack/_internal/server/services/projects.py,sha256=HWOnFOC6LmvbjDzRKADv7tXKIDWthbO11zrsHU7vkew,14709
|
|
347
349
|
dstack/_internal/server/services/repos.py,sha256=f9ztN7jz_2gvD9hXF5sJwWDVyG2-NHRfjIdSukowPh8,9342
|
|
348
350
|
dstack/_internal/server/services/runs.py,sha256=3m9oYKq08QQF1GlaOa6_2nYp9SMYoqvfjVnO3-fpTGY,36045
|
|
@@ -352,12 +354,12 @@ dstack/_internal/server/services/volumes.py,sha256=UX-fqC3c240aG6EbdtVsXrJQbkF0O
|
|
|
352
354
|
dstack/_internal/server/services/backends/__init__.py,sha256=Q8Ju0Shf2RAlIdi1CapJNUKOdUAFeRnxhNYti6GZiww,14923
|
|
353
355
|
dstack/_internal/server/services/backends/handlers.py,sha256=j-MhBxrpdepoDG7f2tApjFnE23RVO5I15-hxHyOWnew,3251
|
|
354
356
|
dstack/_internal/server/services/backends/configurators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
355
|
-
dstack/_internal/server/services/backends/configurators/aws.py,sha256=
|
|
357
|
+
dstack/_internal/server/services/backends/configurators/aws.py,sha256=PyyzH38rIQd7xM7tGnQjqtybcvdFNvqhZf6EIqiWvW0,9175
|
|
356
358
|
dstack/_internal/server/services/backends/configurators/azure.py,sha256=AANl9dp4RmNT9Q_-ipcLDFp7w5F_-gIxogLthAJWqZY,20206
|
|
357
359
|
dstack/_internal/server/services/backends/configurators/base.py,sha256=GHS0eBCRptdfZN1xISqPgOEt46oYK6C9Hpb3b_c0OtA,2433
|
|
358
360
|
dstack/_internal/server/services/backends/configurators/cudo.py,sha256=o5KIXuJLFfzoeUqAivvMhwLy4GWDbKR6E1J9egP8T9g,3102
|
|
359
361
|
dstack/_internal/server/services/backends/configurators/datacrunch.py,sha256=9rZPns9GwHywXsBFh47sa3IAnh0h7U92SLlHQD1Mj9s,2849
|
|
360
|
-
dstack/_internal/server/services/backends/configurators/gcp.py,sha256=
|
|
362
|
+
dstack/_internal/server/services/backends/configurators/gcp.py,sha256=EuwwcucFxLgffk58TvH-GYI39gOn4h2_Wz-fi91Jhao,8839
|
|
361
363
|
dstack/_internal/server/services/backends/configurators/kubernetes.py,sha256=HtZQfxTrCf23fn3QX36Z5RNUo78edr00xxgcUJKVulk,2518
|
|
362
364
|
dstack/_internal/server/services/backends/configurators/lambdalabs.py,sha256=yVFOnKTplxl-rGDUVUDUG5R5sl1qmxQwImdnaSoNqf0,3325
|
|
363
365
|
dstack/_internal/server/services/backends/configurators/nebius.py,sha256=tPch1yC4Tftli-rqt36I4HfYjfvwYRP_irrBJFHdhHY,3240
|
|
@@ -375,21 +377,26 @@ dstack/_internal/server/services/gateways/__init__.py,sha256=ceTzXRWu-pVghze9New
|
|
|
375
377
|
dstack/_internal/server/services/gateways/client.py,sha256=1PH9gUjRkHegp37B27pjBVoPFk64KjxcE30eEPBTLM0,7321
|
|
376
378
|
dstack/_internal/server/services/gateways/connection.py,sha256=ot3lV85XdmCT45vBWeyj57nLPcLPNm316zu3jMyeWjA,5625
|
|
377
379
|
dstack/_internal/server/services/gateways/pool.py,sha256=0LclTl1tyx-doS78LeaAKjr-SMp98zuwh5f9s06JSd0,1914
|
|
378
|
-
dstack/_internal/server/services/jobs/__init__.py,sha256=
|
|
380
|
+
dstack/_internal/server/services/jobs/__init__.py,sha256=euq5U73vEGWxDmNASHjnZpWRc5Kp2Dpgy_opMwUDeeU,25444
|
|
379
381
|
dstack/_internal/server/services/jobs/configurators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
380
382
|
dstack/_internal/server/services/jobs/configurators/base.py,sha256=I21dp1P9XC49NNJL_bfihwXfhFd6G-yQXYFYk-EJPEI,10306
|
|
381
|
-
dstack/_internal/server/services/jobs/configurators/dev.py,sha256=
|
|
383
|
+
dstack/_internal/server/services/jobs/configurators/dev.py,sha256=_QOExS0ifCZMp4hLYaCuyb-ASQgAegpDguGWNdF_TUA,1953
|
|
382
384
|
dstack/_internal/server/services/jobs/configurators/service.py,sha256=FOWrLE-6YFSMuGqjOwYTLMV4FuIM5lCMDFjS0l0CoLI,929
|
|
383
|
-
dstack/_internal/server/services/jobs/configurators/task.py,sha256=
|
|
385
|
+
dstack/_internal/server/services/jobs/configurators/task.py,sha256=0-B3oO-61Eq4-mmlLmqJPliFKHhvvIV0tqc12slcQuA,1436
|
|
384
386
|
dstack/_internal/server/services/jobs/configurators/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
385
387
|
dstack/_internal/server/services/jobs/configurators/extensions/base.py,sha256=xJbHxaaSJ1zjn8zuuApP1Xt2uBaedPhhc-IY0NtDDJQ,418
|
|
386
388
|
dstack/_internal/server/services/jobs/configurators/extensions/vscode.py,sha256=DAj8OEVLyL1x8Jko2EXKhnAkcSnlO1sJk6o6eiiVkDI,1611
|
|
389
|
+
dstack/_internal/server/services/logs/__init__.py,sha256=NAjO1KeYvuDznN2EkfAaJt9S6Y00fo_dl3ob3WmsdGQ,3088
|
|
390
|
+
dstack/_internal/server/services/logs/aws.py,sha256=949k8t9H9v_-aedDjDWkw8yPVyhZemmsszcDDEL5Tb4,13711
|
|
391
|
+
dstack/_internal/server/services/logs/base.py,sha256=7eCB6SPF9iWviv4vZ_34SvfM_Bvi9DeVj1t7TxmrXKs,1273
|
|
392
|
+
dstack/_internal/server/services/logs/filelog.py,sha256=2IAFQgLf5NwA1NTibe3ybn47TEddgUKZ_7b4B4yiQOY,3856
|
|
393
|
+
dstack/_internal/server/services/logs/gcp.py,sha256=xV-BJ4NcU8bRVAEXa0dmdYpqNy93dIKC6axo0viQi5c,6867
|
|
387
394
|
dstack/_internal/server/services/proxy/__init__.py,sha256=aklmvGaGXISztQft-nH8R98WRU6x_L0Fx3RwVDhwt3g,85
|
|
388
395
|
dstack/_internal/server/services/proxy/auth.py,sha256=AVhDCnk9KvxJ7Jsd8Xmotl_29V4lNuBw8mQNBhx90Ws,485
|
|
389
396
|
dstack/_internal/server/services/proxy/deps.py,sha256=u4dHHKBlTgC8Fnnl3onErgE1HGKFwyZTwvq0uT6IdQ4,846
|
|
390
397
|
dstack/_internal/server/services/proxy/repo.py,sha256=2Uy90hFeLlQBqqId9Y2tn4mJO3bie9v6FdVP0y5Z9UU,7195
|
|
391
398
|
dstack/_internal/server/services/proxy/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
392
|
-
dstack/_internal/server/services/proxy/routers/service_proxy.py,sha256=
|
|
399
|
+
dstack/_internal/server/services/proxy/routers/service_proxy.py,sha256=5oB-SX8f_f32tTs5aJe9ZuMycHAyVTQDO9xJcFmUKCs,1953
|
|
393
400
|
dstack/_internal/server/services/proxy/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
394
401
|
dstack/_internal/server/services/proxy/services/service_proxy.py,sha256=4JrSxHqhBYqU1oENii89Db-bzkFWExYrOy-0mNEhWBs,4879
|
|
395
402
|
dstack/_internal/server/services/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -423,10 +430,10 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
|
|
|
423
430
|
dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
|
|
424
431
|
dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
|
|
425
432
|
dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
|
|
426
|
-
dstack/_internal/server/statics/index.html,sha256=
|
|
427
|
-
dstack/_internal/server/statics/main-
|
|
428
|
-
dstack/_internal/server/statics/main-
|
|
429
|
-
dstack/_internal/server/statics/main-
|
|
433
|
+
dstack/_internal/server/statics/index.html,sha256=3BqqXx8k6XRP4kYKcj-4h0EnhHTA6HcXcmijuEzqseQ,10468
|
|
434
|
+
dstack/_internal/server/statics/main-7510e71dfa9749a4e70e.css,sha256=crBuXqMqHxjUBz4ESOQLtRzot_irn6zYrZLf8Uj7gSk,1296121
|
|
435
|
+
dstack/_internal/server/statics/main-fe8fd9db55df8d10e648.js,sha256=DYwOYAwdEz8wUbv7GVGuDFwC2zAZg5qKEwKI1_R5dlE,6192701
|
|
436
|
+
dstack/_internal/server/statics/main-fe8fd9db55df8d10e648.js.map,sha256=K0gwTM9IZBYSuRFFPDWOSior62dC40TbdBH6D2n6bos,8122346
|
|
430
437
|
dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
|
|
431
438
|
dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
|
|
432
439
|
dstack/_internal/server/statics/assets/android-chrome-144x144.png,sha256=tB3V-95O-VVEoawN5V1XFoMQRSK0I6gthraV8bATGaw,23414
|
|
@@ -503,7 +510,7 @@ dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb6414614
|
|
|
503
510
|
dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
|
|
504
511
|
dstack/_internal/server/statics/static/media/theme.3994c817bb7dda191c1c9640dee0bf42.svg,sha256=ZxFFBVZWuRLqmWH4zhwGLNtKjOzHj-5MGJRunFAtu1I,561
|
|
505
512
|
dstack/_internal/server/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
506
|
-
dstack/_internal/server/testing/common.py,sha256=
|
|
513
|
+
dstack/_internal/server/testing/common.py,sha256=LKoH9pD9cJoy3JsEbP4nureES_-PBw-wg685vZVx0Rs,29614
|
|
507
514
|
dstack/_internal/server/testing/conf.py,sha256=-zhujfFjTHNfQDOK-hBck32By11c_kC0OeinB3esQGg,1902
|
|
508
515
|
dstack/_internal/server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
509
516
|
dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBAsR_9D1brrk,1414
|
|
@@ -530,7 +537,7 @@ dstack/api/_public/backends.py,sha256=IBeotauJzlte379LzRM6ByZCl_98QemGZsm3p_WX98
|
|
|
530
537
|
dstack/api/_public/pools.py,sha256=wlTai0px6aQNeKyL-6nOil6DCj-GdozqqDGmnTg4ubw,1033
|
|
531
538
|
dstack/api/_public/repos.py,sha256=LYWy1W3Z-2y_D82Jln6YzU2F_asPULGJq1GM9HAAMIc,6173
|
|
532
539
|
dstack/api/_public/resources.py,sha256=lTQM2nb7_QB2RCwmpQlBkYkpiN_aWjgF78wI7Op_RlQ,2947
|
|
533
|
-
dstack/api/_public/runs.py,sha256=
|
|
540
|
+
dstack/api/_public/runs.py,sha256=wYxIlEKVHr-b1X-gUC1achBq-v1LNRBtP5Vg5mtnhGc,24719
|
|
534
541
|
dstack/api/huggingface/__init__.py,sha256=oIrEij3wttLZ1yrywEGvCMd6zswMQrX5pPjrqdSi0UA,2201
|
|
535
542
|
dstack/api/server/__init__.py,sha256=1Sw1bB8NItIFWlL1bdeUN1Tuwu3uaYOJWFrg1c4VULY,5801
|
|
536
543
|
dstack/api/server/_backends.py,sha256=mMePYgFMHAUma3Gycx54VsaxAL_IFhBRcI4H4eWWMg0,1908
|
|
@@ -568,6 +575,8 @@ tests/_internal/core/backends/aws/test_resources.py,sha256=0Qz9YVjN874UWaZPFkVX9
|
|
|
568
575
|
tests/_internal/core/backends/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
569
576
|
tests/_internal/core/backends/azure/test_compute.py,sha256=PkckOfdGyVjOfqbE0uOUD92MlltKXxkAw0Wu1IbOVMQ,2134
|
|
570
577
|
tests/_internal/core/backends/azure/test_resources.py,sha256=Bi3g0BgtOiTMC1vuU7rtELsey5E-5jmB30vk-jEJF9M,1715
|
|
578
|
+
tests/_internal/core/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
579
|
+
tests/_internal/core/backends/base/test_compute.py,sha256=LkeECcBu5SPNbysLHJWDGS_8mTbSZ1L5-ZD0Dh4Fv18,2118
|
|
571
580
|
tests/_internal/core/backends/gcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
572
581
|
tests/_internal/core/backends/gcp/test_resources.py,sha256=7nkVM9w-cVZov1M6SmOKm5W-JhooQCIgph4i-MGZx3c,1638
|
|
573
582
|
tests/_internal/core/backends/kubernetes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -604,7 +613,7 @@ tests/_internal/proxy/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
604
613
|
tests/_internal/proxy/lib/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
605
614
|
tests/_internal/proxy/lib/routers/test_model_proxy.py,sha256=xPCQ9MGBNvRH8rhKZkvkcugxPzluySgErWXE3QsoPjg,8926
|
|
606
615
|
tests/_internal/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
607
|
-
tests/_internal/server/conftest.py,sha256=
|
|
616
|
+
tests/_internal/server/conftest.py,sha256=5FbBihFl5tznVw0XjwSqI5P32jV12_i75UBt80V7wxo,1522
|
|
608
617
|
tests/_internal/server/test_app.py,sha256=nIDp8nlWBaW6yQRhGtQZAwOVM55maF8vLw1YqYXIUTQ,605
|
|
609
618
|
tests/_internal/server/test_migrations.py,sha256=8MV1uVSCY-UG_dG6M4a7ekSsGi9CqHjobopc-H5-WKg,2107
|
|
610
619
|
tests/_internal/server/background/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -614,22 +623,22 @@ tests/_internal/server/background/tasks/test_process_gateways.py,sha256=h7jzDFQp
|
|
|
614
623
|
tests/_internal/server/background/tasks/test_process_instances.py,sha256=-ATbgOT8XAeqGmPn4XPlSJzxnrm0haAJhX13nWOBOtM,24816
|
|
615
624
|
tests/_internal/server/background/tasks/test_process_metrics.py,sha256=eirq386mVZqX_PqctuX7CxO38Prwy8RH2UesYXo3CnQ,5083
|
|
616
625
|
tests/_internal/server/background/tasks/test_process_placement_groups.py,sha256=shHqZvS8QoNwQe8J29-aHk2X2HqX-gsxcQiZevU8yuY,1528
|
|
617
|
-
tests/_internal/server/background/tasks/test_process_running_jobs.py,sha256=
|
|
626
|
+
tests/_internal/server/background/tasks/test_process_running_jobs.py,sha256=XzbP5WIJtgYSm7xcjPwuw6uAVAUrxVduO2nrjdmkQV4,25542
|
|
618
627
|
tests/_internal/server/background/tasks/test_process_runs.py,sha256=Yv6f2CDZ-ejDGo7uOKyyAGxYLsvqyjNo4Zw1cCQbjgM,14489
|
|
619
628
|
tests/_internal/server/background/tasks/test_process_submitted_jobs.py,sha256=Sf4aDa1ZYw5Sz3xAw8K0hoI-VDesv7Ew3gZdAzQvj_4,24451
|
|
620
629
|
tests/_internal/server/background/tasks/test_process_submitted_volumes.py,sha256=njfRDdDzVtDL8rech_004Wf5z5PpoQVWFufKh1yUyYY,2171
|
|
621
630
|
tests/_internal/server/background/tasks/test_process_terminating_jobs.py,sha256=VZsfP1NVxkcLSNWfEXDFe_vQZUQfuG0B5i-krXKP_IQ,14147
|
|
622
631
|
tests/_internal/server/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
623
|
-
tests/_internal/server/routers/test_backends.py,sha256=
|
|
632
|
+
tests/_internal/server/routers/test_backends.py,sha256=d95ZS97zSRHdmmDTxIPzYQWU-hb2_DvlNo2lcF0NNzw,65273
|
|
624
633
|
tests/_internal/server/routers/test_fleets.py,sha256=ap3Jjg2iiwuklosu2_-xx-cJBlM6uZN5CQfGudORPf0,35105
|
|
625
634
|
tests/_internal/server/routers/test_gateways.py,sha256=bb0pzm7uu1X3V8755b7ZZUHPSLk0Rd6CjoMCdionWVA,23535
|
|
626
635
|
tests/_internal/server/routers/test_instances.py,sha256=BAWSCjXhe4N1px6BvPEcdAKrQHL5CkrHWvuGrzPRapc,9516
|
|
627
|
-
tests/_internal/server/routers/test_logs.py,sha256=
|
|
636
|
+
tests/_internal/server/routers/test_logs.py,sha256=NZwyJlgjMOGq4XEx7-VDjTpniYPhZpsbZvB0dTawaog,3989
|
|
628
637
|
tests/_internal/server/routers/test_metrics.py,sha256=NSdb_x_1Nwsqgrf6KXBf257qd29CXcSN30yk_BQx2CE,5923
|
|
629
638
|
tests/_internal/server/routers/test_pools.py,sha256=QQ00pqFVUCo1bSfwWcA2UztyI6Fr0bfU1rj_TnEnVG0,25275
|
|
630
639
|
tests/_internal/server/routers/test_projects.py,sha256=Pa_YL9lYhYt06TFmuZFEf9pxc-K3fM9L29ULf4gCELw,23950
|
|
631
640
|
tests/_internal/server/routers/test_repos.py,sha256=4O4mCDlAPh8xJU_XWtwLhFWRkoTxXvZC1N2DLPyz2AI,17225
|
|
632
|
-
tests/_internal/server/routers/test_runs.py,sha256=
|
|
641
|
+
tests/_internal/server/routers/test_runs.py,sha256=bwp0SGzD83IyIYg_nXwGOsG9VUt8G8YRYPhIiJTh48k,71547
|
|
633
642
|
tests/_internal/server/routers/test_server.py,sha256=ROkuRNNJEkMQuK8guZ3Qy3iRRfiWvPIJJJDc09BI0D4,489
|
|
634
643
|
tests/_internal/server/routers/test_users.py,sha256=5QSLvfn9SroGsZoBGmSTEaaqJcdEO8EUUy_YuvLL8ss,12787
|
|
635
644
|
tests/_internal/server/routers/test_volumes.py,sha256=fVv7sVo9POFImal9Mlkaw8CJOAR67S_eYHxIReHebBU,16241
|
|
@@ -637,7 +646,7 @@ tests/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
637
646
|
tests/_internal/server/services/test_config.py,sha256=KfPyYSSsLaQszBAgqYeM2Tt5YkRiV-at0ik86ecdrtE,5168
|
|
638
647
|
tests/_internal/server/services/test_docker.py,sha256=QsnoVJUnvzcd1Tpw0UtKXtDSCr9nh_jmtVSkOi7J4ug,5628
|
|
639
648
|
tests/_internal/server/services/test_fleets.py,sha256=WqK9Bs3Nfew45n4WunZhvIvCw0VHJ2w5t0-4CakxFgU,8222
|
|
640
|
-
tests/_internal/server/services/test_logs.py,sha256=
|
|
649
|
+
tests/_internal/server/services/test_logs.py,sha256=z1t2rKe-egRLfK78sH6SCMB2ULwh3F8XgaB1np6qb88,29754
|
|
641
650
|
tests/_internal/server/services/test_offers.py,sha256=t0nQNjjm-fvIqHIOA_99hokrdTXwpYrgzjaQjqJXs8w,7814
|
|
642
651
|
tests/_internal/server/services/test_pools.py,sha256=aPF4R6_VCeDR4AcjQ0H2J1BKivoVs-JUNQBJZ-IYdPg,7436
|
|
643
652
|
tests/_internal/server/services/test_repos.py,sha256=o2D0xmOPYaiwDq6nNJNtqYMSuSz_xKJ_ZChVOvWIhJY,14289
|
|
@@ -669,9 +678,9 @@ tests/_internal/utils/test_path.py,sha256=rzS-1YCxsFUocBe42dghLOMFNymPruGrA7bqFZ
|
|
|
669
678
|
tests/_internal/utils/test_ssh.py,sha256=V-cBFPhD--9eM9d1uQQgpj2gnYLA3c43f4cX9uJ6E-U,1743
|
|
670
679
|
tests/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
671
680
|
tests/api/test_utils.py,sha256=SSSqHcNE5cZVqDq4n2sKZthRoXaZ_Bx7z1AAN5xTM9s,391
|
|
672
|
-
dstack-0.18.
|
|
673
|
-
dstack-0.18.
|
|
674
|
-
dstack-0.18.
|
|
675
|
-
dstack-0.18.
|
|
676
|
-
dstack-0.18.
|
|
677
|
-
dstack-0.18.
|
|
681
|
+
dstack-0.18.43.dist-info/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
|
|
682
|
+
dstack-0.18.43.dist-info/METADATA,sha256=3xpGQbB7LyD6cW0q9f9y-VqJEzyi_HlhHbtCenaEdng,17769
|
|
683
|
+
dstack-0.18.43.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
684
|
+
dstack-0.18.43.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
|
|
685
|
+
dstack-0.18.43.dist-info/top_level.txt,sha256=3BrIO1zrqxT9P20ymhRM6k15meZXzbPL6ykBlDZG2_k,13
|
|
686
|
+
dstack-0.18.43.dist-info/RECORD,,
|
|
File without changes
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
from dstack._internal.core.backends.base.compute import (
|
|
4
|
+
generate_unique_backend_name,
|
|
5
|
+
generate_unique_gateway_instance_name,
|
|
6
|
+
generate_unique_instance_name,
|
|
7
|
+
generate_unique_volume_name,
|
|
8
|
+
)
|
|
9
|
+
from dstack._internal.server.testing.common import (
|
|
10
|
+
get_gateway_compute_configuration,
|
|
11
|
+
get_instance_configuration,
|
|
12
|
+
get_volume,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TestGenerateUniqueInstanceName:
|
|
17
|
+
def test_generates_name(self):
|
|
18
|
+
configuration = get_instance_configuration(
|
|
19
|
+
project_name="project1", instance_name="my-instance"
|
|
20
|
+
)
|
|
21
|
+
name = generate_unique_instance_name(configuration, 60)
|
|
22
|
+
assert re.match(r"^dstack-project1-my-instance-[a-z0-9]{8}$", name)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class TestGenerateUniqueGatewayInstanceName:
|
|
26
|
+
def test_generates_name(self):
|
|
27
|
+
configuration = get_gateway_compute_configuration(
|
|
28
|
+
project_name="project1", instance_name="my-gateway"
|
|
29
|
+
)
|
|
30
|
+
name = generate_unique_gateway_instance_name(configuration, 60)
|
|
31
|
+
assert re.match(r"^dstack-project1-my-gateway-[a-z0-9]{8}$", name)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class TestGenerateUniqueVolumeName:
|
|
35
|
+
def test_generates_name(self):
|
|
36
|
+
volume = get_volume(project_name="project1", name="my-volume")
|
|
37
|
+
name = generate_unique_volume_name(volume, 60)
|
|
38
|
+
assert re.match(r"^dstack-project1-my-volume-[a-z0-9]{8}$", name)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class TestGenerateUniqueBackendName:
|
|
42
|
+
def test_generates_name_with_project(self):
|
|
43
|
+
name = generate_unique_backend_name("instance", "project", 60)
|
|
44
|
+
assert re.match(r"^dstack-project-instance-[a-z0-9]{8}$", name)
|
|
45
|
+
|
|
46
|
+
def test_generates_name_without_project(self):
|
|
47
|
+
name = generate_unique_backend_name("instance", None, 60)
|
|
48
|
+
assert re.match(r"^dstack-instance-[a-z0-9]{8}$", name)
|
|
49
|
+
|
|
50
|
+
def test_truncates_long_names(self):
|
|
51
|
+
name = generate_unique_backend_name("a" * 100, "project", 30)
|
|
52
|
+
assert re.match(r"^dstack-project-aaaaaa-[a-z0-9]{8}$", name)
|
|
53
|
+
|
|
54
|
+
def test_validates_project_name(self):
|
|
55
|
+
name = generate_unique_backend_name("instance", "invalid_project!@", 60)
|
|
56
|
+
assert re.match(r"^dstack-instance-[a-z0-9]{8}$", name)
|
|
@@ -335,7 +335,7 @@ class TestProcessRunningJobs:
|
|
|
335
335
|
name="test-run-0-0",
|
|
336
336
|
registry_username="",
|
|
337
337
|
registry_password="",
|
|
338
|
-
image_name="dstackai/base:py3.13-0.
|
|
338
|
+
image_name="dstackai/base:py3.13-0.7-cuda-12.1",
|
|
339
339
|
container_user="root",
|
|
340
340
|
privileged=privileged,
|
|
341
341
|
gpu=None,
|
|
@@ -8,6 +8,7 @@ from dstack._internal.server.main import app
|
|
|
8
8
|
from dstack._internal.server.services import encryption as encryption # import for side-effect
|
|
9
9
|
from dstack._internal.server.services import logs as logs_services
|
|
10
10
|
from dstack._internal.server.services.docker import ImageConfig, ImageConfigObject
|
|
11
|
+
from dstack._internal.server.services.logs.filelog import FileLogStorage
|
|
11
12
|
from dstack._internal.server.testing.conf import postgres_container, session, test_db # noqa: F401
|
|
12
13
|
|
|
13
14
|
|
|
@@ -18,13 +19,11 @@ def client(event_loop):
|
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
@pytest.fixture
|
|
21
|
-
def test_log_storage(
|
|
22
|
-
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
23
|
-
) -> logs_services.FileLogStorage:
|
|
22
|
+
def test_log_storage(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> FileLogStorage:
|
|
24
23
|
root = tmp_path / "test_logs"
|
|
25
24
|
root.mkdir()
|
|
26
|
-
storage =
|
|
27
|
-
monkeypatch.setattr(logs_services, "
|
|
25
|
+
storage = FileLogStorage(root)
|
|
26
|
+
monkeypatch.setattr(logs_services, "_log_storage", storage)
|
|
28
27
|
return storage
|
|
29
28
|
|
|
30
29
|
|