dstack 0.19.13__py3-none-any.whl → 0.19.14__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.
Potentially problematic release.
This version of dstack might be problematic. Click here for more details.
- dstack/_internal/cli/commands/attach.py +4 -4
- dstack/_internal/cli/services/configurators/run.py +1 -0
- dstack/_internal/cli/utils/run.py +16 -4
- dstack/_internal/core/compatibility/runs.py +6 -0
- dstack/_internal/core/models/projects.py +1 -0
- dstack/_internal/core/models/runs.py +23 -1
- dstack/_internal/server/app.py +45 -0
- dstack/_internal/server/background/tasks/process_running_jobs.py +45 -3
- dstack/_internal/server/background/tasks/process_runs.py +149 -79
- dstack/_internal/server/migrations/versions/35e90e1b0d3e_add_rolling_deployment_fields.py +42 -0
- dstack/_internal/server/migrations/versions/35f732ee4cf5_add_projectmodel_is_public.py +39 -0
- dstack/_internal/server/models.py +4 -0
- dstack/_internal/server/routers/projects.py +4 -3
- dstack/_internal/server/routers/prometheus.py +4 -1
- dstack/_internal/server/schemas/projects.py +1 -0
- dstack/_internal/server/security/permissions.py +36 -0
- dstack/_internal/server/services/jobs/__init__.py +1 -0
- dstack/_internal/server/services/jobs/configurators/base.py +11 -7
- dstack/_internal/server/services/projects.py +54 -1
- dstack/_internal/server/services/runs.py +49 -29
- dstack/_internal/server/services/services/__init__.py +19 -0
- dstack/_internal/server/services/services/autoscalers.py +37 -26
- dstack/_internal/server/statics/index.html +1 -1
- dstack/_internal/server/statics/{main-2066f1f22ddb4557bcde.js → main-0ac1e1583684417ae4d1.js} +26 -24
- dstack/_internal/server/statics/{main-2066f1f22ddb4557bcde.js.map → main-0ac1e1583684417ae4d1.js.map} +1 -1
- dstack/_internal/server/testing/common.py +9 -0
- dstack/_internal/settings.py +3 -0
- dstack/api/_public/runs.py +14 -5
- dstack/api/server/_projects.py +2 -2
- dstack/version.py +2 -2
- {dstack-0.19.13.dist-info → dstack-0.19.14.dist-info}/METADATA +1 -1
- {dstack-0.19.13.dist-info → dstack-0.19.14.dist-info}/RECORD +35 -33
- {dstack-0.19.13.dist-info → dstack-0.19.14.dist-info}/WHEEL +0 -0
- {dstack-0.19.13.dist-info → dstack-0.19.14.dist-info}/entry_points.txt +0 -0
- {dstack-0.19.13.dist-info → dstack-0.19.14.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -140,6 +140,7 @@ async def create_project(
|
|
|
140
140
|
created_at: datetime = datetime(2023, 1, 2, 3, 4, tzinfo=timezone.utc),
|
|
141
141
|
ssh_private_key: str = "",
|
|
142
142
|
ssh_public_key: str = "",
|
|
143
|
+
is_public: bool = False,
|
|
143
144
|
) -> ProjectModel:
|
|
144
145
|
if owner is None:
|
|
145
146
|
owner = await create_user(session=session, name="test_owner")
|
|
@@ -149,6 +150,7 @@ async def create_project(
|
|
|
149
150
|
created_at=created_at,
|
|
150
151
|
ssh_private_key=ssh_private_key,
|
|
151
152
|
ssh_public_key=ssh_public_key,
|
|
153
|
+
is_public=is_public,
|
|
152
154
|
)
|
|
153
155
|
session.add(project)
|
|
154
156
|
await session.commit()
|
|
@@ -263,6 +265,7 @@ async def create_run(
|
|
|
263
265
|
run_id: Optional[UUID] = None,
|
|
264
266
|
deleted: bool = False,
|
|
265
267
|
priority: int = 0,
|
|
268
|
+
deployment_num: int = 0,
|
|
266
269
|
) -> RunModel:
|
|
267
270
|
if run_spec is None:
|
|
268
271
|
run_spec = get_run_spec(
|
|
@@ -284,6 +287,8 @@ async def create_run(
|
|
|
284
287
|
last_processed_at=submitted_at,
|
|
285
288
|
jobs=[],
|
|
286
289
|
priority=priority,
|
|
290
|
+
deployment_num=deployment_num,
|
|
291
|
+
desired_replica_count=1,
|
|
287
292
|
)
|
|
288
293
|
session.add(run)
|
|
289
294
|
await session.commit()
|
|
@@ -303,9 +308,12 @@ async def create_job(
|
|
|
303
308
|
instance: Optional[InstanceModel] = None,
|
|
304
309
|
job_num: int = 0,
|
|
305
310
|
replica_num: int = 0,
|
|
311
|
+
deployment_num: Optional[int] = None,
|
|
306
312
|
instance_assigned: bool = False,
|
|
307
313
|
disconnected_at: Optional[datetime] = None,
|
|
308
314
|
) -> JobModel:
|
|
315
|
+
if deployment_num is None:
|
|
316
|
+
deployment_num = run.deployment_num
|
|
309
317
|
run_spec = RunSpec.parse_raw(run.run_spec)
|
|
310
318
|
job_spec = (await get_job_specs_from_run_spec(run_spec, replica_num=replica_num))[0]
|
|
311
319
|
job_spec.job_num = job_num
|
|
@@ -316,6 +324,7 @@ async def create_job(
|
|
|
316
324
|
job_num=job_num,
|
|
317
325
|
job_name=run.run_name + f"-{job_num}-{replica_num}",
|
|
318
326
|
replica_num=replica_num,
|
|
327
|
+
deployment_num=deployment_num,
|
|
319
328
|
submission_num=submission_num,
|
|
320
329
|
submitted_at=submitted_at,
|
|
321
330
|
last_processed_at=last_processed_at,
|
dstack/_internal/settings.py
CHANGED
|
@@ -14,6 +14,9 @@ DSTACK_USE_LATEST_FROM_BRANCH = os.getenv("DSTACK_USE_LATEST_FROM_BRANCH") is no
|
|
|
14
14
|
|
|
15
15
|
DSTACK_BASE_IMAGE = os.getenv("DSTACK_BASE_IMAGE", "dstackai/base")
|
|
16
16
|
DSTACK_BASE_IMAGE_VERSION = os.getenv("DSTACK_BASE_IMAGE_VERSION", version.base_image)
|
|
17
|
+
DSTACK_BASE_IMAGE_UBUNTU_VERSION = os.getenv(
|
|
18
|
+
"DSTACK_BASE_IMAGE_UBUNTU_VERSION", version.base_image_ubuntu_version
|
|
19
|
+
)
|
|
17
20
|
|
|
18
21
|
|
|
19
22
|
class FeatureFlags:
|
dstack/api/_public/runs.py
CHANGED
|
@@ -31,6 +31,7 @@ from dstack._internal.core.models.resources import ResourcesSpec
|
|
|
31
31
|
from dstack._internal.core.models.runs import (
|
|
32
32
|
Job,
|
|
33
33
|
JobSpec,
|
|
34
|
+
JobStatus,
|
|
34
35
|
RunPlan,
|
|
35
36
|
RunSpec,
|
|
36
37
|
RunStatus,
|
|
@@ -184,7 +185,7 @@ class Run(ABC):
|
|
|
184
185
|
self,
|
|
185
186
|
start_time: Optional[datetime] = None,
|
|
186
187
|
diagnose: bool = False,
|
|
187
|
-
replica_num: int =
|
|
188
|
+
replica_num: Optional[int] = None,
|
|
188
189
|
job_num: int = 0,
|
|
189
190
|
) -> Iterable[bytes]:
|
|
190
191
|
"""
|
|
@@ -246,7 +247,7 @@ class Run(ABC):
|
|
|
246
247
|
ssh_identity_file: Optional[PathLike] = None,
|
|
247
248
|
bind_address: Optional[str] = None,
|
|
248
249
|
ports_overrides: Optional[List[PortMapping]] = None,
|
|
249
|
-
replica_num: int =
|
|
250
|
+
replica_num: Optional[int] = None,
|
|
250
251
|
job_num: int = 0,
|
|
251
252
|
) -> bool:
|
|
252
253
|
"""
|
|
@@ -254,6 +255,7 @@ class Run(ABC):
|
|
|
254
255
|
|
|
255
256
|
Args:
|
|
256
257
|
ssh_identity_file: SSH keypair to access instances.
|
|
258
|
+
replica_num: replica_num or None to attach to any running replica.
|
|
257
259
|
|
|
258
260
|
Raises:
|
|
259
261
|
dstack.api.PortUsedError: If ports are in use or the run is attached by another process.
|
|
@@ -265,7 +267,9 @@ class Run(ABC):
|
|
|
265
267
|
|
|
266
268
|
job = self._find_job(replica_num=replica_num, job_num=job_num)
|
|
267
269
|
if job is None:
|
|
268
|
-
|
|
270
|
+
replica_repr = replica_num if replica_num is not None else "<any running>"
|
|
271
|
+
raise ClientError(f"Failed to find replica={replica_repr} job={job_num}")
|
|
272
|
+
replica_num = job.job_spec.replica_num
|
|
269
273
|
|
|
270
274
|
name = self.name
|
|
271
275
|
if replica_num != 0 or job_num != 0:
|
|
@@ -358,9 +362,14 @@ class Run(ABC):
|
|
|
358
362
|
self._ssh_attach.detach()
|
|
359
363
|
self._ssh_attach = None
|
|
360
364
|
|
|
361
|
-
def _find_job(self, replica_num: int, job_num: int) -> Optional[Job]:
|
|
365
|
+
def _find_job(self, replica_num: Optional[int], job_num: int) -> Optional[Job]:
|
|
362
366
|
for j in self._run.jobs:
|
|
363
|
-
if
|
|
367
|
+
if (
|
|
368
|
+
replica_num is not None
|
|
369
|
+
and j.job_spec.replica_num == replica_num
|
|
370
|
+
or replica_num is None
|
|
371
|
+
and j.job_submissions[-1].status == JobStatus.RUNNING
|
|
372
|
+
) and j.job_spec.job_num == job_num:
|
|
364
373
|
return j
|
|
365
374
|
return None
|
|
366
375
|
|
dstack/api/server/_projects.py
CHANGED
|
@@ -17,8 +17,8 @@ class ProjectsAPIClient(APIClientGroup):
|
|
|
17
17
|
resp = self._request("/api/projects/list")
|
|
18
18
|
return parse_obj_as(List[Project.__response__], resp.json())
|
|
19
19
|
|
|
20
|
-
def create(self, project_name: str) -> Project:
|
|
21
|
-
body = CreateProjectRequest(project_name=project_name)
|
|
20
|
+
def create(self, project_name: str, is_public: bool = False) -> Project:
|
|
21
|
+
body = CreateProjectRequest(project_name=project_name, is_public=is_public)
|
|
22
22
|
resp = self._request("/api/projects/create", body=body.json())
|
|
23
23
|
return parse_obj_as(Project.__response__, resp.json())
|
|
24
24
|
|
dstack/version.py
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
__version__ = "0.19.
|
|
1
|
+
__version__ = "0.19.14"
|
|
2
2
|
__is_release__ = True
|
|
3
|
-
base_image = "0.
|
|
3
|
+
base_image = "0.10" base_image_ubuntu_version = "22.04"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dstack
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.14
|
|
4
4
|
Summary: dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.
|
|
5
5
|
Project-URL: Homepage, https://dstack.ai
|
|
6
6
|
Project-URL: Source, https://github.com/dstackai/dstack
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
dstack/version.py,sha256=
|
|
2
|
+
dstack/version.py,sha256=5jjeQiFOLVRTmnaSY2SFYARcSUDcA012qWbVUCKfsxA,102
|
|
3
3
|
dstack/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
dstack/_internal/compat.py,sha256=bF9U9fTMfL8UVhCouedoUSTYFl7UAOiU0WXrnRoByxw,40
|
|
5
|
-
dstack/_internal/settings.py,sha256=
|
|
5
|
+
dstack/_internal/settings.py,sha256=aB4wf5_ISiTQILZYky2VtAy0BvAP_yD0TxaHxuzYmBA,1075
|
|
6
6
|
dstack/_internal/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
dstack/_internal/cli/main.py,sha256=cuOcaRxeWxO7zYM9dFRe5uc6U_RxEFjzS5sd4-8KkFA,3798
|
|
8
8
|
dstack/_internal/cli/commands/__init__.py,sha256=e8EjD8Ej7Q3_APlxAN7NBwY7dGnW-DR91nH_RgcjBXg,2023
|
|
9
9
|
dstack/_internal/cli/commands/apply.py,sha256=dZH2B3Yr-lB7hs-QeUnvX0FV0Yk2x19dEO5uSFo4098,4909
|
|
10
|
-
dstack/_internal/cli/commands/attach.py,sha256=
|
|
10
|
+
dstack/_internal/cli/commands/attach.py,sha256=AfB7ITXJ59fCzCUwdC6nNDsiAOkAQlLQQyxFxwHdtu8,5118
|
|
11
11
|
dstack/_internal/cli/commands/completion.py,sha256=2gDBYNb9u1JtuvZaAzqEOy0_ZatBvwn0Aq10j138xnA,546
|
|
12
12
|
dstack/_internal/cli/commands/config.py,sha256=cpNCVCklQDW4vcdD9ovtJs6bcDIM1dULOZ6PKx3D39o,3148
|
|
13
13
|
dstack/_internal/cli/commands/delete.py,sha256=agFBwJg8JXy1xp1UplRFLEPbix1bKvt6XvSBKpSPwYI,1418
|
|
@@ -32,14 +32,14 @@ dstack/_internal/cli/services/configurators/__init__.py,sha256=z94VPBFqybP8Zpwy3
|
|
|
32
32
|
dstack/_internal/cli/services/configurators/base.py,sha256=bGfde2zoma28lLE8MUACO4-NKT1CdJJQJoXrzjpz0mQ,3360
|
|
33
33
|
dstack/_internal/cli/services/configurators/fleet.py,sha256=jm4tNH6QQVplLdboCTlvRYUee3nZ0UYb_qLTrvtYVYM,14049
|
|
34
34
|
dstack/_internal/cli/services/configurators/gateway.py,sha256=czB2s89s7IowOmWnpDwWErPAUlW3FvFMizImhrkQiBM,8927
|
|
35
|
-
dstack/_internal/cli/services/configurators/run.py,sha256=
|
|
35
|
+
dstack/_internal/cli/services/configurators/run.py,sha256=7DVTUa69Fhr96AE_y2JXXpea4VQaDZ5c40pB2u_MBGc,25104
|
|
36
36
|
dstack/_internal/cli/services/configurators/volume.py,sha256=riMXLQbgvHIIFwLKdHfad-_0iE9wE3G_rUmXU5P3ZS8,8519
|
|
37
37
|
dstack/_internal/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
38
|
dstack/_internal/cli/utils/common.py,sha256=rfmzqrsgR3rXW3wj0vxDdvrhUUg2aIy4A6E9MZbd55g,1763
|
|
39
39
|
dstack/_internal/cli/utils/fleet.py,sha256=ch-LN1X9boSm-rFLW4mAJRmz0XliLhH0LvKD2DqSt2g,3942
|
|
40
40
|
dstack/_internal/cli/utils/gateway.py,sha256=qMYa1NTAT_O98x2_mSyWDRbiHj5fqt6xUXFh9NIUwAM,1502
|
|
41
41
|
dstack/_internal/cli/utils/rich.py,sha256=Gx1MJU929kMKsbdo9qF7XHARNta2426Ssb-xMLVhwbQ,5710
|
|
42
|
-
dstack/_internal/cli/utils/run.py,sha256=
|
|
42
|
+
dstack/_internal/cli/utils/run.py,sha256=lpndMpsj7BJvOzHkDyW_O8b9EHy-QZo2idwOosJOZOU,9485
|
|
43
43
|
dstack/_internal/cli/utils/updates.py,sha256=pGr5keEmHojnbY0ayjWL4GWTz4ParY6fP85tHpJ11pI,3043
|
|
44
44
|
dstack/_internal/cli/utils/volume.py,sha256=mU9I06dVMFbpjfkefxrZNoSWadKLoib3U14rHudNQN4,1975
|
|
45
45
|
dstack/_internal/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -156,7 +156,7 @@ dstack/_internal/core/backends/vultr/models.py,sha256=TkqK_lW6w5k_7wsoFiKDb6NXuT
|
|
|
156
156
|
dstack/_internal/core/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
157
157
|
dstack/_internal/core/compatibility/fleets.py,sha256=Ndrib4Wtam-az1o2O4unBrSj3MpNwIBfU3Q8uSPNGHc,2674
|
|
158
158
|
dstack/_internal/core/compatibility/gateways.py,sha256=gMAHSyhStn1ij51efEhEpUCZg7y8FPeppNITUctJqyU,1284
|
|
159
|
-
dstack/_internal/core/compatibility/runs.py,sha256=
|
|
159
|
+
dstack/_internal/core/compatibility/runs.py,sha256=6ZgT8Iu6KzBbyoKPWDv5e-cyK7xgWZAZBFGbooGs2oE,6017
|
|
160
160
|
dstack/_internal/core/compatibility/volumes.py,sha256=WVsnAh3pWEkytFWp9irV4QPfkXCH-rfAUOcye7XDoDs,1252
|
|
161
161
|
dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
162
|
dstack/_internal/core/models/common.py,sha256=XWd79dmFGMrdpTcStH5fVmNXCKE0s7FsIorPL0saQ8w,2138
|
|
@@ -170,9 +170,9 @@ dstack/_internal/core/models/logs.py,sha256=Lsmtd_NrnChMjBJahUZpFb1j8Xobix9FHWf1
|
|
|
170
170
|
dstack/_internal/core/models/metrics.py,sha256=Xb8hCXUL-ncQ3PMsErIUAJTe9gwh5jyrQ4UQoZbibsc,269
|
|
171
171
|
dstack/_internal/core/models/placement.py,sha256=WJVq5ENJykyRarQzL2EeYQag_9_jV7VSAtR_xoFvPVM,720
|
|
172
172
|
dstack/_internal/core/models/profiles.py,sha256=SSbslQfKoa6Sg8A_Z26xDNTujGZc51we11G5rlqfBpY,11659
|
|
173
|
-
dstack/_internal/core/models/projects.py,sha256=
|
|
173
|
+
dstack/_internal/core/models/projects.py,sha256=HmmlrvUSSEjfGfX7X5tmGJ-CbKeyGK6shHD5OghDNks,671
|
|
174
174
|
dstack/_internal/core/models/resources.py,sha256=rsf6hAhi5bfSb_Z9VcS3UoEG0G8Ohl6ekyrOStLOAqw,14114
|
|
175
|
-
dstack/_internal/core/models/runs.py,sha256=
|
|
175
|
+
dstack/_internal/core/models/runs.py,sha256=sq3kxtidqKIzNIgauiKoViJVbQ5K6ah6R8JQVoxZVnA,23269
|
|
176
176
|
dstack/_internal/core/models/secrets.py,sha256=IQyemsNpSzqOCB-VlVTuc4gyPFmXXO4mhko0Ur0ey3I,221
|
|
177
177
|
dstack/_internal/core/models/server.py,sha256=Hkc1v2s3KOiwslsWVmhUOAzcSeREoG-HD1SzSX9WUGg,152
|
|
178
178
|
dstack/_internal/core/models/services.py,sha256=2Hpi7j0Q1shaf_0wd0C0044AJAmuYi-D3qx3PH849oI,3076
|
|
@@ -252,11 +252,11 @@ dstack/_internal/proxy/lib/testing/auth.py,sha256=-firWTnis9Eogoi58BURv1S-te4Hf9
|
|
|
252
252
|
dstack/_internal/proxy/lib/testing/common.py,sha256=5e2VYboMqjBnUxkvidaWLoQ-uaBGh_hnURb_VJc38q4,1518
|
|
253
253
|
dstack/_internal/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
254
254
|
dstack/_internal/server/alembic.ini,sha256=rTauBJC8Jxlw76KUygW061OFAGV7GhwAStinlaxoYGY,3166
|
|
255
|
-
dstack/_internal/server/app.py,sha256=
|
|
255
|
+
dstack/_internal/server/app.py,sha256=QU6lzOfZslG4C4Fv58P7M3J5xXly94V2ZpfNYsoW09w,13141
|
|
256
256
|
dstack/_internal/server/db.py,sha256=WjuqmjG3QAZmSMCeUaJ_ynbowlHuNAvYCZO649cTPHc,3210
|
|
257
257
|
dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
|
|
258
258
|
dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
|
|
259
|
-
dstack/_internal/server/models.py,sha256=
|
|
259
|
+
dstack/_internal/server/models.py,sha256=nRLgp9VvyRjGi9hGr9CTn2hCZJfHs3-zrW5nS6iibXc,29941
|
|
260
260
|
dstack/_internal/server/settings.py,sha256=7f2ur03yIElq2y6XvRtWMSOWWycx1jQMqCjksx0lgro,4432
|
|
261
261
|
dstack/_internal/server/background/__init__.py,sha256=8kTbhEHCeXTibsOlHY1HwqIO6gGb4q8fUa2fcDrah1c,3893
|
|
262
262
|
dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -267,8 +267,8 @@ dstack/_internal/server/background/tasks/process_instances.py,sha256=E1NLac4ubiF
|
|
|
267
267
|
dstack/_internal/server/background/tasks/process_metrics.py,sha256=aJPHnmKQE19JVxJVwGFyyK7buUcbp9Smw9CkFO2DPAk,6135
|
|
268
268
|
dstack/_internal/server/background/tasks/process_placement_groups.py,sha256=gJ8Um3Vx-brazHVWdtVXPnov4rwvDr-0Vn1Voq1cYBQ,4108
|
|
269
269
|
dstack/_internal/server/background/tasks/process_prometheus_metrics.py,sha256=9VoGFqdiXcVkCi_NV1VqQdqllDkB0bHIqOHKMIZK1Fg,5183
|
|
270
|
-
dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=
|
|
271
|
-
dstack/_internal/server/background/tasks/process_runs.py,sha256=
|
|
270
|
+
dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=s8vdO2LiBLhStCmZ06lpXUuJKkrQq9BfV7QY7lc0TSo,39264
|
|
271
|
+
dstack/_internal/server/background/tasks/process_runs.py,sha256=jVKkhUic91OaSLoGo1ZDKeZninl0usuJz8l36F8HWPc,20980
|
|
272
272
|
dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=tLLpdtLHN2xC6Ohc6f0we3oevw3pBt0_XrsufaFtIvE,27383
|
|
273
273
|
dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=0Z3Q409RwSxOL_pgK8JktBthjtESEUH3ahwTLsTdYPk,3800
|
|
274
274
|
dstack/_internal/server/background/tasks/process_volumes.py,sha256=206rbT4ICeZtEmqh_94Rry_fgHfFLLaSEX9W-svwFk4,5089
|
|
@@ -289,6 +289,8 @@ dstack/_internal/server/migrations/versions/252d3743b641_.py,sha256=z3mMF3YCEg6u
|
|
|
289
289
|
dstack/_internal/server/migrations/versions/27d3e55759fa_add_pools.py,sha256=yKEQ1OdPZSaO8YxRd986mJjNc9CjeO6SqY5SmL6aGfE,5433
|
|
290
290
|
dstack/_internal/server/migrations/versions/29826f417010_remove_instancemodel_retry_policy.py,sha256=U4mOQAqhsiZnt89DP3VrI9gbDoINzXrGfZBxd2eOCrM,988
|
|
291
291
|
dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py,sha256=GjSwd3Q7oiVX8Q7TTIJ0S3BZyvBE5Dy37JHOgyzhtk0,1007
|
|
292
|
+
dstack/_internal/server/migrations/versions/35e90e1b0d3e_add_rolling_deployment_fields.py,sha256=kcvX3KCZadHDSdEwIm08tlH_2YOXMCIEpPv9yv31lR8,1559
|
|
293
|
+
dstack/_internal/server/migrations/versions/35f732ee4cf5_add_projectmodel_is_public.py,sha256=RJvjqV8c-xhz4j5l0CnJdvY69WI5iFK_OFSo9fOn7DQ,1227
|
|
292
294
|
dstack/_internal/server/migrations/versions/3cf77fb8bcf1_store_repo_clone_url.py,sha256=xLeKpAecepsy_3uszFP6ViDsHRRYmFK-qICKFIGr11s,2494
|
|
293
295
|
dstack/_internal/server/migrations/versions/3dbdce90d0e0_fix_code_uq_constraint.py,sha256=lmQH-X2zhVIFt39jiYwBfNOpo5y0kH07PqHJUG88fNA,995
|
|
294
296
|
dstack/_internal/server/migrations/versions/48ad3ecbaea2_do_not_delete_projects_and_runs.py,sha256=FaVmRi9ocsygGEf5j2XDPaYbdgGl98ykycpFul1GdMw,1453
|
|
@@ -350,8 +352,8 @@ dstack/_internal/server/routers/gateways.py,sha256=K_VG5Dt_2F_cykWjtFj4GBwtm_D3x
|
|
|
350
352
|
dstack/_internal/server/routers/instances.py,sha256=XOogTC9My2Zv0ck37_PbHKoZI-j4QeGrP2sN5wpX7Ow,1579
|
|
351
353
|
dstack/_internal/server/routers/logs.py,sha256=_Euk283LbhlwHibJTKM-7YcpbeQFtWBqMfbOry3PSkU,1159
|
|
352
354
|
dstack/_internal/server/routers/metrics.py,sha256=VFgWhkOvxVFDLlRM_kXHYFylLcfCD6UjXInvcd7H4dY,2314
|
|
353
|
-
dstack/_internal/server/routers/projects.py,sha256=
|
|
354
|
-
dstack/_internal/server/routers/prometheus.py,sha256=
|
|
355
|
+
dstack/_internal/server/routers/projects.py,sha256=MIXqjfx7vY-uS2EPpVqSvAk6oUF6OwSvvujHKavo0Hc,2790
|
|
356
|
+
dstack/_internal/server/routers/prometheus.py,sha256=uKXEDP8jozzK0SdXjiKV1Xc6b0LLWwVm-tMneKWMXcM,1099
|
|
355
357
|
dstack/_internal/server/routers/repos.py,sha256=Si27qslFefmvRBuR2khvuFyjpd88-Hys-pvIbi9YJK0,3943
|
|
356
358
|
dstack/_internal/server/routers/runs.py,sha256=p44c_0bqwG1v5S_qX-HKbap1nmk1F2JVqaIXihjiUfY,5388
|
|
357
359
|
dstack/_internal/server/routers/secrets.py,sha256=50_qJCTYRpnGSlLyS93gqoV17wWewOVmM65PcG1bT_Y,856
|
|
@@ -365,7 +367,7 @@ dstack/_internal/server/schemas/fleets.py,sha256=9JcKe8VQM6p705lsgrp0xO08aTC32R8
|
|
|
365
367
|
dstack/_internal/server/schemas/gateways.py,sha256=wrLQgSFkpxf-pijeyl2UjR8SpQXVshal6pW8wZf73Yk,1142
|
|
366
368
|
dstack/_internal/server/schemas/instances.py,sha256=MedAVbKa_1F9zhdSPrjMmL-Og5Dp0cxxvfApKj29194,431
|
|
367
369
|
dstack/_internal/server/schemas/logs.py,sha256=JGt39fBEFRjHhlGT1jIC6kwQhujxPO8uecjplzjTZXY,402
|
|
368
|
-
dstack/_internal/server/schemas/projects.py,sha256=
|
|
370
|
+
dstack/_internal/server/schemas/projects.py,sha256=clcWvGdufczeh3ZazWME7AEz79MSWZulYDnq1b6PNKk,594
|
|
369
371
|
dstack/_internal/server/schemas/repos.py,sha256=Sit0Tqol79VOMGGp8ncZXLLsZ4INcF-pAA_jwRchYqA,666
|
|
370
372
|
dstack/_internal/server/schemas/runner.py,sha256=CqlP90yvPKaavAqxLOxewIMq3cHeT_NWfR0YO81JfU0,5151
|
|
371
373
|
dstack/_internal/server/schemas/runs.py,sha256=XhlTnn67g4NWVmIJFQdy2yPK_EcnSIYOCCSex0XOIes,1341
|
|
@@ -373,7 +375,7 @@ dstack/_internal/server/schemas/secrets.py,sha256=mfqLSM7PqxVQ-GIWB6RfPRUOvSvvaR
|
|
|
373
375
|
dstack/_internal/server/schemas/users.py,sha256=FuDqwRVe3mOmv497vOZKjI0a_d4Wt2g4ZiCJcyfHEKA,495
|
|
374
376
|
dstack/_internal/server/schemas/volumes.py,sha256=9iwaQLMhA6aj9XmtdU_9jWVhpzNOtFbDByAe-WYfYh0,673
|
|
375
377
|
dstack/_internal/server/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
376
|
-
dstack/_internal/server/security/permissions.py,sha256=
|
|
378
|
+
dstack/_internal/server/security/permissions.py,sha256=xFbvMvAIVJGvTHvAJiRB0poK29IpeNdUXR0kT2ljrDA,5994
|
|
377
379
|
dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
378
380
|
dstack/_internal/server/services/config.py,sha256=yo8njslwfS7_blhbPPhOtzCMyg8N_mmFSw5aPvirSzw,10691
|
|
379
381
|
dstack/_internal/server/services/docker.py,sha256=zAvjFHxIP03Td92NzbGEScz0piLjloE60tQ7vz0AeCA,5328
|
|
@@ -386,11 +388,11 @@ dstack/_internal/server/services/offers.py,sha256=4hhqLzmo14_IY84FSDG59Sib1DrmTA
|
|
|
386
388
|
dstack/_internal/server/services/permissions.py,sha256=l7Ngdelmn65vjw13NcOdaC6lBYMRuSw6FbHzYwdK3nE,1005
|
|
387
389
|
dstack/_internal/server/services/placement.py,sha256=U-7z4kJ6ZyrCXzkDychWoOhniz19ooFwiNI2InoTLls,2420
|
|
388
390
|
dstack/_internal/server/services/plugins.py,sha256=KgBqBUqxjQirRcYNuXVetE4OQj0EPkdC7ccbrNV1WQE,3825
|
|
389
|
-
dstack/_internal/server/services/projects.py,sha256=
|
|
391
|
+
dstack/_internal/server/services/projects.py,sha256=n-J7qgY6nmqDdIaH3Tk0YbC_Hm3UZOBCoV5GBUPAL_Y,16701
|
|
390
392
|
dstack/_internal/server/services/prometheus.py,sha256=xq5G-Q2BJup9lS2F6__0wUVTs-k1Gr3dYclGzo2WoWo,12474
|
|
391
393
|
dstack/_internal/server/services/repos.py,sha256=f9ztN7jz_2gvD9hXF5sJwWDVyG2-NHRfjIdSukowPh8,9342
|
|
392
394
|
dstack/_internal/server/services/resources.py,sha256=VRFOih_cMJdc0c2m9nSGsX8vWAJQV3M6N87aqS_JXfw,699
|
|
393
|
-
dstack/_internal/server/services/runs.py,sha256=
|
|
395
|
+
dstack/_internal/server/services/runs.py,sha256=6sHi7fcYjbrqK3Cbq-Ype6fKRAP_npu1d4gXgZtxR70,39713
|
|
394
396
|
dstack/_internal/server/services/users.py,sha256=W-5xL7zsHNjeG7BBK54RWGvIrBOrw-FF0NcG_z9qhoE,7466
|
|
395
397
|
dstack/_internal/server/services/volumes.py,sha256=vxjFn3ijrvwi9-aXipT0iQgNjgebdwcBRn1mKFL9zAQ,16244
|
|
396
398
|
dstack/_internal/server/services/backends/__init__.py,sha256=Aqo1GoqhZ_FsLEkCcBrvReKSq6E5w4QbBLrDXfGjiKU,13154
|
|
@@ -404,9 +406,9 @@ dstack/_internal/server/services/gateways/__init__.py,sha256=aDTpr45rkaQ2zBHnDQy
|
|
|
404
406
|
dstack/_internal/server/services/gateways/client.py,sha256=XIJX3fGBbZ_AG8qZMTSE8KAB_ojq5YJFa0OXoD_dofg,7493
|
|
405
407
|
dstack/_internal/server/services/gateways/connection.py,sha256=ot3lV85XdmCT45vBWeyj57nLPcLPNm316zu3jMyeWjA,5625
|
|
406
408
|
dstack/_internal/server/services/gateways/pool.py,sha256=0LclTl1tyx-doS78LeaAKjr-SMp98zuwh5f9s06JSd0,1914
|
|
407
|
-
dstack/_internal/server/services/jobs/__init__.py,sha256=
|
|
409
|
+
dstack/_internal/server/services/jobs/__init__.py,sha256=diy01gm7UQWGzkD-gH3YN_frIXzhppxPV3sebCmiAbI,25603
|
|
408
410
|
dstack/_internal/server/services/jobs/configurators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
409
|
-
dstack/_internal/server/services/jobs/configurators/base.py,sha256=
|
|
411
|
+
dstack/_internal/server/services/jobs/configurators/base.py,sha256=mkrbrOCIda8AQ9dzkpIjI4452GYfg3RurKS1sYPE1QU,12266
|
|
410
412
|
dstack/_internal/server/services/jobs/configurators/dev.py,sha256=ufN6Sd8TwIsjQYNZE32fkAqJI7o2zjgoZThbrP-bd7U,2378
|
|
411
413
|
dstack/_internal/server/services/jobs/configurators/service.py,sha256=FOWrLE-6YFSMuGqjOwYTLMV4FuIM5lCMDFjS0l0CoLI,929
|
|
412
414
|
dstack/_internal/server/services/jobs/configurators/task.py,sha256=0-B3oO-61Eq4-mmlLmqJPliFKHhvvIV0tqc12slcQuA,1436
|
|
@@ -430,8 +432,8 @@ dstack/_internal/server/services/proxy/services/service_proxy.py,sha256=4JrSxHqh
|
|
|
430
432
|
dstack/_internal/server/services/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
431
433
|
dstack/_internal/server/services/runner/client.py,sha256=8xcZNdnQPHtXCVS2RdVS2_KDcrCUa1K6cnqcDZsisBU,15653
|
|
432
434
|
dstack/_internal/server/services/runner/ssh.py,sha256=H-X0015ZPwYq5tc31ytFF1uNaUAr9itAsABI2oPJWrk,5017
|
|
433
|
-
dstack/_internal/server/services/services/__init__.py,sha256=
|
|
434
|
-
dstack/_internal/server/services/services/autoscalers.py,sha256=
|
|
435
|
+
dstack/_internal/server/services/services/__init__.py,sha256=tV7-WyhPf2MFtYPO6j4tC5Gtg1iz6RzP_l0Oy8oMrWw,11597
|
|
436
|
+
dstack/_internal/server/services/services/autoscalers.py,sha256=wg3QgfdKcaBdbtyJJlAzeMlicGKQMuRGpMPZKyemK5U,4447
|
|
435
437
|
dstack/_internal/server/services/services/options.py,sha256=BEpZbRY4PKFVkNNWxLtY--QISqBL1_aPPzZYLPpRgvM,2234
|
|
436
438
|
dstack/_internal/server/services/storage/__init__.py,sha256=ZjlLdCQiclM7h_dKJM9HXjMJDKCFOAf3yI4iO6K3HHk,1384
|
|
437
439
|
dstack/_internal/server/services/storage/base.py,sha256=eK6wLny_QmRuTUDXo_WaZ8zdGpqduI0VeCO1n_-Yyxc,589
|
|
@@ -462,9 +464,9 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
|
|
|
462
464
|
dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
|
|
463
465
|
dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
|
|
464
466
|
dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
|
|
465
|
-
dstack/_internal/server/statics/index.html,sha256=
|
|
466
|
-
dstack/_internal/server/statics/main-
|
|
467
|
-
dstack/_internal/server/statics/main-
|
|
467
|
+
dstack/_internal/server/statics/index.html,sha256=RZEf5ld8bD0jUQaSdaTE2A5SppiPKW83GnA3WDhB22c,10468
|
|
468
|
+
dstack/_internal/server/statics/main-0ac1e1583684417ae4d1.js,sha256=5MhxVHWpjhG1yUn1_EuxaqZnTKiyxh7EvT6AewCtZR8,6640162
|
|
469
|
+
dstack/_internal/server/statics/main-0ac1e1583684417ae4d1.js.map,sha256=ichOiyuaMldNYBY7wc5PA7fYilYXbDU-HyRuh8MBO5c,8708636
|
|
468
470
|
dstack/_internal/server/statics/main-f39c418b05fe14772dd8.css,sha256=Rpuq_7-gUuuWprZuHa4xN0Mkk08_65nmPAF4uXzuT8k,1355497
|
|
469
471
|
dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
|
|
470
472
|
dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
|
|
@@ -543,7 +545,7 @@ dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb6414614
|
|
|
543
545
|
dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
|
|
544
546
|
dstack/_internal/server/statics/static/media/theme.3994c817bb7dda191c1c9640dee0bf42.svg,sha256=ZxFFBVZWuRLqmWH4zhwGLNtKjOzHj-5MGJRunFAtu1I,561
|
|
545
547
|
dstack/_internal/server/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
546
|
-
dstack/_internal/server/testing/common.py,sha256=
|
|
548
|
+
dstack/_internal/server/testing/common.py,sha256=KwM6SMDbYNovuKCuU3PUWM0-OTdO175TF8N24BpIhgY,31884
|
|
547
549
|
dstack/_internal/server/testing/conf.py,sha256=-zhujfFjTHNfQDOK-hBck32By11c_kC0OeinB3esQGg,1902
|
|
548
550
|
dstack/_internal/server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
549
551
|
dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBAsR_9D1brrk,1414
|
|
@@ -570,7 +572,7 @@ dstack/api/utils.py,sha256=_la3CRk1vgrPGkInPI1SOr33e8Jvh8ziJC32fjvKnaU,4188
|
|
|
570
572
|
dstack/api/_public/__init__.py,sha256=mbzsdV3nWUJRksc7czX5C0iPT3NA6YRpriQQRiXwIbY,3429
|
|
571
573
|
dstack/api/_public/backends.py,sha256=w_cIUVU3L1tN8VoPH6-ltq-oJewlfXWTiEFXfDvm-1Q,1056
|
|
572
574
|
dstack/api/_public/repos.py,sha256=2ufUtxY8WyPci9tCGYzsnyIFTXNJfTuPzDYvpTydZ6k,6133
|
|
573
|
-
dstack/api/_public/runs.py,sha256=
|
|
575
|
+
dstack/api/_public/runs.py,sha256=lm_Xa7z_dfGQquGntxOcaOmCl7T5eo5T_kNv8QkKW9I,28456
|
|
574
576
|
dstack/api/huggingface/__init__.py,sha256=oIrEij3wttLZ1yrywEGvCMd6zswMQrX5pPjrqdSi0UA,2201
|
|
575
577
|
dstack/api/server/__init__.py,sha256=Zyl1M51tifn4pB150yIsh39N96qUgMjg5XplcElHDxg,6097
|
|
576
578
|
dstack/api/server/_backends.py,sha256=tSvJ4j-yp-S-4IYo7pKHluDaSsx6Xbwo08Ff6Do85fo,1639
|
|
@@ -579,7 +581,7 @@ dstack/api/server/_gateways.py,sha256=2wyoERBl9R-uWtBI0AiRgLFLtNRlagQxlcgOWHkAlh
|
|
|
579
581
|
dstack/api/server/_group.py,sha256=f9a_YvwZ7s1vDTQhOWHLwm3kO84C5R_zXToD4cxAnvY,432
|
|
580
582
|
dstack/api/server/_logs.py,sha256=ng8QvFAIaoVOVChTK6Wuu5BeM6y7gAdx30KEYRsn9xA,500
|
|
581
583
|
dstack/api/server/_metrics.py,sha256=OPb8sLhI_U605sHOPrELgy0_6cNFLJVfpvr-qkEukRM,670
|
|
582
|
-
dstack/api/server/_projects.py,sha256=
|
|
584
|
+
dstack/api/server/_projects.py,sha256=r0v0xlrRLtXCrI3QyjWF3LD2rAQx1F2ON8lCVQ9X5Qk,1486
|
|
583
585
|
dstack/api/server/_repos.py,sha256=bqsKuZWyiNLE8UAdSZrYNtk1J3Gu5MXXnTMIoM9jxpI,1770
|
|
584
586
|
dstack/api/server/_runs.py,sha256=9XjsjH05Q26iagDwv8PZ4PbzG8KfSL1mEOHkem2FZ74,3086
|
|
585
587
|
dstack/api/server/_secrets.py,sha256=VqLfrIcmBJtPxNDRkXTG44H5SWoY788YJapScUukvdY,1576
|
|
@@ -595,8 +597,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
|
595
597
|
dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
|
|
596
598
|
dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
|
|
597
599
|
dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=iv8TmQh959iEUZjCFTzmGnFW8fHukTVpPmD4iBzOfS4,5361
|
|
598
|
-
dstack-0.19.
|
|
599
|
-
dstack-0.19.
|
|
600
|
-
dstack-0.19.
|
|
601
|
-
dstack-0.19.
|
|
602
|
-
dstack-0.19.
|
|
600
|
+
dstack-0.19.14.dist-info/METADATA,sha256=yk01wc_1bSdMLRJjuVno1lqeJN-CSrjHhadOgCgjkyg,20513
|
|
601
|
+
dstack-0.19.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
602
|
+
dstack-0.19.14.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
|
|
603
|
+
dstack-0.19.14.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
|
|
604
|
+
dstack-0.19.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|