dstack 0.19.27__py3-none-any.whl → 0.19.28__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 (44) hide show
  1. dstack/_internal/cli/commands/__init__.py +11 -8
  2. dstack/_internal/cli/commands/apply.py +6 -3
  3. dstack/_internal/cli/commands/completion.py +3 -1
  4. dstack/_internal/cli/commands/config.py +1 -0
  5. dstack/_internal/cli/commands/init.py +2 -2
  6. dstack/_internal/cli/commands/offer.py +1 -1
  7. dstack/_internal/cli/commands/project.py +1 -0
  8. dstack/_internal/cli/commands/server.py +2 -2
  9. dstack/_internal/cli/main.py +1 -1
  10. dstack/_internal/cli/services/configurators/base.py +2 -4
  11. dstack/_internal/cli/services/configurators/fleet.py +4 -5
  12. dstack/_internal/cli/services/configurators/gateway.py +3 -5
  13. dstack/_internal/cli/services/configurators/run.py +51 -27
  14. dstack/_internal/cli/services/configurators/volume.py +3 -5
  15. dstack/_internal/core/compatibility/runs.py +2 -0
  16. dstack/_internal/core/models/common.py +67 -43
  17. dstack/_internal/core/models/configurations.py +88 -62
  18. dstack/_internal/core/models/fleets.py +41 -24
  19. dstack/_internal/core/models/instances.py +5 -5
  20. dstack/_internal/core/models/profiles.py +66 -47
  21. dstack/_internal/core/models/repos/remote.py +21 -16
  22. dstack/_internal/core/models/resources.py +69 -65
  23. dstack/_internal/core/models/runs.py +17 -9
  24. dstack/_internal/server/app.py +5 -0
  25. dstack/_internal/server/background/tasks/process_fleets.py +8 -0
  26. dstack/_internal/server/background/tasks/process_submitted_jobs.py +32 -12
  27. dstack/_internal/server/models.py +6 -5
  28. dstack/_internal/server/schemas/gateways.py +10 -9
  29. dstack/_internal/server/services/backends/handlers.py +2 -0
  30. dstack/_internal/server/services/docker.py +8 -7
  31. dstack/_internal/server/services/projects.py +52 -1
  32. dstack/_internal/server/settings.py +46 -0
  33. dstack/_internal/server/statics/index.html +1 -1
  34. dstack/_internal/server/statics/{main-56191c63d516fd0041c4.css → main-5e0d56245c4bd241ec27.css} +1 -1
  35. dstack/_internal/server/statics/{main-4eecc75fbe64067eb1bc.js → main-a2a16772fbf11a14d191.js} +70 -100
  36. dstack/_internal/server/statics/{main-4eecc75fbe64067eb1bc.js.map → main-a2a16772fbf11a14d191.js.map} +1 -1
  37. dstack/_internal/utils/env.py +85 -11
  38. dstack/version.py +1 -1
  39. {dstack-0.19.27.dist-info → dstack-0.19.28.dist-info}/METADATA +1 -1
  40. {dstack-0.19.27.dist-info → dstack-0.19.28.dist-info}/RECORD +43 -44
  41. dstack/_internal/server/statics/static/media/github.1f7102513534c83a9d8d735d2b8c12a2.svg +0 -3
  42. {dstack-0.19.27.dist-info → dstack-0.19.28.dist-info}/WHEEL +0 -0
  43. {dstack-0.19.27.dist-info → dstack-0.19.28.dist-info}/entry_points.txt +0 -0
  44. {dstack-0.19.27.dist-info → dstack-0.19.28.dist-info}/licenses/LICENSE.md +0 -0
@@ -1,14 +1,88 @@
1
1
  import os
2
+ from collections.abc import Mapping
3
+ from enum import Enum
4
+ from typing import Optional, TypeVar, Union, overload
2
5
 
6
+ _Value = Union[str, int]
7
+ _T = TypeVar("_T", bound=Enum)
3
8
 
4
- def get_bool(name: str, default: bool = False) -> bool:
5
- try:
6
- value = os.environ[name]
7
- except KeyError:
8
- return default
9
- value = value.lower()
10
- if value in ["0", "false", "off"]:
11
- return False
12
- if value in ["1", "true", "on"]:
13
- return True
14
- raise ValueError(f"Invalid bool value: {name}={value}")
9
+
10
+ class Environ:
11
+ def __init__(self, environ: Mapping[str, str]):
12
+ self._environ = environ
13
+
14
+ @overload
15
+ def get_bool(self, name: str, *, default: None = None) -> Optional[bool]: ...
16
+
17
+ @overload
18
+ def get_bool(self, name: str, *, default: bool) -> bool: ...
19
+
20
+ def get_bool(self, name: str, *, default: Optional[bool] = None) -> Optional[bool]:
21
+ try:
22
+ raw_value = self._environ[name]
23
+ except KeyError:
24
+ return default
25
+ value = raw_value.lower()
26
+ if value in ["0", "false", "off"]:
27
+ return False
28
+ if value in ["1", "true", "on"]:
29
+ return True
30
+ raise ValueError(f"Invalid bool value: {name}={raw_value}")
31
+
32
+ @overload
33
+ def get_int(self, name: str, *, default: None = None) -> Optional[int]: ...
34
+
35
+ @overload
36
+ def get_int(self, name: str, *, default: int) -> int: ...
37
+
38
+ def get_int(self, name: str, *, default: Optional[int] = None) -> Optional[int]:
39
+ try:
40
+ raw_value = self._environ[name]
41
+ except KeyError:
42
+ return default
43
+ try:
44
+ return int(raw_value)
45
+ except ValueError as e:
46
+ raise ValueError(f"Invalid int value: {e}: {name}={raw_value}") from e
47
+
48
+ @overload
49
+ def get_enum(
50
+ self,
51
+ name: str,
52
+ enum_cls: type[_T],
53
+ *,
54
+ value_type: Optional[type[_Value]] = None,
55
+ default: None = None,
56
+ ) -> Optional[_T]: ...
57
+
58
+ @overload
59
+ def get_enum(
60
+ self,
61
+ name: str,
62
+ enum_cls: type[_T],
63
+ *,
64
+ value_type: Optional[type[_Value]] = None,
65
+ default: _T,
66
+ ) -> _T: ...
67
+
68
+ def get_enum(
69
+ self,
70
+ name: str,
71
+ enum_cls: type[_T],
72
+ *,
73
+ value_type: Optional[type[_Value]] = None,
74
+ default: Optional[_T] = None,
75
+ ) -> Optional[_T]:
76
+ try:
77
+ raw_value = self._environ[name]
78
+ except KeyError:
79
+ return default
80
+ try:
81
+ if value_type is not None:
82
+ raw_value = value_type(raw_value)
83
+ return enum_cls(raw_value)
84
+ except (ValueError, TypeError) as e:
85
+ raise ValueError(f"Invalid {enum_cls.__name__} value: {e}: {name}={raw_value}") from e
86
+
87
+
88
+ environ = Environ(os.environ)
dstack/version.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.19.27"
1
+ __version__ = "0.19.28"
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.27
3
+ Version: 0.19.28
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,26 +1,26 @@
1
1
  dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dstack/version.py,sha256=JdmtCal_jEhc0A-R9g2AhaeYsnCZ6SBjx91NRhza2Fk,102
2
+ dstack/version.py,sha256=D7GukE1Gm51wYjN8H3JLGrFvyhMFAGdjhKN4kdBymDA,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
- dstack/_internal/cli/main.py,sha256=j86KUq76BcxXPkUw3jdd0UEGXtxsi7iQFTMg2W06Z2I,3873
8
- dstack/_internal/cli/commands/__init__.py,sha256=1LCExJx1aXjaSnFuIgx18v3_ksfZBaasQiR2DLG-ov8,2046
9
- dstack/_internal/cli/commands/apply.py,sha256=z1EuBPtvL_QNHw7R9GkKO4iviiFdPZ90MEV18ZL2jqM,3574
7
+ dstack/_internal/cli/main.py,sha256=AZ4TB025U5wpQq3qH5sk9KkOYZCpxMIKqfaLH_Mv0DU,3876
8
+ dstack/_internal/cli/commands/__init__.py,sha256=aZdSeBeL38BYl_kjkdTHNbsQZiFbpDAHxas01be9CG8,2269
9
+ dstack/_internal/cli/commands/apply.py,sha256=py0ysrUSo8EbwzpHRS3d_vbO3ALxpDFQmscieSoKkjE,3725
10
10
  dstack/_internal/cli/commands/attach.py,sha256=75hojBqYRXj_65eQNvjypuyDy1G1HmajzOHSLe3pOIk,5148
11
- dstack/_internal/cli/commands/completion.py,sha256=k_0t4y68IbGMoVfAsYv-C33IALMZN_79Sh-4e3TExKI,576
12
- dstack/_internal/cli/commands/config.py,sha256=cpNCVCklQDW4vcdD9ovtJs6bcDIM1dULOZ6PKx3D39o,3148
11
+ dstack/_internal/cli/commands/completion.py,sha256=2QVAj-CfyDTMmGEWw_rTOclcey6fHY4xWkeX2kc4juk,613
12
+ dstack/_internal/cli/commands/config.py,sha256=Nt_zCe2kLOMEq3xZo4epv9OyoylgqyEaBgcJHNgnq_s,3179
13
13
  dstack/_internal/cli/commands/delete.py,sha256=D3CwQwOnu5mj0LT6Cs1y09YUT4JnVEWG6_U8MEbMBXs,1478
14
14
  dstack/_internal/cli/commands/fleet.py,sha256=tJsYLCZrDJzno9Wfgo6ewWpGLaM7BbZ7qdtZ4FtYakA,4058
15
15
  dstack/_internal/cli/commands/gateway.py,sha256=L7bcNrFzzw7w0cjbFszhH_u7dEAiK7Rf-XBDd4Ew6-Q,6135
16
- dstack/_internal/cli/commands/init.py,sha256=VEBOdhHuPKnKkiIv93vy-B-3sFD_X4JJtm1V1lDf3M0,4244
16
+ dstack/_internal/cli/commands/init.py,sha256=Q0jmftfa1e_n7NahDVVeC4PlaoRqfkQ98MF--Lax9ws,4228
17
17
  dstack/_internal/cli/commands/logs.py,sha256=IOiRIvC9vpNORMQSOGzVbcXfrWfTq7LAPPSD7E_iK9U,1558
18
18
  dstack/_internal/cli/commands/metrics.py,sha256=T-kXQgARIfWj01ROwiw5te5HeeE2trsPHWetQqhL_qA,5892
19
- dstack/_internal/cli/commands/offer.py,sha256=3TKsFug2RSKmh7A2aX3DH7-E22lPXnZayEwdjWRj-tk,6245
20
- dstack/_internal/cli/commands/project.py,sha256=A9LT_8Z7Esq1NOPy37R6llqTKORSOW9J5_iEbRANoII,6130
19
+ dstack/_internal/cli/commands/offer.py,sha256=sXjhp3_OTafG7QqPcNCvS5AtkgxoQeO4tbsuUIMr95A,6241
20
+ dstack/_internal/cli/commands/project.py,sha256=EyDOg1aK6e1SFZHvURSp73XYFltTxFXXBgXeB_eCsOc,6161
21
21
  dstack/_internal/cli/commands/ps.py,sha256=5RU4mcL4-FT4PcXktfKb4htCOPqia7mIuVGgfK7x9lY,1894
22
22
  dstack/_internal/cli/commands/secrets.py,sha256=Qke4UEGeRP5MfbhKFg4-T07FJEU_3nuCmPIGzQz0nuA,3142
23
- dstack/_internal/cli/commands/server.py,sha256=bHpUHl_slMcC6uJFPwCvOY7-P7G8yq2WC-vEXpSoMio,2851
23
+ dstack/_internal/cli/commands/server.py,sha256=zDHXEDN-9dKtWIIA_zTIlBeUcXR5aHbHuB8UsYfFk7Y,2845
24
24
  dstack/_internal/cli/commands/stats.py,sha256=_CiJPQZuKHUzA1x7CHJP-leth3MmqiQ2-jwojq6G-e8,390
25
25
  dstack/_internal/cli/commands/stop.py,sha256=mnM-x0SkvrYn5zNDnSgbl9-Q7W_zxR_5qOzRsE4phgk,1030
26
26
  dstack/_internal/cli/commands/volume.py,sha256=IlgKXJ2FYNrm0-Jh9KW1Wy56UueHv710x1ZLgCl42iM,3244
@@ -30,11 +30,11 @@ dstack/_internal/cli/services/completion.py,sha256=gjR3i4SIm2AQHvSilOd3la5sWBxJ2
30
30
  dstack/_internal/cli/services/profile.py,sha256=TiNMP_0Xbx9cD22zc8dTHHNIsZeIpavWL41UlT_tGgE,5850
31
31
  dstack/_internal/cli/services/repos.py,sha256=wvb3nHI9yJ0fb-dWf2yihl6zdG1ZRVpKiC0CUz9qL7Y,2100
32
32
  dstack/_internal/cli/services/configurators/__init__.py,sha256=AwbKV85_XH0V8IS8v2Zpgl8vnvVCLMLbMuPyvsZv3mQ,2971
33
- dstack/_internal/cli/services/configurators/base.py,sha256=MuNQ6CxLK57WLG2h2qQ80W8FWm9GGAhv1__5ZdWcZWE,3337
34
- dstack/_internal/cli/services/configurators/fleet.py,sha256=tdw4y92IyyPCwBoYP3mkTx8AqkS39mzmwWwn_HWPC1w,18924
35
- dstack/_internal/cli/services/configurators/gateway.py,sha256=Epxg5naso0BnjQ-rqxQunRCfIRncQ40ZUHpQaMt-Q8s,8870
36
- dstack/_internal/cli/services/configurators/run.py,sha256=ZFblrpJ6h-q1e7VM62ylT22fYUT4z-waXxgzGJ8qk5E,38865
37
- dstack/_internal/cli/services/configurators/volume.py,sha256=toN1QZJI47BNlkoLE39lXYNhlMaw7Mo53vkRs1LhWlo,8461
33
+ dstack/_internal/cli/services/configurators/base.py,sha256=9mabsRsKHY7xFl8yDRM__FOEQvtEYOn_4KeXKzO6-vA,3244
34
+ dstack/_internal/cli/services/configurators/fleet.py,sha256=pPfQmXBdqXHy8QAxGm9yY3Y3vKis-vaKirLrCO84zQA,18827
35
+ dstack/_internal/cli/services/configurators/gateway.py,sha256=B2aEoVhhRZGk25OekR7BT4eAvAgZGAyVOw7DlSuo2jg,8755
36
+ dstack/_internal/cli/services/configurators/run.py,sha256=lD14geWv8WtImrVDa5w9bXmA8JK8xIcTUawBTbbu6ZE,39543
37
+ dstack/_internal/cli/services/configurators/volume.py,sha256=ZeESHttKFERBFysJvSGFC4UXUOLghKlzcilXbL48s-c,8346
38
38
  dstack/_internal/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  dstack/_internal/cli/utils/common.py,sha256=xgq2Rdx6wGS1NLx8FlmkjKrGaNYD428oeBB4VMjvJ5c,3447
40
40
  dstack/_internal/cli/utils/fleet.py,sha256=qgyZnhKSsdx4nWVnzcU30vhwV7dtrwn8C0yNKMQ1H4g,4044
@@ -186,25 +186,25 @@ dstack/_internal/core/compatibility/fleets.py,sha256=jg42A7OmprqATKKt6JpLL1qOQSZ
186
186
  dstack/_internal/core/compatibility/gateways.py,sha256=4h_lfpN9KJFyLTFexq-wlu74Rwpk0anV67v38aJ-SnI,1463
187
187
  dstack/_internal/core/compatibility/gpus.py,sha256=myWVUjaK2S1QuYgRZyMtD8-DPKQTjadSbsnECtfoHHs,575
188
188
  dstack/_internal/core/compatibility/logs.py,sha256=keXt3OFKR0CjD_XMsetzRu8yQGCz7CWBwycuP267L_Q,629
189
- dstack/_internal/core/compatibility/runs.py,sha256=I-9CW-sx01HQXk5jS5_VT4f2tceZpkRodmh3zJS5au0,8772
189
+ dstack/_internal/core/compatibility/runs.py,sha256=kdYvirgXWO2m9Uj_LOadzMUsJSWXtFY6yEdNadNypZs,8869
190
190
  dstack/_internal/core/compatibility/volumes.py,sha256=ofjpVusuc-pq285bGrIh8PAqu0QlAd6NQgU3gfJQIc0,1546
191
191
  dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
- dstack/_internal/core/models/common.py,sha256=TbshwjP_G0Z-JRPCnZ-a5bgwAcOsNfb1_JNMyhOEa4U,3873
192
+ dstack/_internal/core/models/common.py,sha256=QKdZM7L2NepzOPavkkI_q3g6WYCauMTbtZSZwWZVYHE,4704
193
193
  dstack/_internal/core/models/config.py,sha256=VYfgyWG2kfGhJxkC48vZDCbHahIEnO05mDDagJ5kA6s,787
194
- dstack/_internal/core/models/configurations.py,sha256=7i8Ub5djXWZzsszVUzQZqL7pYWorw4tKkgx-9YArZiQ,30782
194
+ dstack/_internal/core/models/configurations.py,sha256=G0MO8iKR1uRQABWuB_biglZQTCqLBK3vhxIKwJKEsTg,30998
195
195
  dstack/_internal/core/models/envs.py,sha256=yq84YRFBILOy4x3XnGcTgYpbZ69eFTCQPgBCr9Ndov4,4969
196
196
  dstack/_internal/core/models/files.py,sha256=CI1AQN07ACot_6RVkG7qLml07Ro0co2hGsAfcTamn3Y,1977
197
- dstack/_internal/core/models/fleets.py,sha256=Df0Ns3MuJoonD8D9fVncUhlmImnoBex96TYxvfe2GVk,14948
197
+ dstack/_internal/core/models/fleets.py,sha256=FXwILyyemijNrhUPgJvgwZlKpjsX7OGbPIHnjg_3iXk,15192
198
198
  dstack/_internal/core/models/gateways.py,sha256=_O8EWwHWLdgNoWY4P4u71KM-uEr5DDp42LXfyv1qMDI,4054
199
199
  dstack/_internal/core/models/health.py,sha256=Q0Z5pYbW-rD5wLn3-EDre2Q7X6tX7DFaglKz5SDv18U,570
200
- dstack/_internal/core/models/instances.py,sha256=cILMmY-NaHz3Hnl5pm0BQyAq4LXDe7fYHqLENa0dOGI,6895
200
+ dstack/_internal/core/models/instances.py,sha256=Gpv46fu3uWO-3f8w1A6rBzU5dYhmO_wWh9s8fvnd9iw,6872
201
201
  dstack/_internal/core/models/logs.py,sha256=VOsgEsvUIRNNHivD6OZnPZNC52ioqafv7ccdnFQ1YI8,529
202
202
  dstack/_internal/core/models/metrics.py,sha256=Xb8hCXUL-ncQ3PMsErIUAJTe9gwh5jyrQ4UQoZbibsc,269
203
203
  dstack/_internal/core/models/placement.py,sha256=WJVq5ENJykyRarQzL2EeYQag_9_jV7VSAtR_xoFvPVM,720
204
- dstack/_internal/core/models/profiles.py,sha256=62LMs6_eGxTs5lNLt5bEAq9RsEwKOKwKWu5fMs5qLnM,13957
204
+ dstack/_internal/core/models/profiles.py,sha256=_ZxSk-rMvzpiUYUZD0EQbrJDy3FVmRUmIUtEgzlVeHo,14217
205
205
  dstack/_internal/core/models/projects.py,sha256=HmmlrvUSSEjfGfX7X5tmGJ-CbKeyGK6shHD5OghDNks,671
206
- dstack/_internal/core/models/resources.py,sha256=ISQeTuzuHSXA5KUgoMCNE9nSoHvfxu3HmjETNPrqCtM,14588
207
- dstack/_internal/core/models/runs.py,sha256=sLvlNXO1qDU79JHOeYS_6T-req6V_QOjEfcW_zutT68,22557
206
+ dstack/_internal/core/models/resources.py,sha256=-dLupzud5BSqxNABBjLVYTCKekbr9_mhaNGD1ZWBjgM,14544
207
+ dstack/_internal/core/models/runs.py,sha256=ehGSyCSx5OAaEqCEd2YvCRiP_uewUeDOHbJGSocu6w0,22609
208
208
  dstack/_internal/core/models/secrets.py,sha256=5T4B4eCeZmVQ8t22qYYlm4NUyX7VloiXCJuyDfE92QA,413
209
209
  dstack/_internal/core/models/server.py,sha256=Hkc1v2s3KOiwslsWVmhUOAzcSeREoG-HD1SzSX9WUGg,152
210
210
  dstack/_internal/core/models/services.py,sha256=2Hpi7j0Q1shaf_0wd0C0044AJAmuYi-D3qx3PH849oI,3076
@@ -216,7 +216,7 @@ dstack/_internal/core/models/backends/base.py,sha256=OVy1zqYVX9C_XZpo2g3SHfKAXOp
216
216
  dstack/_internal/core/models/repos/__init__.py,sha256=7Qo1QgJ852LklUuM-mlCNFodp_XrQ4iqV7uRPiX_qm0,885
217
217
  dstack/_internal/core/models/repos/base.py,sha256=nErlSR3AbG9fwDE5vuJK5DIrP8JB3fG8a7mXqosJ9gY,846
218
218
  dstack/_internal/core/models/repos/local.py,sha256=zKnEOyN7hSDQ7EKn8q9aJ3uikiTTtGdGEN_3896HTTc,2913
219
- dstack/_internal/core/models/repos/remote.py,sha256=KzzfOJLtuaZZxvNpFj4axDdJGUTKdzE6ZjbmqOUZQfk,11592
219
+ dstack/_internal/core/models/repos/remote.py,sha256=Ax1kXrHHyFlTy4nEbzBUQA9xQZEVb05U484ISJC_Gz4,11690
220
220
  dstack/_internal/core/models/repos/virtual.py,sha256=8g4hGSQ6Z8oDKoF6cj2souJ2A5vRop5OyFCQ5z84rw4,2582
221
221
  dstack/_internal/core/services/__init__.py,sha256=UVVcj26WYVgo7jHzD07sNRqSOO7zA3QzQv-9LnCDqR4,415
222
222
  dstack/_internal/core/services/api_client.py,sha256=HTQ0fcZciUh-nmfV09hUt__Z4N2zq_R12xAiYXD0Jy0,650
@@ -284,16 +284,16 @@ dstack/_internal/proxy/lib/testing/auth.py,sha256=-firWTnis9Eogoi58BURv1S-te4Hf9
284
284
  dstack/_internal/proxy/lib/testing/common.py,sha256=5e2VYboMqjBnUxkvidaWLoQ-uaBGh_hnURb_VJc38q4,1518
285
285
  dstack/_internal/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
286
  dstack/_internal/server/alembic.ini,sha256=rTauBJC8Jxlw76KUygW061OFAGV7GhwAStinlaxoYGY,3166
287
- dstack/_internal/server/app.py,sha256=-qkKsnSTtFIFrSXh7POISuJmEgitwmuRLAAJz0DPQh0,15223
287
+ dstack/_internal/server/app.py,sha256=BdjpR_XsTMkNey85ZwTjKd9_KKbtlePnIqy7QQDQdq0,15364
288
288
  dstack/_internal/server/db.py,sha256=NY0-K_7ok2OYLtPMeZ4EHlHK5N2a77uj4aJCVgWO2qE,3245
289
289
  dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
290
290
  dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
291
- dstack/_internal/server/models.py,sha256=f5RUOEebaGpZMfZPfhTi6cr5LkY2CeOIr9ezXYbDCXs,34146
292
- dstack/_internal/server/settings.py,sha256=0gW2TDzRgkpKXrXoljhCT2iOfpjegNzVUAxd6fZjg-k,5784
291
+ dstack/_internal/server/models.py,sha256=mpQYS1hELiopZLlxF8rVMs4K5yF1zGBFnc1DHgE1BBQ,34213
292
+ dstack/_internal/server/settings.py,sha256=7SRzSlTnUPNNjlZH-vpgwbwj95gI-LLtQite8LQnaTU,7418
293
293
  dstack/_internal/server/background/__init__.py,sha256=QftEjgQZffu83sY-F0WL65vRp28FbBEtezfowQYcTv4,5606
294
294
  dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
295
295
  dstack/_internal/server/background/tasks/common.py,sha256=N7xSXbf2MoBWgbJ1e3AEzYBTf1Gn-pDXYND8Zr_YCJQ,970
296
- dstack/_internal/server/background/tasks/process_fleets.py,sha256=bMJtsNPzSpl6n-XP0b5krQbZ6rU6UqmYtFhA4RkOny8,8234
296
+ dstack/_internal/server/background/tasks/process_fleets.py,sha256=b0wECmweaetFv9vSjE1BiOJmlIPlk7O-fmntpdSiWgg,8590
297
297
  dstack/_internal/server/background/tasks/process_gateways.py,sha256=FH9RY3Tfmtw_UctCdYZDIRb2rgtmHdxTg6Oc4IBiDBA,8356
298
298
  dstack/_internal/server/background/tasks/process_idle_volumes.py,sha256=mqnl8wvWaKTYvJMbgFJbOP-bZMRQG2vrhUnaNcyBldE,5223
299
299
  dstack/_internal/server/background/tasks/process_instances.py,sha256=ddBR_r7VwOuDb4zlp9QSQWgoK4XvOi4IGh0dBZkxtUY,44004
@@ -303,7 +303,7 @@ dstack/_internal/server/background/tasks/process_probes.py,sha256=dmug-_rmYiVLLF
303
303
  dstack/_internal/server/background/tasks/process_prometheus_metrics.py,sha256=_UZm37FVV4rhdd0So7HtcKbIgrSdAr5Vx-Uen_xizec,5459
304
304
  dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=ulDrWgwnhosbK0Mtt0yNS4E38QSKXSh6ermNt-3jUTs,44965
305
305
  dstack/_internal/server/background/tasks/process_runs.py,sha256=Cx7Z1B7pZVlvCl-OsIaAiIMFG_aZDdn3nlZeha6k2x4,25041
306
- dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=23q8Il4xw1gAEc2KK6kB195opLlB-umKEDTJrpjAKbg,38109
306
+ dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=jSyJBfuNhfBGWrKlTSO19nOpYq018MSKemUhn2q73dY,39001
307
307
  dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=S7ZSDVMX-N0XMaMgwFa1QG_RAi48BP432s9AqHw4PMM,4066
308
308
  dstack/_internal/server/background/tasks/process_volumes.py,sha256=_fMmkwLYsyX-kpW9pDrZVJvFTZEOPp0gpjyKBMW-zw0,5204
309
309
  dstack/_internal/server/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -412,7 +412,7 @@ dstack/_internal/server/schemas/backends.py,sha256=KC6ZunAW71OCEIE_LnPO-wScJKVFX
412
412
  dstack/_internal/server/schemas/common.py,sha256=FCt3EwntxkykIK8ykKATmJM_gq3X3js-f8Z5tYqdQqA,230
413
413
  dstack/_internal/server/schemas/files.py,sha256=3SW-aMv5eAL5Fs_N3isCSPc6xgjOkRQnA-Nf5UAplFE,120
414
414
  dstack/_internal/server/schemas/fleets.py,sha256=9JcKe8VQM6p705lsgrp0xO08aTC32R88BJah7vZ-LgM,1101
415
- dstack/_internal/server/schemas/gateways.py,sha256=JFKIoC937THftILhpIR-4k_qtflsQcRPlO4OH2v0P6g,1160
415
+ dstack/_internal/server/schemas/gateways.py,sha256=O6RSAcnNYw0t1NI8sQlWsvNfOmEKN2zwfoatbdj5oSA,1224
416
416
  dstack/_internal/server/schemas/gpus.py,sha256=z3Oa5w0KBdTy2gvDIelfnrFz-iZq7qygzK62EKyw2xc,1872
417
417
  dstack/_internal/server/schemas/instances.py,sha256=PQZ34rtCn2AVaoCuTcHOjENSbzVuVbucRPpDdNKoixA,1470
418
418
  dstack/_internal/server/schemas/logs.py,sha256=I4KaPgXiaYLWtovBchUiqK0wk-b7py-yTHKzhPH8tYc,453
@@ -429,7 +429,7 @@ dstack/_internal/server/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
429
429
  dstack/_internal/server/security/permissions.py,sha256=7lWM9jiNt-6cMms6t5g9Fn0H3B3-MEJ7gDCtL7xZ9Lg,8187
430
430
  dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
431
431
  dstack/_internal/server/services/config.py,sha256=yo8njslwfS7_blhbPPhOtzCMyg8N_mmFSw5aPvirSzw,10691
432
- dstack/_internal/server/services/docker.py,sha256=z4apNSdxJrv1ZQ_Mxj-56mzNA39qNZ_uILCdvboGGcg,5400
432
+ dstack/_internal/server/services/docker.py,sha256=DEEUFNYtyus4qDTBC33ujSZxl5wp8iKaKrpF2X-Bk88,5395
433
433
  dstack/_internal/server/services/files.py,sha256=LJYFRtIJwB-QL-FhIu1408oqVVfa2lPZZlaTuZMo6pw,2847
434
434
  dstack/_internal/server/services/fleets.py,sha256=B_LXk_inn0rIOwC6SejQuBgT8_C_e9QdCNN5pXH7Sx0,37095
435
435
  dstack/_internal/server/services/gpus.py,sha256=_CGqUsizWf_Bq-_JYcRkLg_yg4iKpsp-1_1m5MedBr0,14758
@@ -442,7 +442,7 @@ dstack/_internal/server/services/permissions.py,sha256=l7Ngdelmn65vjw13NcOdaC6lB
442
442
  dstack/_internal/server/services/placement.py,sha256=U-7z4kJ6ZyrCXzkDychWoOhniz19ooFwiNI2InoTLls,2420
443
443
  dstack/_internal/server/services/plugins.py,sha256=aOlqfTUiU2aZ5G4DUW2rY4959PqS2r9imo5pfU3NUww,3851
444
444
  dstack/_internal/server/services/probes.py,sha256=pdgtkOvBuvneUo4Gysg8_afibTf1wuWnrrcuAnOGBE0,357
445
- dstack/_internal/server/services/projects.py,sha256=qvbzEpvi52mOGfsLsLTgWGzg8VDNlaIXAvr_Lwx20AA,23334
445
+ dstack/_internal/server/services/projects.py,sha256=P9dKbhFvWZoXr8bOSIsxE9NVSdaoIVXqcNC-0I_8N5w,25144
446
446
  dstack/_internal/server/services/repos.py,sha256=ECl1cbpdzhTv1P3Y9IQmoWyHHF8iXFyL4s2drfwRDvg,9352
447
447
  dstack/_internal/server/services/resources.py,sha256=VRFOih_cMJdc0c2m9nSGsX8vWAJQV3M6N87aqS_JXfw,699
448
448
  dstack/_internal/server/services/runs.py,sha256=-RoBSmcau8n_8rvEH-yuORL7R9OaoO92VkLFFZOwcAk,47686
@@ -451,7 +451,7 @@ dstack/_internal/server/services/ssh.py,sha256=DT7U_8ON8o30-53WlJwjd5kVrKyt4KPgK
451
451
  dstack/_internal/server/services/users.py,sha256=L-COF4RjtwYSfnkGQefrSiEU0haTv0o1P2OuUdvMK8E,7378
452
452
  dstack/_internal/server/services/volumes.py,sha256=DBGIUsysAO7sQ6vb4mjhzO9XLdyQvtNujucxhGnkSsU,16682
453
453
  dstack/_internal/server/services/backends/__init__.py,sha256=dyUBoM39lijFTqrKwBn7Vms9NtTgr4Pz8rpLuXqzft8,13427
454
- dstack/_internal/server/services/backends/handlers.py,sha256=ZCTgyhw6QBcNqM2iNYiLJnRHe70I4rJZbBp5ShJW5_Y,3415
454
+ dstack/_internal/server/services/backends/handlers.py,sha256=Rz4QjqmmDGDzn6QbwxlJvV5oC6pE4PZN3FX0DVqnBHc,3539
455
455
  dstack/_internal/server/services/encryption/__init__.py,sha256=3kCw_cxC3-Un1OIofdW5Gqsm0ZCXXTlGz09cULBx_uc,3155
456
456
  dstack/_internal/server/services/encryption/keys/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
457
457
  dstack/_internal/server/services/encryption/keys/aes.py,sha256=2He1p2_Rg6hnCeLIGJo-Yfdsij7so_338oY49RXuL3Q,2276
@@ -524,11 +524,11 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
524
524
  dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
525
525
  dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
526
526
  dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
527
- dstack/_internal/server/statics/index.html,sha256=xzc8VT4KW7rPfpjT9H7PQgTz61-i4HRlSHqE5GpIjkE,11071
527
+ dstack/_internal/server/statics/index.html,sha256=2niufKXG9irloxCS8quNIuyNl7Iu7gDexROEBo9oKWY,11155
528
528
  dstack/_internal/server/statics/logo-notext.svg,sha256=Oth7XfcAeDJcaPdzNtDaqYuLU7mCB0JqNtxeyWb6Z3c,11231
529
- dstack/_internal/server/statics/main-4eecc75fbe64067eb1bc.js,sha256=_GkzNFsW9RgiB_Xo0aBp0W7x2-VPamJYdCsZD26sDnY,6433171
530
- dstack/_internal/server/statics/main-4eecc75fbe64067eb1bc.js.map,sha256=y1zPoACRaF1vXEOoi-EUB45pVefXO0CeF2G5k675FRo,8534455
531
- dstack/_internal/server/statics/main-56191c63d516fd0041c4.css,sha256=c_4kpUqgyUa7WR2UbLUqrT1qBjj5xNJ0cdKSylL6Msg,1367438
529
+ dstack/_internal/server/statics/main-5e0d56245c4bd241ec27.css,sha256=DO6ju9AdKMsJOdO7an3B-UtNs8OKSf0mmAKtqfVL3EM,1369554
530
+ dstack/_internal/server/statics/main-a2a16772fbf11a14d191.js,sha256=TPgf5tj-jnrdDf1kq_868IG-4GBSfPmaOD4UkKs_8_U,6443886
531
+ dstack/_internal/server/statics/main-a2a16772fbf11a14d191.js.map,sha256=_3RjtLU7gqrqgC4Qku77eJ6PFfHczv5dpYNcQ-a1krg,8561506
532
532
  dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
533
533
  dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
534
534
  dstack/_internal/server/statics/assets/android-chrome-144x144.png,sha256=tB3V-95O-VVEoawN5V1XFoMQRSK0I6gthraV8bATGaw,23414
@@ -601,7 +601,6 @@ dstack/_internal/server/statics/assets/mstile-70x70.png,sha256=Uh-iXux5J5EkcBPRH
601
601
  dstack/_internal/server/statics/assets/yandex-browser-50x50.png,sha256=GGaavXItFc_V5P2G2_MTLFtGDMatissn8YkdBMyGv54,5403
602
602
  dstack/_internal/server/statics/assets/yandex-browser-manifest.json,sha256=wQcuGCfkNsSmCXGg2IwxcwdykLSIx7xL3Y_WtmYYLq0,147
603
603
  dstack/_internal/server/statics/static/media/entraID.d65d1f3e9486a8e56d24fc07b3230885.svg,sha256=_v0ZwN0Yi2FB4XNlplXWZ-jjOtFIFabQTcC2gyPIRE4,1302
604
- dstack/_internal/server/statics/static/media/github.1f7102513534c83a9d8d735d2b8c12a2.svg,sha256=mNW9cuKg4s5dYQv8ZMzPsYyLJgxUg4jYBTape-pIy8c,2179
605
604
  dstack/_internal/server/statics/static/media/google.b194b06fafd0a52aeb566922160ea514.svg,sha256=ft4tBpFOIPNWj-EcXicLUNgDafxFNlIlhtnMy7Zm4Mw,743
606
605
  dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb641461448.svg,sha256=z1mS8Qo_NNRDObJ41uZfbZA0ZieZUVTnROuJjoiQabE,16373
607
606
  dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
@@ -620,7 +619,7 @@ dstack/_internal/utils/common.py,sha256=9PtlJwE7B4F70nL_iP1J4ky33bUeW7r73Np7GYvr
620
619
  dstack/_internal/utils/cron.py,sha256=_axJFBCuZwMXZN04YPSk_gMvrRv6gNiGqd5hITyIg9Y,127
621
620
  dstack/_internal/utils/crypto.py,sha256=2RTSyzePuwwqc1X2HO6lwcSFyZ2kujnqluoICQ2DLJQ,1462
622
621
  dstack/_internal/utils/dxf.py,sha256=wguK9s6-69kqSDZkxd1kFEr6VlH5ixvFRJxizyOuJ8I,3229
623
- dstack/_internal/utils/env.py,sha256=HRbIspHpKHh05fMZeV23-hrZoV6vVMuniefD08u6ey0,357
622
+ dstack/_internal/utils/env.py,sha256=mEtlkO0sBHL-YjnYrlR_jCGcNFehn4IESvDezKkQYYM,2455
624
623
  dstack/_internal/utils/event_loop.py,sha256=DO2ADtWfH2z8F2hBbg_EADSWzleQYGVZ9D1XYDpH-tk,880
625
624
  dstack/_internal/utils/files.py,sha256=3ILdDvPPv2_vSEHRhLI15PG0R03RnO2aq_sWXGWIvm0,2692
626
625
  dstack/_internal/utils/gpu.py,sha256=ZeWpy1nRLVh-FwBZdxbMoVjjCF0DWJlWfNoVgFhGx2w,1776
@@ -667,8 +666,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
667
666
  dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
668
667
  dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
669
668
  dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=h3r3Yc3h22i93fifPTgTm9Oojd1sN1O4DP7ZTV-kWpM,5386
670
- dstack-0.19.27.dist-info/METADATA,sha256=WXnkivc2veHjzVXjHwZ3GnB7EdiGiHQGGcp6K-b5VlY,20586
671
- dstack-0.19.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
672
- dstack-0.19.27.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
673
- dstack-0.19.27.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
674
- dstack-0.19.27.dist-info/RECORD,,
669
+ dstack-0.19.28.dist-info/METADATA,sha256=4lRgfzF2eiWc4vPTkrgGMVDEfso6GWn4jIL9asF-e4E,20586
670
+ dstack-0.19.28.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
671
+ dstack-0.19.28.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
672
+ dstack-0.19.28.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
673
+ dstack-0.19.28.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M7 0.34375C6.125 0.34375 5.27083 0.510417 4.4375 0.84375C3.625 1.17708 2.90625 1.65625 2.28125 2.28125C1.65625 2.90625 1.17708 3.63542 0.84375 4.46875C0.510417 5.28125 0.34375 6.125 0.34375 7C0.34375 8.45833 0.760417 9.77083 1.59375 10.9375C2.44792 12.0833 3.55208 12.8854 4.90625 13.3438C5.05208 13.3646 5.15625 13.3333 5.21875 13.25C5.30208 13.1875 5.34375 13.1042 5.34375 13V11.875C4.57292 12.0417 3.96875 11.9375 3.53125 11.5625C3.30208 11.3958 3.15625 11.1979 3.09375 10.9688C3.01042 10.7396 2.89583 10.5417 2.75 10.375C2.66667 10.25 2.57292 10.1562 2.46875 10.0938L2.34375 10C2.17708 9.875 2.09375 9.78125 2.09375 9.71875C2.09375 9.65625 2.14583 9.625 2.25 9.625L2.40625 9.59375C2.67708 9.61458 2.92708 9.73958 3.15625 9.96875C3.28125 10.0729 3.36458 10.1771 3.40625 10.2812C3.67708 10.7188 4.03125 10.9583 4.46875 11C4.73958 11.0208 5.04167 10.9688 5.375 10.8438C5.41667 10.4479 5.55208 10.1458 5.78125 9.9375C4.86458 9.83333 4.17708 9.58333 3.71875 9.1875C3.07292 8.64583 2.75 7.80208 2.75 6.65625C2.75 5.96875 2.97917 5.375 3.4375 4.875C3.35417 4.6875 3.3125 4.47917 3.3125 4.25C3.27083 3.875 3.33333 3.48958 3.5 3.09375H3.6875C3.85417 3.09375 4.05208 3.13542 4.28125 3.21875C4.61458 3.34375 4.96875 3.53125 5.34375 3.78125C5.86458 3.63542 6.41667 3.5625 7 3.5625C7.58333 3.5625 8.13542 3.63542 8.65625 3.78125C9.19792 3.42708 9.66667 3.20833 10.0625 3.125C10.2708 3.08333 10.4167 3.07292 10.5 3.09375C10.6667 3.48958 10.7292 3.875 10.6875 4.25C10.6875 4.47917 10.6458 4.6875 10.5625 4.875C11.0208 5.375 11.25 5.96875 11.25 6.65625C11.25 7.82292 10.9271 8.66667 10.2812 9.1875C9.80208 9.58333 9.11458 9.83333 8.21875 9.9375C8.51042 10.2083 8.65625 10.625 8.65625 11.1875V13C8.65625 13.1042 8.6875 13.1875 8.75 13.25C8.83333 13.3333 8.95833 13.3646 9.125 13.3438C10.4583 12.8854 11.5417 12.0833 12.375 10.9375C13.2292 9.77083 13.6562 8.45833 13.6562 7C13.6562 6.125 13.4896 5.28125 13.1562 4.46875C12.8229 3.63542 12.3438 2.90625 11.7188 2.28125C11.0938 1.65625 10.3646 1.17708 9.53125 0.84375C8.71875 0.510417 7.875 0.34375 7 0.34375Z" fill="currentColor"/>
3
- </svg>