dstack 0.19.24__py3-none-any.whl → 0.19.25__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.

Files changed (56) hide show
  1. dstack/_internal/cli/commands/apply.py +14 -2
  2. dstack/_internal/cli/commands/init.py +47 -2
  3. dstack/_internal/cli/commands/offer.py +68 -60
  4. dstack/_internal/cli/services/configurators/run.py +35 -10
  5. dstack/_internal/cli/services/repos.py +6 -24
  6. dstack/_internal/cli/utils/common.py +7 -0
  7. dstack/_internal/cli/utils/gpu.py +210 -0
  8. dstack/_internal/cli/utils/run.py +33 -0
  9. dstack/_internal/core/backends/aws/compute.py +1 -4
  10. dstack/_internal/core/backends/base/compute.py +0 -4
  11. dstack/_internal/core/backends/gcp/compute.py +1 -4
  12. dstack/_internal/core/backends/nebius/compute.py +1 -4
  13. dstack/_internal/core/models/common.py +1 -1
  14. dstack/_internal/core/models/config.py +3 -1
  15. dstack/_internal/core/models/configurations.py +16 -14
  16. dstack/_internal/core/models/fleets.py +2 -2
  17. dstack/_internal/core/models/instances.py +1 -1
  18. dstack/_internal/core/models/profiles.py +2 -2
  19. dstack/_internal/core/models/repos/remote.py +2 -2
  20. dstack/_internal/core/models/resources.py +4 -4
  21. dstack/_internal/core/models/runs.py +1 -1
  22. dstack/_internal/core/services/configs/__init__.py +8 -7
  23. dstack/_internal/proxy/gateway/services/registry.py +2 -0
  24. dstack/_internal/server/app.py +2 -0
  25. dstack/_internal/server/background/tasks/process_fleets.py +10 -2
  26. dstack/_internal/server/background/tasks/process_running_jobs.py +65 -44
  27. dstack/_internal/server/background/tasks/process_runs.py +15 -14
  28. dstack/_internal/server/background/tasks/process_submitted_jobs.py +251 -52
  29. dstack/_internal/server/migrations/versions/3d7f6c2ec000_add_jobmodel_registered.py +28 -0
  30. dstack/_internal/server/migrations/versions/e2d08cd1b8d9_add_jobmodel_fleet.py +41 -0
  31. dstack/_internal/server/models.py +13 -1
  32. dstack/_internal/server/routers/gpus.py +29 -0
  33. dstack/_internal/server/schemas/gateways.py +1 -1
  34. dstack/_internal/server/schemas/gpus.py +66 -0
  35. dstack/_internal/server/services/docker.py +1 -1
  36. dstack/_internal/server/services/gpus.py +390 -0
  37. dstack/_internal/server/services/offers.py +48 -31
  38. dstack/_internal/server/services/probes.py +5 -1
  39. dstack/_internal/server/services/proxy/repo.py +1 -0
  40. dstack/_internal/server/services/runs.py +12 -11
  41. dstack/_internal/server/services/services/__init__.py +60 -41
  42. dstack/_internal/server/statics/index.html +1 -1
  43. dstack/_internal/server/statics/logo-notext.svg +116 -0
  44. dstack/_internal/server/statics/{main-03e818b110e1d5705378.css → main-aec4762350e34d6fbff9.css} +1 -1
  45. dstack/_internal/server/statics/{main-16813e4e1d1c4119eda3.js → main-d151b300fcac3933213d.js} +19 -22
  46. dstack/_internal/server/statics/{main-16813e4e1d1c4119eda3.js.map → main-d151b300fcac3933213d.js.map} +1 -1
  47. dstack/_internal/server/testing/common.py +7 -2
  48. dstack/api/_public/repos.py +8 -7
  49. dstack/api/server/__init__.py +6 -0
  50. dstack/api/server/_gpus.py +22 -0
  51. dstack/version.py +1 -1
  52. {dstack-0.19.24.dist-info → dstack-0.19.25.dist-info}/METADATA +1 -1
  53. {dstack-0.19.24.dist-info → dstack-0.19.25.dist-info}/RECORD +56 -48
  54. {dstack-0.19.24.dist-info → dstack-0.19.25.dist-info}/WHEEL +0 -0
  55. {dstack-0.19.24.dist-info → dstack-0.19.25.dist-info}/entry_points.txt +0 -0
  56. {dstack-0.19.24.dist-info → dstack-0.19.25.dist-info}/licenses/LICENSE.md +0 -0
@@ -258,8 +258,8 @@ async def create_file_archive(
258
258
 
259
259
 
260
260
  def get_run_spec(
261
- run_name: str,
262
261
  repo_id: str,
262
+ run_name: str = "test-run",
263
263
  configuration_path: str = "dstack.yaml",
264
264
  profile: Union[Profile, Callable[[], Profile], None] = lambda: Profile(name="default"),
265
265
  configuration: Optional[AnyRunConfiguration] = None,
@@ -330,6 +330,7 @@ async def create_run(
330
330
  async def create_job(
331
331
  session: AsyncSession,
332
332
  run: RunModel,
333
+ fleet: Optional[FleetModel] = None,
333
334
  submission_num: int = 0,
334
335
  status: JobStatus = JobStatus.SUBMITTED,
335
336
  submitted_at: datetime = datetime(2023, 1, 2, 3, 4, tzinfo=timezone.utc),
@@ -343,6 +344,7 @@ async def create_job(
343
344
  deployment_num: Optional[int] = None,
344
345
  instance_assigned: bool = False,
345
346
  disconnected_at: Optional[datetime] = None,
347
+ registered: bool = False,
346
348
  ) -> JobModel:
347
349
  if deployment_num is None:
348
350
  deployment_num = run.deployment_num
@@ -353,6 +355,7 @@ async def create_job(
353
355
  job_spec.job_num = job_num
354
356
  job = JobModel(
355
357
  project_id=run.project_id,
358
+ fleet=fleet,
356
359
  run_id=run.id,
357
360
  run_name=run.run_name,
358
361
  job_num=job_num,
@@ -372,6 +375,7 @@ async def create_job(
372
375
  used_instance_id=instance.id if instance is not None else None,
373
376
  disconnected_at=disconnected_at,
374
377
  probes=[],
378
+ registered=registered,
375
379
  )
376
380
  session.add(job)
377
381
  await session.commit()
@@ -733,6 +737,7 @@ def get_instance_offer_with_availability(
733
737
  availability_zones: Optional[List[str]] = None,
734
738
  price: float = 1.0,
735
739
  instance_type: str = "instance",
740
+ availability: InstanceAvailability = InstanceAvailability.AVAILABLE,
736
741
  ):
737
742
  gpus = [
738
743
  Gpu(
@@ -756,7 +761,7 @@ def get_instance_offer_with_availability(
756
761
  ),
757
762
  region=region,
758
763
  price=price,
759
- availability=InstanceAvailability.AVAILABLE,
764
+ availability=availability,
760
765
  availability_zones=availability_zones,
761
766
  blocks=blocks,
762
767
  total_blocks=total_blocks,
@@ -112,27 +112,28 @@ class RepoCollection:
112
112
  " Run `dstack init` to initialize the current directory as a repo or specify `--repo`."
113
113
  )
114
114
  repo = load_repo(repo_config)
115
- try:
116
- self._api_client.repos.get(self._project, repo.repo_id, include_creds=False)
117
- except ResourceNotExistsError:
115
+ if not self.is_initialized(repo):
118
116
  raise ConfigurationError(
119
117
  "The repo is not initialized."
120
118
  " Run `dstack init` to initialize the current directory as a repo or specify `--repo`."
121
119
  )
122
120
  else:
123
121
  logger.debug("Initializing repo")
124
- repo = LocalRepo(repo_dir=repo_dir) # default
125
- if not local:
122
+ if local:
123
+ repo = LocalRepo(repo_dir=repo_dir)
124
+ else:
126
125
  try:
127
126
  repo = RemoteRepo.from_dir(repo_dir)
128
127
  except InvalidGitRepositoryError:
129
- pass # use default
128
+ raise ConfigurationError(
129
+ f"Git repo not found: {repo_dir}. Use `files` to mount an arbitrary"
130
+ " directory: https://dstack.ai/docs/concepts/tasks/#files"
131
+ )
130
132
  self.init(repo, git_identity_file, oauth_token)
131
133
  config.save_repo_config(
132
134
  repo.get_repo_dir_or_error(),
133
135
  repo.repo_id,
134
136
  RepoType(repo.run_repo_data.repo_type),
135
- get_ssh_keypair(None, config.dstack_key_path),
136
137
  )
137
138
  return repo
138
139
 
@@ -17,6 +17,7 @@ from dstack.api.server._backends import BackendsAPIClient
17
17
  from dstack.api.server._files import FilesAPIClient
18
18
  from dstack.api.server._fleets import FleetsAPIClient
19
19
  from dstack.api.server._gateways import GatewaysAPIClient
20
+ from dstack.api.server._gpus import GpusAPIClient
20
21
  from dstack.api.server._logs import LogsAPIClient
21
22
  from dstack.api.server._metrics import MetricsAPIClient
22
23
  from dstack.api.server._projects import ProjectsAPIClient
@@ -44,6 +45,7 @@ class APIClient:
44
45
  backends: operations with backends
45
46
  fleets: operations with fleets
46
47
  runs: operations with runs
48
+ gpus: operations with GPUs
47
49
  metrics: operations with metrics
48
50
  logs: operations with logs
49
51
  gateways: operations with gateways
@@ -93,6 +95,10 @@ class APIClient:
93
95
  def runs(self) -> RunsAPIClient:
94
96
  return RunsAPIClient(self._request)
95
97
 
98
+ @property
99
+ def gpus(self) -> GpusAPIClient:
100
+ return GpusAPIClient(self._request)
101
+
96
102
  @property
97
103
  def metrics(self) -> MetricsAPIClient:
98
104
  return MetricsAPIClient(self._request)
@@ -0,0 +1,22 @@
1
+ from typing import List, Optional
2
+
3
+ from pydantic import parse_obj_as
4
+
5
+ from dstack._internal.core.models.runs import RunSpec
6
+ from dstack._internal.server.schemas.gpus import GpuGroup, ListGpusRequest, ListGpusResponse
7
+ from dstack.api.server._group import APIClientGroup
8
+
9
+
10
+ class GpusAPIClient(APIClientGroup):
11
+ def list_gpus(
12
+ self,
13
+ project_name: str,
14
+ run_spec: RunSpec,
15
+ group_by: Optional[List[str]] = None,
16
+ ) -> List[GpuGroup]:
17
+ body = ListGpusRequest(run_spec=run_spec, group_by=group_by)
18
+ resp = self._request(
19
+ f"/api/project/{project_name}/gpus/list",
20
+ body=body.json(),
21
+ )
22
+ return parse_obj_as(ListGpusResponse, resp.json()).gpus
dstack/version.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.19.24"
1
+ __version__ = "0.19.25"
2
2
  __is_release__ = True
3
3
  base_image = "0.10"
4
4
  base_image_ubuntu_version = "22.04"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dstack
3
- Version: 0.19.24
3
+ Version: 0.19.25
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,22 +1,22 @@
1
1
  dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dstack/version.py,sha256=QFXwquc-o99cQF7MSVI2UWDcvzzTFHuhxmaQcO4wZOs,102
2
+ dstack/version.py,sha256=hObt8JXnM-6becod7MN-adUzdXUABpRHOgcyTWSHpXo,102
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=FYtd7tRk17Oc62Kl_3O8NuT5JHb8TKhLThl1TsfjjVs,1390
6
6
  dstack/_internal/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  dstack/_internal/cli/main.py,sha256=-T-TNnwkCaPLOo5gh_WJ8ZruSbBqfdNYWdQ9NbhxgcU,3901
8
8
  dstack/_internal/cli/commands/__init__.py,sha256=e8EjD8Ej7Q3_APlxAN7NBwY7dGnW-DR91nH_RgcjBXg,2023
9
- dstack/_internal/cli/commands/apply.py,sha256=r40TznKpxCekLixL4Bbx17TpTbnUh5jo20te76OPCbM,5183
9
+ dstack/_internal/cli/commands/apply.py,sha256=3tf0YJai0kiZdahlt0_6sQ-6yzpWGsed_OP8HHY7N_k,5646
10
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
14
14
  dstack/_internal/cli/commands/fleet.py,sha256=J0Yi5CAYvIQF_NC4ZBsDYGc3grTOtvaF7sVcobd19Go,4028
15
15
  dstack/_internal/cli/commands/gateway.py,sha256=DcD6P_MvXbSL9aXkLX9hgGYSAzARjgY6RSbrCMzdNcg,6075
16
- dstack/_internal/cli/commands/init.py,sha256=bLhSlViNWtjflB6xNq_PuCR2o2A06h222luh1NeUgVA,1169
16
+ dstack/_internal/cli/commands/init.py,sha256=0goiNgTNWbChfAuILxobOiRVPLpTku6uds8salU-9io,3211
17
17
  dstack/_internal/cli/commands/logs.py,sha256=o8ehPAKM12Xn9thg2jjnYdr7_wKqF-00ziVry8IVVwE,1528
18
18
  dstack/_internal/cli/commands/metrics.py,sha256=ZS_dHD4_YK135J09xKpVTY_3CXzhj8QhDo18Ail9Pas,5862
19
- dstack/_internal/cli/commands/offer.py,sha256=6gem4Wz6WJmHur9-eiC65JwqObrGIAybROCAp5pr59k,4221
19
+ dstack/_internal/cli/commands/offer.py,sha256=Cb0816wWMe6-B0ejmnwbkUBp6a4hqf5K9Ap-eKC1JsQ,4751
20
20
  dstack/_internal/cli/commands/project.py,sha256=V8gJwQWQGvGKQJPUyce_M7Ij_B7bOxYzo2IQgkLLHFE,6151
21
21
  dstack/_internal/cli/commands/ps.py,sha256=5RU4mcL4-FT4PcXktfKb4htCOPqia7mIuVGgfK7x9lY,1894
22
22
  dstack/_internal/cli/commands/secrets.py,sha256=UfwxM3t-6PpuJLEvDxGrnyxv-tkDaS5M2gFPX1PgXxE,3082
@@ -28,19 +28,20 @@ dstack/_internal/cli/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
28
28
  dstack/_internal/cli/services/args.py,sha256=82rnGiYZfqMBIQh76bTXyvyXc85N_WDTTFppZJf8lic,755
29
29
  dstack/_internal/cli/services/completion.py,sha256=ro-XyE6xftdsY4uY-8eIv1tDtEJBQH_-bx9xg1sGDf4,3171
30
30
  dstack/_internal/cli/services/profile.py,sha256=c8qW5LWTxfkdRsGYqMG-lYefQjQ_OG-XvE_KmC4BZZA,5853
31
- dstack/_internal/cli/services/repos.py,sha256=ImJuElGjsR4OQ7dBquy4PCQUbBM4bR4vhyLwMrVBS7k,3307
31
+ dstack/_internal/cli/services/repos.py,sha256=J3xr4CSf70jPi8MGfw06ETKnbkZt6D6d0YRPUYJJF1c,2631
32
32
  dstack/_internal/cli/services/configurators/__init__.py,sha256=7nRXl8qTcqiHkJn1-p61G2bYm5MxFcHuMwDYF2DYU0U,2912
33
33
  dstack/_internal/cli/services/configurators/base.py,sha256=bGfde2zoma28lLE8MUACO4-NKT1CdJJQJoXrzjpz0mQ,3360
34
34
  dstack/_internal/cli/services/configurators/fleet.py,sha256=nAW3wvL6N2icHjM3Q4p3kJsirpF3Nc07WPrmoMcAQ6U,18998
35
35
  dstack/_internal/cli/services/configurators/gateway.py,sha256=yfT637T2k8cafM9DO4QLj30aCSVNvsL-uN42-cXqCDo,8952
36
- dstack/_internal/cli/services/configurators/run.py,sha256=W9Pz-Ofr1lCxeKnJRCwqbOoIA5q0ToWREfK-dCRJjSc,27469
36
+ dstack/_internal/cli/services/configurators/run.py,sha256=NHbXXLEYJ_hw1344lapNzoYI3H9H86GuJdUSe0aySGo,28940
37
37
  dstack/_internal/cli/services/configurators/volume.py,sha256=W4Aecv5grw0hxYzoOjBrkxG5OeDn0NrcrC8ODUMfq-A,8544
38
38
  dstack/_internal/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- dstack/_internal/cli/utils/common.py,sha256=saq78R0dHNgiNY_liAMA3A9mFFTGqu-xDSAUCVU5BrM,3214
39
+ dstack/_internal/cli/utils/common.py,sha256=xgq2Rdx6wGS1NLx8FlmkjKrGaNYD428oeBB4VMjvJ5c,3447
40
40
  dstack/_internal/cli/utils/fleet.py,sha256=qgyZnhKSsdx4nWVnzcU30vhwV7dtrwn8C0yNKMQ1H4g,4044
41
41
  dstack/_internal/cli/utils/gateway.py,sha256=qMYa1NTAT_O98x2_mSyWDRbiHj5fqt6xUXFh9NIUwAM,1502
42
+ dstack/_internal/cli/utils/gpu.py,sha256=5LrOFo2bWSNZcyf_vCxhInT1AFYZLbPUvOqJgWP45vM,7688
42
43
  dstack/_internal/cli/utils/rich.py,sha256=Gx1MJU929kMKsbdo9qF7XHARNta2426Ssb-xMLVhwbQ,5710
43
- dstack/_internal/cli/utils/run.py,sha256=YbBVxJYfxVMQm6SPnUkI4tNsXR7tGGvuxtbBs2xCgFI,10654
44
+ dstack/_internal/cli/utils/run.py,sha256=-hZI0q09qnTeUFJF5zkJ4v3NLS2y2mCDrYHjplZs8RA,11789
44
45
  dstack/_internal/cli/utils/secrets.py,sha256=c7an9e8HwB24oiP1q225G1dhWcvCKw4aZtN0rN38_PE,654
45
46
  dstack/_internal/cli/utils/updates.py,sha256=pGr5keEmHojnbY0ayjWL4GWTz4ParY6fP85tHpJ11pI,3043
46
47
  dstack/_internal/cli/utils/volume.py,sha256=mU9I06dVMFbpjfkefxrZNoSWadKLoib3U14rHudNQN4,1975
@@ -54,7 +55,7 @@ dstack/_internal/core/backends/models.py,sha256=WwPVKXCmAXwr3VtyYM9p-HGrF02hk8JG
54
55
  dstack/_internal/core/backends/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
56
  dstack/_internal/core/backends/aws/auth.py,sha256=BAe3HAedoAO42Fbv7YhpODKWlyil8M0PuRJsL-_u_kw,978
56
57
  dstack/_internal/core/backends/aws/backend.py,sha256=pjROH-S9pgrSMm-Eox_ocL7cTU6mIMRxvURq7Vi-2J8,876
57
- dstack/_internal/core/backends/aws/compute.py,sha256=j6a8lJwu3bVNzjNkSQ29Yu6w1WqWlNtcgT9kQQlRyNs,44300
58
+ dstack/_internal/core/backends/aws/compute.py,sha256=wtOPjJRRBbIc8JGvMDZL0kpnxEVpYtwI5ERUnpTyV-U,44203
58
59
  dstack/_internal/core/backends/aws/configurator.py,sha256=gGynfTQW89hUt7acAjVnZnRtCbzhno7l4baCKnBEuQI,7499
59
60
  dstack/_internal/core/backends/aws/models.py,sha256=EUCHXHmZnshe3rwI9UtjilwcUMu1Z7MO4Y4-nlZ_IcA,4404
60
61
  dstack/_internal/core/backends/aws/resources.py,sha256=ccvdQd2H1DuUupdzMtqf86nkrenYPBJb1k3VgHu5Gp4,23610
@@ -68,7 +69,7 @@ dstack/_internal/core/backends/azure/resources.py,sha256=cJWS2Yjxdg-XtjpdBxfVDZa
68
69
  dstack/_internal/core/backends/azure/utils.py,sha256=taHMJq6UHRzUXLUcO2P5VCKy3wJaye2bG-6QdkEPNdY,1741
69
70
  dstack/_internal/core/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
71
  dstack/_internal/core/backends/base/backend.py,sha256=hdFMHED1RMV9GVfLSU0yGhGE-cXlbLvt1coDA885PMM,505
71
- dstack/_internal/core/backends/base/compute.py,sha256=uJijJFRX_37-UlS0DWRGx-jZ3JxQ6jkN1I_5YWUfksE,29583
72
+ dstack/_internal/core/backends/base/compute.py,sha256=FgBD8WAeBXvRdlD57YyqrwFh_ZwgXDCCE8I0goMnUzA,29369
72
73
  dstack/_internal/core/backends/base/configurator.py,sha256=OCv8N2oxcxy3In2zS1PKiCJ0a-COZwxGjBz2FYkQnfg,3807
73
74
  dstack/_internal/core/backends/base/models.py,sha256=Ij0osOl-T-ABsKLoVg2eY81DMkwdWkevAnjXj2QnLXI,532
74
75
  dstack/_internal/core/backends/base/offers.py,sha256=2BARohq0sJk0a9K0Z4OuIbpIQNSSq8ZTzAnO8pCxO4M,6228
@@ -94,7 +95,7 @@ dstack/_internal/core/backends/dstack/models.py,sha256=Jbe0Syez43N5i97TlIc8l-5Vn
94
95
  dstack/_internal/core/backends/gcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
96
  dstack/_internal/core/backends/gcp/auth.py,sha256=VWCn34hapaZ3E0OHCoiAVL97o3s64RF9w85CZ6xdtmk,2235
96
97
  dstack/_internal/core/backends/gcp/backend.py,sha256=OvTv1c7j4LTPCIEtkwD3-q6Eo1QET8xlM8CzbY0hLmI,572
97
- dstack/_internal/core/backends/gcp/compute.py,sha256=csmOXa13Rb3zBOjOHPyUU3lSRGWw6LeEKwtm29YKEog,42448
98
+ dstack/_internal/core/backends/gcp/compute.py,sha256=q8X7EzXgd6ZgU5WK7Yukbdv5Qd8OCI3Sw0u685SKV3M,42351
98
99
  dstack/_internal/core/backends/gcp/configurator.py,sha256=mvI7WMz8cC1YnN-0KFIIEqkfcEBehRJI0WgKnqILjv0,6730
99
100
  dstack/_internal/core/backends/gcp/models.py,sha256=biLA3rlFcoPatAZpKycuIl-8PdnNSAFiDCJjov65_zo,4612
100
101
  dstack/_internal/core/backends/gcp/resources.py,sha256=2jpg24NH4Ov4J4Of1F3DPkwEWkRxEi-x4ZTx8XSNGIQ,16926
@@ -123,7 +124,7 @@ dstack/_internal/core/backends/local/backend.py,sha256=KJuNXUXrg60NhLywnExD1EXH2
123
124
  dstack/_internal/core/backends/local/compute.py,sha256=-FUD8Ii5VTBtygAV1U3k1j10MFdK1whGvrSeRwTk29Y,3788
124
125
  dstack/_internal/core/backends/nebius/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
126
  dstack/_internal/core/backends/nebius/backend.py,sha256=2XqZIbSR8VzlfOnuVklXlDxNmwAkQj7txQN8VXF1j2E,566
126
- dstack/_internal/core/backends/nebius/compute.py,sha256=87etdeEaFjfOITJnPjvf0KYD8IrvNTdYRefwhxWYxZA,14951
127
+ dstack/_internal/core/backends/nebius/compute.py,sha256=xu0Big6akcLihvFvF234i6BYFtDWVgtNwW547INgKVM,14847
127
128
  dstack/_internal/core/backends/nebius/configurator.py,sha256=ML2KCD6Ddxc2f6X1juxqKulUcOjF6uJk20_0Teyi65A,3072
128
129
  dstack/_internal/core/backends/nebius/fabrics.py,sha256=-X-nSPV2pUin2PAYDHGm-j14KPboIFRpLi93PKHUXTM,1616
129
130
  dstack/_internal/core/backends/nebius/models.py,sha256=UudYX32p-ZY-GWR83VEtY5dpZBaWhKXQIfn2nrBCq-4,4245
@@ -173,22 +174,22 @@ dstack/_internal/core/compatibility/logs.py,sha256=keXt3OFKR0CjD_XMsetzRu8yQGCz7
173
174
  dstack/_internal/core/compatibility/runs.py,sha256=i3KiW6BRz6qeWUojMgZjVoyFwqX-TNFNim5aCGNIjac,8368
174
175
  dstack/_internal/core/compatibility/volumes.py,sha256=ofjpVusuc-pq285bGrIh8PAqu0QlAd6NQgU3gfJQIc0,1546
175
176
  dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
- dstack/_internal/core/models/common.py,sha256=RI03rSaxhSigIpqtWDeBZ9_yX6R0-6_wC1bMGqYsTZE,3855
177
- dstack/_internal/core/models/config.py,sha256=JJ7rT7dztzTWCY5TkoyxXxTvG5D4IFYhGe7EzwkLOWQ,581
178
- dstack/_internal/core/models/configurations.py,sha256=DdKRCvFkozwMg26DkS59KQuPyUc9L2yvi_uo9l4ETxk,25330
177
+ dstack/_internal/core/models/common.py,sha256=shjHcamBZ7ivJTLuHUxsL95nv4iT-mCC0tnEk10EHm4,3873
178
+ dstack/_internal/core/models/config.py,sha256=VYfgyWG2kfGhJxkC48vZDCbHahIEnO05mDDagJ5kA6s,787
179
+ dstack/_internal/core/models/configurations.py,sha256=wybEwhesaGbuO3LkLgTRbJzlvNghfrnA9-UFghciW5M,25305
179
180
  dstack/_internal/core/models/envs.py,sha256=yq84YRFBILOy4x3XnGcTgYpbZ69eFTCQPgBCr9Ndov4,4969
180
181
  dstack/_internal/core/models/files.py,sha256=j6hVyOxSXQJTpoz6zh6KXHIs4w4tunCsgQuFMN_m13A,1988
181
- dstack/_internal/core/models/fleets.py,sha256=-zMty_njiIT0dgr89h55Yyb90ONU3YKvszrF48SiEcA,12361
182
+ dstack/_internal/core/models/fleets.py,sha256=XZL5PMt7T9rqPmBwOYWK_XlCEurx6uFR_0kj_ZM2GSI,12397
182
183
  dstack/_internal/core/models/gateways.py,sha256=_O8EWwHWLdgNoWY4P4u71KM-uEr5DDp42LXfyv1qMDI,4054
183
184
  dstack/_internal/core/models/health.py,sha256=Q0Z5pYbW-rD5wLn3-EDre2Q7X6tX7DFaglKz5SDv18U,570
184
- dstack/_internal/core/models/instances.py,sha256=5Ha5dHFx-cVuP7hLcc5QDH9TCjVkWhI8BJB5SEq4JtA,6877
185
+ dstack/_internal/core/models/instances.py,sha256=cILMmY-NaHz3Hnl5pm0BQyAq4LXDe7fYHqLENa0dOGI,6895
185
186
  dstack/_internal/core/models/logs.py,sha256=VOsgEsvUIRNNHivD6OZnPZNC52ioqafv7ccdnFQ1YI8,529
186
187
  dstack/_internal/core/models/metrics.py,sha256=Xb8hCXUL-ncQ3PMsErIUAJTe9gwh5jyrQ4UQoZbibsc,269
187
188
  dstack/_internal/core/models/placement.py,sha256=WJVq5ENJykyRarQzL2EeYQag_9_jV7VSAtR_xoFvPVM,720
188
- dstack/_internal/core/models/profiles.py,sha256=M9PXPaqQsOSOy32OHWwmWUwpdHR-8Ue9tEPJRSdLjKM,12866
189
+ dstack/_internal/core/models/profiles.py,sha256=LeT5TlYIPNvZQZHL4zKJRJrBvntm4Nve9Lek5b038tI,12902
189
190
  dstack/_internal/core/models/projects.py,sha256=HmmlrvUSSEjfGfX7X5tmGJ-CbKeyGK6shHD5OghDNks,671
190
- dstack/_internal/core/models/resources.py,sha256=mUqFwLazN2fUHV3ZOoi1_ZtmtjNUsIqmXYjviM_BERU,14370
191
- dstack/_internal/core/models/runs.py,sha256=qhMUlxKXcCdDpX6ucUERa2Xwx8Zi_1s-rr-CPdAkDF8,21756
191
+ dstack/_internal/core/models/resources.py,sha256=Bq0VbOew_L6kcYtjE84vbgoIJD7_fs0UkGlc3ECHhME,14442
192
+ dstack/_internal/core/models/runs.py,sha256=pSudui6_Rdmx_W-83ynNdpe8zO6vlYN57dCn_-fIxtg,21774
192
193
  dstack/_internal/core/models/secrets.py,sha256=5T4B4eCeZmVQ8t22qYYlm4NUyX7VloiXCJuyDfE92QA,413
193
194
  dstack/_internal/core/models/server.py,sha256=Hkc1v2s3KOiwslsWVmhUOAzcSeREoG-HD1SzSX9WUGg,152
194
195
  dstack/_internal/core/models/services.py,sha256=2Hpi7j0Q1shaf_0wd0C0044AJAmuYi-D3qx3PH849oI,3076
@@ -200,7 +201,7 @@ dstack/_internal/core/models/backends/base.py,sha256=9mD2lgMMo9s1EAAcvfLo7x6RKuq
200
201
  dstack/_internal/core/models/repos/__init__.py,sha256=7Qo1QgJ852LklUuM-mlCNFodp_XrQ4iqV7uRPiX_qm0,885
201
202
  dstack/_internal/core/models/repos/base.py,sha256=nErlSR3AbG9fwDE5vuJK5DIrP8JB3fG8a7mXqosJ9gY,846
202
203
  dstack/_internal/core/models/repos/local.py,sha256=zKnEOyN7hSDQ7EKn8q9aJ3uikiTTtGdGEN_3896HTTc,2913
203
- dstack/_internal/core/models/repos/remote.py,sha256=r50v39KHhoVMfdnIHe58VJEi2Abm-37Y1ttXigdjc9o,11553
204
+ dstack/_internal/core/models/repos/remote.py,sha256=KzzfOJLtuaZZxvNpFj4axDdJGUTKdzE6ZjbmqOUZQfk,11592
204
205
  dstack/_internal/core/models/repos/virtual.py,sha256=8g4hGSQ6Z8oDKoF6cj2souJ2A5vRop5OyFCQ5z84rw4,2582
205
206
  dstack/_internal/core/services/__init__.py,sha256=UVVcj26WYVgo7jHzD07sNRqSOO7zA3QzQv-9LnCDqR4,415
206
207
  dstack/_internal/core/services/api_client.py,sha256=HTQ0fcZciUh-nmfV09hUt__Z4N2zq_R12xAiYXD0Jy0,650
@@ -208,7 +209,7 @@ dstack/_internal/core/services/diff.py,sha256=xtJzlSLIw9pnECpMQTy-a2zcfnSd4Q9qi_
208
209
  dstack/_internal/core/services/logs.py,sha256=7_eJdH4MD-3rVb4A6rIJfjj_p4jzUOCmjRVlPD-UDsg,2166
209
210
  dstack/_internal/core/services/profiles.py,sha256=JfzujgdM7Z_ABPgh2km2byy-Y9xZsdgmAZIKZl2LU2Q,1622
210
211
  dstack/_internal/core/services/repos.py,sha256=j8Jr1AyTBLXTY3UKMJNnpJEU3xvH1DHnxA7YeBRpZ44,5133
211
- dstack/_internal/core/services/configs/__init__.py,sha256=hBFfU1IhkFJ7HZU9JgzBys8i1l_YM-iEKt0JqYd1YiE,5580
212
+ dstack/_internal/core/services/configs/__init__.py,sha256=NzL2rB5CRQpbaPSmqKDO4bqKa1MBGXkQNYT-LB-iT84,5645
212
213
  dstack/_internal/core/services/ssh/__init__.py,sha256=UhgC3Lv3CPSGqSPEQZIKOfLKUlCFnaB0uqPQhfKCFt0,878
213
214
  dstack/_internal/core/services/ssh/attach.py,sha256=6YZ_HaimKrjdLzcDLksGi0_9rlVyLeBgPmmWHC7dYxo,9096
214
215
  dstack/_internal/core/services/ssh/client.py,sha256=FUg74jNOagYR3OKuWMBwNgJWIDwHfYrIMSER8xn92D8,4102
@@ -240,7 +241,7 @@ dstack/_internal/proxy/gateway/schemas/registry.py,sha256=Jpzz86TURuUs4g1vJD16L2
240
241
  dstack/_internal/proxy/gateway/schemas/stats.py,sha256=ZbdbnujlrS0D48ymP8Fxxd7_UeDV36ok0n_Hi1Z6vfQ,275
241
242
  dstack/_internal/proxy/gateway/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
243
  dstack/_internal/proxy/gateway/services/nginx.py,sha256=tGvs0Ci1X0aO8HjaflCgkxEXop0Z7o6euw7ADfCUOro,6149
243
- dstack/_internal/proxy/gateway/services/registry.py,sha256=Gqyri5PaJW79iRYufawS09XHO_q7a1Re3tx2dGjBTfQ,13580
244
+ dstack/_internal/proxy/gateway/services/registry.py,sha256=PUNef-A5AmJirvp0CZaVUjtXzrx-z0k73vMeudn-oMU,13750
244
245
  dstack/_internal/proxy/gateway/services/server_client.py,sha256=KSnpO8iPm5wxQPU0DcW7kqUzwliaQrb3b0K8Jmk8iA0,3630
245
246
  dstack/_internal/proxy/gateway/services/stats.py,sha256=F1LI34oXk_vF3VkWqpRnf_aO2ykECv6_WmBlZVa2jU8,5945
246
247
  dstack/_internal/proxy/gateway/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -268,16 +269,16 @@ dstack/_internal/proxy/lib/testing/auth.py,sha256=-firWTnis9Eogoi58BURv1S-te4Hf9
268
269
  dstack/_internal/proxy/lib/testing/common.py,sha256=5e2VYboMqjBnUxkvidaWLoQ-uaBGh_hnURb_VJc38q4,1518
269
270
  dstack/_internal/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
271
  dstack/_internal/server/alembic.ini,sha256=rTauBJC8Jxlw76KUygW061OFAGV7GhwAStinlaxoYGY,3166
271
- dstack/_internal/server/app.py,sha256=-6ZMmZJK7f9CsziXHM18ySLAIprEHu-f23OVktykZnc,15052
272
+ dstack/_internal/server/app.py,sha256=bTwLlgaGiKIdhtvJ6cCOefoFqRywEm1zDA3xB5vFLTI,15106
272
273
  dstack/_internal/server/db.py,sha256=WjuqmjG3QAZmSMCeUaJ_ynbowlHuNAvYCZO649cTPHc,3210
273
274
  dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
274
275
  dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
275
- dstack/_internal/server/models.py,sha256=t9-M0SslYI8vHbmh889ClC-UI_yqoUH0XQ_xcFDA8mk,33316
276
+ dstack/_internal/server/models.py,sha256=AvE85LoIxQKHd7TNjiSaAsfX-u2778Dd6xlJeQSAZ8U,33902
276
277
  dstack/_internal/server/settings.py,sha256=0gW2TDzRgkpKXrXoljhCT2iOfpjegNzVUAxd6fZjg-k,5784
277
278
  dstack/_internal/server/background/__init__.py,sha256=QftEjgQZffu83sY-F0WL65vRp28FbBEtezfowQYcTv4,5606
278
279
  dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
280
  dstack/_internal/server/background/tasks/common.py,sha256=N7xSXbf2MoBWgbJ1e3AEzYBTf1Gn-pDXYND8Zr_YCJQ,970
280
- dstack/_internal/server/background/tasks/process_fleets.py,sha256=PInDWAcD7c-tSXGb4WzOBmJM4TIoD3Xy6C84kj6p1Zk,3703
281
+ dstack/_internal/server/background/tasks/process_fleets.py,sha256=ufuCGbLXlmYqtNCUSHvu5-mUrDYmxC61zM2dUUWzqjE,3945
281
282
  dstack/_internal/server/background/tasks/process_gateways.py,sha256=Ee8uGE4rKPP7U0I9OpgvIRfO3sNkpp_tdFW0Gh4XYdE,8259
282
283
  dstack/_internal/server/background/tasks/process_idle_volumes.py,sha256=mqnl8wvWaKTYvJMbgFJbOP-bZMRQG2vrhUnaNcyBldE,5223
283
284
  dstack/_internal/server/background/tasks/process_instances.py,sha256=ONcv5iNFW17TFKvcDD5FiQyVwlrQ4MWr1qGR_7whLyQ,45879
@@ -285,9 +286,9 @@ dstack/_internal/server/background/tasks/process_metrics.py,sha256=yKXe9J7m3oleK
285
286
  dstack/_internal/server/background/tasks/process_placement_groups.py,sha256=lgYIzjHG9EITK31yG6uQjlIcSwW5jsP9ZOBBZqW_eNs,4263
286
287
  dstack/_internal/server/background/tasks/process_probes.py,sha256=Mdly2wMKBrMIjlgvr7Dwr8Alc0lmVVm1VUKQo8-xgFw,6454
287
288
  dstack/_internal/server/background/tasks/process_prometheus_metrics.py,sha256=_UZm37FVV4rhdd0So7HtcKbIgrSdAr5Vx-Uen_xizec,5459
288
- dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=c4dXq4HrjWvpjuBXThOo1PHtYn8aVT8qt_P_hroqmQw,44204
289
- dstack/_internal/server/background/tasks/process_runs.py,sha256=iWL3eiFpbhnDo-spFp96QbiiBS_yNZUt0jhuqeshO_Q,24722
290
- dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=9jIB7yMC211yhQLFVtlmw__jGjb7w-7X1fZZ2wa4f4U,28913
289
+ dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=il8OEpEtHQMw-5L3Q087XqmF4QPYO4Tl0Z7sfywiJns,44707
290
+ dstack/_internal/server/background/tasks/process_runs.py,sha256=afB2PJt6D0L8OpZEzXv0mqg92qz5PRp-iq8u8tYJ_TQ,24942
291
+ dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=RFctBR6v8AP99UGEwKSRAsJrS9d0I5oFu1nQ8CM_Aw0,36841
291
292
  dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=4civvAaLPT1R-PopVNkcTNnbn_Na7fIhFL8szYqLHUg,4074
292
293
  dstack/_internal/server/background/tasks/process_volumes.py,sha256=7qNGX3yRoVmx2zUwJ9iTU124lGGBjKL3E8aEwKFX9eg,5208
293
294
  dstack/_internal/server/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -311,6 +312,7 @@ dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py,sha256=GjSwd3Q7oiVX
311
312
  dstack/_internal/server/migrations/versions/35e90e1b0d3e_add_rolling_deployment_fields.py,sha256=xZL_mOJ5uEWJeJcR1RYBXcOmWZsB4dbTu7bcS6lyH8Y,1559
312
313
  dstack/_internal/server/migrations/versions/35f732ee4cf5_add_projectmodel_is_public.py,sha256=RJvjqV8c-xhz4j5l0CnJdvY69WI5iFK_OFSo9fOn7DQ,1227
313
314
  dstack/_internal/server/migrations/versions/3cf77fb8bcf1_store_repo_clone_url.py,sha256=xLeKpAecepsy_3uszFP6ViDsHRRYmFK-qICKFIGr11s,2494
315
+ dstack/_internal/server/migrations/versions/3d7f6c2ec000_add_jobmodel_registered.py,sha256=z57mNUepVtjzlIKNHxIWbFfPn4-Cb2jouiEMoSkxEKM,662
314
316
  dstack/_internal/server/migrations/versions/3dbdce90d0e0_fix_code_uq_constraint.py,sha256=lmQH-X2zhVIFt39jiYwBfNOpo5y0kH07PqHJUG88fNA,995
315
317
  dstack/_internal/server/migrations/versions/48ad3ecbaea2_do_not_delete_projects_and_runs.py,sha256=FaVmRi9ocsygGEf5j2XDPaYbdgGl98ykycpFul1GdMw,1453
316
318
  dstack/_internal/server/migrations/versions/4ae1a5b0e7f1_add_run_list_index.py,sha256=qpzzdCpETXGCVCyhMDFoUviPBFrz585Kg5znYTffha8,862
@@ -364,6 +366,7 @@ dstack/_internal/server/migrations/versions/d5863798bf41_add_volumemodel_last_jo
364
366
  dstack/_internal/server/migrations/versions/d6b11105f659_add_usermodel_active.py,sha256=SK6CKeSBa7k9kibLbo4fOvaJ7rpTn44XIRunjfDoHFA,991
365
367
  dstack/_internal/server/migrations/versions/da574e93fee0_add_jobmodel_volumes_detached_at.py,sha256=mApwpPjCmRfNl68JbpPBXfUqpjDqgIVch8i4fy_789M,1001
366
368
  dstack/_internal/server/migrations/versions/dfffd6a1165c_add_fields_for_gateways_behind_alb.py,sha256=l7gsJ5gRZ04XfIuKQiqGr_cgBFdCf64JxBMfi0XmjlU,1110
369
+ dstack/_internal/server/migrations/versions/e2d08cd1b8d9_add_jobmodel_fleet.py,sha256=mhWJRWLzGoeT5bVGNoQ3GiQQXNa-llWb_jHvjZDAd7M,1142
367
370
  dstack/_internal/server/migrations/versions/e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py,sha256=XAhYoza5xvG6ALFtNJn2H0LK8MMTDoAAV40U0opm1bg,1860
368
371
  dstack/_internal/server/migrations/versions/e6391ca6a264_separate_gateways_from_compute.py,sha256=efWiMgcv9LCrimVC52dvA_sH1nfxtNm5Ywadr_pbW7s,2612
369
372
  dstack/_internal/server/migrations/versions/ea60480f82bb_add_membermodel_member_num.py,sha256=jdUjThL8ELQAiFtODts2pxjo62fn3WEd8w50jp7-e44,825
@@ -376,6 +379,7 @@ dstack/_internal/server/routers/backends.py,sha256=MgAZJV7QezgmoB0UqnEJIUrqYWqOF
376
379
  dstack/_internal/server/routers/files.py,sha256=80FZbrazKYJEPRPQs6ZzRSu6aCG4nB4ERxWaE1Rwid0,2539
377
380
  dstack/_internal/server/routers/fleets.py,sha256=wO8DZdThjY38Sxpb0EyORqKlP0Xp57IotiyuHDIVa_s,5946
378
381
  dstack/_internal/server/routers/gateways.py,sha256=ZZ77Qjv4sHVfsu63RLWf4mKRRSrdJV4l8Bf8fRdnLsI,3471
382
+ dstack/_internal/server/routers/gpus.py,sha256=Jgi3P-8yXN9kbodIPPSSVwv46DZFkxqUeJWhG89f5w8,1144
379
383
  dstack/_internal/server/routers/instances.py,sha256=VwhQ7vANbcluhgq10pPxm2RcR1OlDqUX6rP_OAZ20xU,2710
380
384
  dstack/_internal/server/routers/logs.py,sha256=qvlS_8fqyJe-vOEt420xYj4nc9eMb9ngzclmSiXk7Zs,1233
381
385
  dstack/_internal/server/routers/metrics.py,sha256=iXLbcJuwdi5F-lfkPhl9RzvC2m8FSp1EqaOwa-rb6YY,2426
@@ -392,7 +396,8 @@ dstack/_internal/server/schemas/backends.py,sha256=KC6ZunAW71OCEIE_LnPO-wScJKVFX
392
396
  dstack/_internal/server/schemas/common.py,sha256=FCt3EwntxkykIK8ykKATmJM_gq3X3js-f8Z5tYqdQqA,230
393
397
  dstack/_internal/server/schemas/files.py,sha256=3SW-aMv5eAL5Fs_N3isCSPc6xgjOkRQnA-Nf5UAplFE,120
394
398
  dstack/_internal/server/schemas/fleets.py,sha256=9JcKe8VQM6p705lsgrp0xO08aTC32R88BJah7vZ-LgM,1101
395
- dstack/_internal/server/schemas/gateways.py,sha256=wrLQgSFkpxf-pijeyl2UjR8SpQXVshal6pW8wZf73Yk,1142
399
+ dstack/_internal/server/schemas/gateways.py,sha256=JFKIoC937THftILhpIR-4k_qtflsQcRPlO4OH2v0P6g,1160
400
+ dstack/_internal/server/schemas/gpus.py,sha256=z3Oa5w0KBdTy2gvDIelfnrFz-iZq7qygzK62EKyw2xc,1872
396
401
  dstack/_internal/server/schemas/instances.py,sha256=PQZ34rtCn2AVaoCuTcHOjENSbzVuVbucRPpDdNKoixA,1470
397
402
  dstack/_internal/server/schemas/logs.py,sha256=I4KaPgXiaYLWtovBchUiqK0wk-b7py-yTHKzhPH8tYc,453
398
403
  dstack/_internal/server/schemas/projects.py,sha256=sXm9KMecLYaLemE4rPr8MzvlkHvpwzawmL5GNB87wuY,804
@@ -408,22 +413,23 @@ dstack/_internal/server/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
408
413
  dstack/_internal/server/security/permissions.py,sha256=7lWM9jiNt-6cMms6t5g9Fn0H3B3-MEJ7gDCtL7xZ9Lg,8187
409
414
  dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
410
415
  dstack/_internal/server/services/config.py,sha256=yo8njslwfS7_blhbPPhOtzCMyg8N_mmFSw5aPvirSzw,10691
411
- dstack/_internal/server/services/docker.py,sha256=zAvjFHxIP03Td92NzbGEScz0piLjloE60tQ7vz0AeCA,5328
416
+ dstack/_internal/server/services/docker.py,sha256=FGMf3kE89VZqOfQlz8U625y54T9V134f-LkEQpsfe34,5346
412
417
  dstack/_internal/server/services/files.py,sha256=LJYFRtIJwB-QL-FhIu1408oqVVfa2lPZZlaTuZMo6pw,2847
413
418
  dstack/_internal/server/services/fleets.py,sha256=ugbITHV_KRkFBFKkRIaaRDUcKFzTYEYmtrZsmoa64b8,37146
419
+ dstack/_internal/server/services/gpus.py,sha256=p_PYvzkoeRRKYU7LK7DuYmqzt1dH3MQKKbIOesj3Sh4,14476
414
420
  dstack/_internal/server/services/instances.py,sha256=BPSGMqhlSkP0V9mpRo0ODcZhTPqUmvPdHt-CeECYDsE,22456
415
421
  dstack/_internal/server/services/locking.py,sha256=4y_k8U7X71_lExdaXDSSEfizhfydBXOZKe64zo-1DX8,5224
416
422
  dstack/_internal/server/services/logging.py,sha256=owCEHZ2sdMDtEf7QyV1IgLSRgxCc6rdoXUdrDrwWRPU,661
417
423
  dstack/_internal/server/services/metrics.py,sha256=jKLy1jSCVR_crqVu_CmsOMbvMkucWBandI0SS1LDeRQ,6896
418
- dstack/_internal/server/services/offers.py,sha256=ACfTGW6Nx7RoUwJObsSH22lI_BDDi2ux55PXWZN6els,7746
424
+ dstack/_internal/server/services/offers.py,sha256=ZQ396DZQreNCTa87UffP5xRncQvB7wMZZkWlXNqUnJ8,8238
419
425
  dstack/_internal/server/services/permissions.py,sha256=l7Ngdelmn65vjw13NcOdaC6lBYMRuSw6FbHzYwdK3nE,1005
420
426
  dstack/_internal/server/services/placement.py,sha256=U-7z4kJ6ZyrCXzkDychWoOhniz19ooFwiNI2InoTLls,2420
421
427
  dstack/_internal/server/services/plugins.py,sha256=KgBqBUqxjQirRcYNuXVetE4OQj0EPkdC7ccbrNV1WQE,3825
422
- dstack/_internal/server/services/probes.py,sha256=c--HE7M1lq1L57q-rVNKvql1C2-VFreWixFCJCXxhuE,228
428
+ dstack/_internal/server/services/probes.py,sha256=pdgtkOvBuvneUo4Gysg8_afibTf1wuWnrrcuAnOGBE0,357
423
429
  dstack/_internal/server/services/projects.py,sha256=hNvQB2N3hEXX6AELwuz5IEDE4hanpVIWpBUWVRVVGys,23410
424
430
  dstack/_internal/server/services/repos.py,sha256=ECl1cbpdzhTv1P3Y9IQmoWyHHF8iXFyL4s2drfwRDvg,9352
425
431
  dstack/_internal/server/services/resources.py,sha256=VRFOih_cMJdc0c2m9nSGsX8vWAJQV3M6N87aqS_JXfw,699
426
- dstack/_internal/server/services/runs.py,sha256=pICq7_apffNudk29fYs0DKdu_jrP9CcZRNN_KcbBJIc,47090
432
+ dstack/_internal/server/services/runs.py,sha256=-wh-ZiGYXmUjzNXggsqsmPTnips0BPsa8nAPEBLrl2U,47121
427
433
  dstack/_internal/server/services/secrets.py,sha256=M7RS4X1-DIL0f7m6BBb3PhsrAbxwKUD3_pZEWRfR3sM,5567
428
434
  dstack/_internal/server/services/ssh.py,sha256=MIVUuPffM2Y45qUdapztOBbRdWeyyrgQmuqVVUuRbqU,2812
429
435
  dstack/_internal/server/services/users.py,sha256=L-COF4RjtwYSfnkGQefrSiEU0haTv0o1P2OuUdvMK8E,7378
@@ -460,7 +466,7 @@ dstack/_internal/server/services/prometheus/custom_metrics.py,sha256=xjBuNAbJQtf
460
466
  dstack/_internal/server/services/proxy/__init__.py,sha256=aklmvGaGXISztQft-nH8R98WRU6x_L0Fx3RwVDhwt3g,85
461
467
  dstack/_internal/server/services/proxy/auth.py,sha256=AVhDCnk9KvxJ7Jsd8Xmotl_29V4lNuBw8mQNBhx90Ws,485
462
468
  dstack/_internal/server/services/proxy/deps.py,sha256=u4dHHKBlTgC8Fnnl3onErgE1HGKFwyZTwvq0uT6IdQ4,846
463
- dstack/_internal/server/services/proxy/repo.py,sha256=hGa_cd51XFFgM4yiCVuTdMs5k2FDZ0Rd5jiQ_H0ZJmE,7394
469
+ dstack/_internal/server/services/proxy/repo.py,sha256=3O-L6nttl-2QSPh3B2k-0B2wBWFumBFSkQQDB0wUcq0,7439
464
470
  dstack/_internal/server/services/proxy/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
465
471
  dstack/_internal/server/services/proxy/routers/service_proxy.py,sha256=5oB-SX8f_f32tTs5aJe9ZuMycHAyVTQDO9xJcFmUKCs,1953
466
472
  dstack/_internal/server/services/proxy/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -468,7 +474,7 @@ dstack/_internal/server/services/proxy/services/service_proxy.py,sha256=4JrSxHqh
468
474
  dstack/_internal/server/services/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
469
475
  dstack/_internal/server/services/runner/client.py,sha256=Ozw2hkRlNCSua2vHmbsDerOIyLc9M0h790-rIvKmyME,17440
470
476
  dstack/_internal/server/services/runner/ssh.py,sha256=UdFdyNcFfCyGxMAJa2B1A206yfCplqAoXt31D7mG9c4,5056
471
- dstack/_internal/server/services/services/__init__.py,sha256=X5JEwtiuxyjs0v0SEOh1pUc1Yc_r6PSbqwUjOUZVH5E,11834
477
+ dstack/_internal/server/services/services/__init__.py,sha256=P--lW7M19E548f8gPbYombVib7QPml85JxpUO0qmwoU,12765
472
478
  dstack/_internal/server/services/services/autoscalers.py,sha256=wg3QgfdKcaBdbtyJJlAzeMlicGKQMuRGpMPZKyemK5U,4447
473
479
  dstack/_internal/server/services/services/options.py,sha256=BEpZbRY4PKFVkNNWxLtY--QISqBL1_aPPzZYLPpRgvM,2234
474
480
  dstack/_internal/server/services/storage/__init__.py,sha256=ZjlLdCQiclM7h_dKJM9HXjMJDKCFOAf3yI4iO6K3HHk,1384
@@ -500,10 +506,11 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
500
506
  dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
501
507
  dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
502
508
  dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
503
- dstack/_internal/server/statics/index.html,sha256=_0AQogVSqlMryXZikkLAigOKSmjpLL2rB4zpOAHZ4A8,10468
504
- dstack/_internal/server/statics/main-03e818b110e1d5705378.css,sha256=WreQOro6z_dirzlHFOCFsTWzN2H8h0bMWjrcm-HQCOA,1353840
505
- dstack/_internal/server/statics/main-16813e4e1d1c4119eda3.js,sha256=GE17tCKRprHWY2aHaJOSc7wmGYBw_UpNFIpnOaaHQIY,6401689
506
- dstack/_internal/server/statics/main-16813e4e1d1c4119eda3.js.map,sha256=2ebaBFw5ukFQCJwA_JSoBnqh7muZZ8IZ3_piYpLNTPU,8476498
509
+ dstack/_internal/server/statics/index.html,sha256=-py8KlEvfxueuwrYc9YRe0OyyETkrU0vwlW2PQY07ZU,11071
510
+ dstack/_internal/server/statics/logo-notext.svg,sha256=Oth7XfcAeDJcaPdzNtDaqYuLU7mCB0JqNtxeyWb6Z3c,11231
511
+ dstack/_internal/server/statics/main-aec4762350e34d6fbff9.css,sha256=siDI2FtwN5Iax3O6-EKHbeROGytzFEWMvM8jyRoTcVM,1353840
512
+ dstack/_internal/server/statics/main-d151b300fcac3933213d.js,sha256=MEnX2JndE26t-GRltuoO-L7HqY8QddC8G7fwJ-OPjKk,6403176
513
+ dstack/_internal/server/statics/main-d151b300fcac3933213d.js.map,sha256=EIgrdkMwboFjqppQWO1iCa0Waof3iBoZCgqUr3VpxQQ,8481266
507
514
  dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
508
515
  dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
509
516
  dstack/_internal/server/statics/assets/android-chrome-144x144.png,sha256=tB3V-95O-VVEoawN5V1XFoMQRSK0I6gthraV8bATGaw,23414
@@ -582,7 +589,7 @@ dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb6414614
582
589
  dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
583
590
  dstack/_internal/server/statics/static/media/theme.3994c817bb7dda191c1c9640dee0bf42.svg,sha256=ZxFFBVZWuRLqmWH4zhwGLNtKjOzHj-5MGJRunFAtu1I,561
584
591
  dstack/_internal/server/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
585
- dstack/_internal/server/testing/common.py,sha256=R9GHnaeEQFT3ITTq9cVaoeowcXeSvYCoTShu6JwYvjs,35642
592
+ dstack/_internal/server/testing/common.py,sha256=fNuN9CEHyMmpSuWV6ED1OCL3s6uwSMwsOiq8vgrIP1o,35832
586
593
  dstack/_internal/server/testing/conf.py,sha256=-zhujfFjTHNfQDOK-hBck32By11c_kC0OeinB3esQGg,1902
587
594
  dstack/_internal/server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
588
595
  dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBAsR_9D1brrk,1414
@@ -614,14 +621,15 @@ dstack/api/__init__.py,sha256=7qbG42qEHMyNDFRCz9FgfuimAKws3hV8eMXs6oRgh5c,1607
614
621
  dstack/api/utils.py,sha256=_la3CRk1vgrPGkInPI1SOr33e8Jvh8ziJC32fjvKnaU,4188
615
622
  dstack/api/_public/__init__.py,sha256=mbzsdV3nWUJRksc7czX5C0iPT3NA6YRpriQQRiXwIbY,3429
616
623
  dstack/api/_public/backends.py,sha256=w_cIUVU3L1tN8VoPH6-ltq-oJewlfXWTiEFXfDvm-1Q,1056
617
- dstack/api/_public/repos.py,sha256=2ufUtxY8WyPci9tCGYzsnyIFTXNJfTuPzDYvpTydZ6k,6133
624
+ dstack/api/_public/repos.py,sha256=fjc9fgwXI3_2Ly8wYzlYk1NOPNqzBkKdeXcKKdkVuP4,6174
618
625
  dstack/api/_public/runs.py,sha256=gUGKlVnkORBsgBQWF5swUF4p-z4Dufzepe9OJ-l4nC4,31357
619
626
  dstack/api/huggingface/__init__.py,sha256=oIrEij3wttLZ1yrywEGvCMd6zswMQrX5pPjrqdSi0UA,2201
620
- dstack/api/server/__init__.py,sha256=aSIGTueIRjUzI9Me-0Ul7Yrid4NJ-DtGL0xYj1Hf2Bk,6319
627
+ dstack/api/server/__init__.py,sha256=aGMNDDQwXCqfIMG0OIFmk59HUIGQV6SY2Jlj1RNt6I0,6500
621
628
  dstack/api/server/_backends.py,sha256=tSvJ4j-yp-S-4IYo7pKHluDaSsx6Xbwo08Ff6Do85fo,1639
622
629
  dstack/api/server/_files.py,sha256=iOBHm1CvJiG4TqNx3t5LYOf7w3jff9I15wxYpIAg-r4,780
623
630
  dstack/api/server/_fleets.py,sha256=6Duz5-SF1HI4qIkgdJr8OikzDosYtavJZOEyMwyDu_8,2882
624
631
  dstack/api/server/_gateways.py,sha256=2wyoERBl9R-uWtBI0AiRgLFLtNRlagQxlcgOWHkAlhA,2274
632
+ dstack/api/server/_gpus.py,sha256=GoB4FzPQHDFVHJNWKh6S2vcWlQuhrjWPrGb6MItjthE,723
625
633
  dstack/api/server/_group.py,sha256=f9a_YvwZ7s1vDTQhOWHLwm3kO84C5R_zXToD4cxAnvY,432
626
634
  dstack/api/server/_logs.py,sha256=MOs7P_EX0qhwIodEumXeE2CK3o_5YmUVvkMd8rA_4mk,647
627
635
  dstack/api/server/_metrics.py,sha256=OPb8sLhI_U605sHOPrELgy0_6cNFLJVfpvr-qkEukRM,670
@@ -641,8 +649,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
641
649
  dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
642
650
  dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
643
651
  dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=iv8TmQh959iEUZjCFTzmGnFW8fHukTVpPmD4iBzOfS4,5361
644
- dstack-0.19.24.dist-info/METADATA,sha256=nRtyOnkvQWdzCCfq_HVYQrkZytFTqntIpDYnxufrO9s,20586
645
- dstack-0.19.24.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
646
- dstack-0.19.24.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
647
- dstack-0.19.24.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
648
- dstack-0.19.24.dist-info/RECORD,,
652
+ dstack-0.19.25.dist-info/METADATA,sha256=oQicEO4e5NpPrtbhQbmY7Eo6eEAjW8sa1aSlCSo2HV8,20586
653
+ dstack-0.19.25.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
654
+ dstack-0.19.25.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
655
+ dstack-0.19.25.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
656
+ dstack-0.19.25.dist-info/RECORD,,