dstack 0.19.34__py3-none-any.whl → 0.19.35__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 (41) hide show
  1. dstack/_internal/cli/services/configurators/run.py +1 -1
  2. dstack/_internal/core/backends/base/compute.py +20 -1
  3. dstack/_internal/core/backends/base/models.py +10 -0
  4. dstack/_internal/core/backends/base/offers.py +1 -0
  5. dstack/_internal/core/backends/features.py +5 -0
  6. dstack/_internal/core/backends/nebius/compute.py +28 -16
  7. dstack/_internal/core/backends/nebius/configurator.py +1 -1
  8. dstack/_internal/core/backends/nebius/models.py +4 -0
  9. dstack/_internal/core/backends/nebius/resources.py +41 -20
  10. dstack/_internal/core/backends/runpod/api_client.py +245 -59
  11. dstack/_internal/core/backends/runpod/compute.py +157 -13
  12. dstack/_internal/core/models/compute_groups.py +39 -0
  13. dstack/_internal/core/models/fleets.py +6 -1
  14. dstack/_internal/core/models/profiles.py +3 -1
  15. dstack/_internal/core/models/runs.py +3 -0
  16. dstack/_internal/server/app.py +14 -2
  17. dstack/_internal/server/background/__init__.py +7 -0
  18. dstack/_internal/server/background/tasks/process_compute_groups.py +164 -0
  19. dstack/_internal/server/background/tasks/process_instances.py +81 -49
  20. dstack/_internal/server/background/tasks/process_submitted_jobs.py +179 -84
  21. dstack/_internal/server/migrations/env.py +20 -2
  22. dstack/_internal/server/migrations/versions/7d1ec2b920ac_add_computegroupmodel.py +93 -0
  23. dstack/_internal/server/models.py +39 -0
  24. dstack/_internal/server/routers/runs.py +15 -6
  25. dstack/_internal/server/services/compute_groups.py +22 -0
  26. dstack/_internal/server/services/fleets.py +1 -0
  27. dstack/_internal/server/services/jobs/__init__.py +13 -0
  28. dstack/_internal/server/services/jobs/configurators/base.py +3 -2
  29. dstack/_internal/server/services/requirements/combine.py +1 -0
  30. dstack/_internal/server/services/runs.py +17 -3
  31. dstack/_internal/server/testing/common.py +51 -0
  32. dstack/_internal/server/utils/routers.py +18 -20
  33. dstack/_internal/settings.py +4 -1
  34. dstack/_internal/utils/version.py +22 -0
  35. dstack/version.py +1 -1
  36. {dstack-0.19.34.dist-info → dstack-0.19.35.dist-info}/METADATA +3 -3
  37. {dstack-0.19.34.dist-info → dstack-0.19.35.dist-info}/RECORD +40 -36
  38. dstack/_internal/core/backends/nebius/fabrics.py +0 -49
  39. {dstack-0.19.34.dist-info → dstack-0.19.35.dist-info}/WHEEL +0 -0
  40. {dstack-0.19.34.dist-info → dstack-0.19.35.dist-info}/entry_points.txt +0 -0
  41. {dstack-0.19.34.dist-info → dstack-0.19.35.dist-info}/licenses/LICENSE.md +0 -0
@@ -1,8 +1,8 @@
1
1
  dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dstack/version.py,sha256=cU-T_RUTMX-To2Q6GW3Ek5yh2PStRLSst-4zkMlB0Do,102
2
+ dstack/version.py,sha256=oy6y07NPDywy8QDbWP6gk1Rq2PNa_tUPCEHQir3Te4g,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=FYtd7tRk17Oc62Kl_3O8NuT5JHb8TKhLThl1TsfjjVs,1390
5
+ dstack/_internal/settings.py,sha256=pyjV-8_5l0WQjoP4TKzNc-3zLRrJ04zQ2x2277Fck6k,1469
6
6
  dstack/_internal/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  dstack/_internal/cli/main.py,sha256=AZ4TB025U5wpQq3qH5sk9KkOYZCpxMIKqfaLH_Mv0DU,3876
8
8
  dstack/_internal/cli/commands/__init__.py,sha256=5kjow9mYUNTAeN1sItgp9-c5-GikWWSTPknJ5_0CiUk,2529
@@ -33,7 +33,7 @@ dstack/_internal/cli/services/configurators/__init__.py,sha256=AwbKV85_XH0V8IS8v
33
33
  dstack/_internal/cli/services/configurators/base.py,sha256=9mabsRsKHY7xFl8yDRM__FOEQvtEYOn_4KeXKzO6-vA,3244
34
34
  dstack/_internal/cli/services/configurators/fleet.py,sha256=xchLFqHkm0zVs3tEVMlYXd4lGjP_OWzdp3nzqNg7b8k,19374
35
35
  dstack/_internal/cli/services/configurators/gateway.py,sha256=B2aEoVhhRZGk25OekR7BT4eAvAgZGAyVOw7DlSuo2jg,8755
36
- dstack/_internal/cli/services/configurators/run.py,sha256=HGE3LBO6WfWis9ykXsH-3xVBdGk4e5SdIVWmblKQV_k,39404
36
+ dstack/_internal/cli/services/configurators/run.py,sha256=tpIKtpbvl5dQDIlO30WjK5ABc8ki7TsQyNT0fbAkU0Q,39391
37
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
@@ -50,7 +50,7 @@ dstack/_internal/core/consts.py,sha256=gN6AKBhvR-o6unEH66Kg3Sehqd06TO7uxunSvThvq
50
50
  dstack/_internal/core/errors.py,sha256=VTEmJ6C0zWL3fUL8ObRjB4rNL7_NxwEuWf0hZs6orWo,3377
51
51
  dstack/_internal/core/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  dstack/_internal/core/backends/configurators.py,sha256=Fy1FpiS_2aV8IWT1nkCb2CUI7fDVVRK-O2YFcHSpkTo,4573
53
- dstack/_internal/core/backends/features.py,sha256=EA18teMYJ80AohFuoNf7yHs_mMh4O3KaEGGbETI7zQQ,2975
53
+ dstack/_internal/core/backends/features.py,sha256=AtrLzkzfpkqiVOrIOhCwUS5GZFQOlVt9ubym_xq4VWM,3208
54
54
  dstack/_internal/core/backends/models.py,sha256=Msj99dfzw3r6G_tG_SUTcSD-m6fK89fbJm5HTr4Xh1s,4862
55
55
  dstack/_internal/core/backends/amddevcloud/__init__.py,sha256=IMhALdujfNvUdMJklEJ_vMWsjApR1iJWsYT30SNMa4s,72
56
56
  dstack/_internal/core/backends/amddevcloud/backend.py,sha256=aUIOxKzXDDvmPEverL52Nj6zpel2zSZwZo0hTBrb6Pc,724
@@ -73,10 +73,10 @@ dstack/_internal/core/backends/azure/resources.py,sha256=cJWS2Yjxdg-XtjpdBxfVDZa
73
73
  dstack/_internal/core/backends/azure/utils.py,sha256=taHMJq6UHRzUXLUcO2P5VCKy3wJaye2bG-6QdkEPNdY,1741
74
74
  dstack/_internal/core/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  dstack/_internal/core/backends/base/backend.py,sha256=hdFMHED1RMV9GVfLSU0yGhGE-cXlbLvt1coDA885PMM,505
76
- dstack/_internal/core/backends/base/compute.py,sha256=MEglNP0H9iLi0a88ElRUxVcs1-qtpGEuWkxnrBp4KoA,36018
76
+ dstack/_internal/core/backends/base/compute.py,sha256=7w-nM4a-F7YdfXxQT8gTGVyaDbG6Hkh4GC_eeaefXHs,36645
77
77
  dstack/_internal/core/backends/base/configurator.py,sha256=TKG5iJlOXxVT2agE_ruMW8JGt2dtwXY7ghmJN8bEWlw,4299
78
- dstack/_internal/core/backends/base/models.py,sha256=Ij0osOl-T-ABsKLoVg2eY81DMkwdWkevAnjXj2QnLXI,532
79
- dstack/_internal/core/backends/base/offers.py,sha256=5dfQbcXsqjOdGckPooH_x1B78CfAdsqXvMDlIIqF5ik,7617
78
+ dstack/_internal/core/backends/base/models.py,sha256=kT163t_pZX-lbbBMVYoHpbrSnSnOq3j1upXRtRszK4A,797
79
+ dstack/_internal/core/backends/base/offers.py,sha256=UfaGMVVspesRlSCcWSGL7vC8_4Y4sCauE7wnoa6D_EY,7639
80
80
  dstack/_internal/core/backends/cloudrift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
81
  dstack/_internal/core/backends/cloudrift/api_client.py,sha256=mI3_ttwujfSunTiTIelnc1XaLBlfxsKsacrlyB12f8c,8178
82
82
  dstack/_internal/core/backends/cloudrift/backend.py,sha256=Jz3nIQsa3TnMISVXK6EU43O0B7FgIMxwwaEBmd_s5BY,596
@@ -138,11 +138,10 @@ dstack/_internal/core/backends/local/backend.py,sha256=KJuNXUXrg60NhLywnExD1EXH2
138
138
  dstack/_internal/core/backends/local/compute.py,sha256=tWNsKGKYlPx9yeqwlpAL_XExOYMPLcb6AsGAji3YO3M,3825
139
139
  dstack/_internal/core/backends/nebius/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
140
  dstack/_internal/core/backends/nebius/backend.py,sha256=2XqZIbSR8VzlfOnuVklXlDxNmwAkQj7txQN8VXF1j2E,566
141
- dstack/_internal/core/backends/nebius/compute.py,sha256=CzcNNbBsrIA15_Dpb0ubBBEk8r_RONubSLHw5CGxEU4,15443
142
- dstack/_internal/core/backends/nebius/configurator.py,sha256=eybolJi5rlEeU8GBXC7pdOU7To32ASQGHDAiE2cNeFo,3794
143
- dstack/_internal/core/backends/nebius/fabrics.py,sha256=-X-nSPV2pUin2PAYDHGm-j14KPboIFRpLi93PKHUXTM,1616
144
- dstack/_internal/core/backends/nebius/models.py,sha256=OSiUANBf893Xdm7-4WDoPfmd3YFk5-oRjdXiWUjvDdk,6194
145
- dstack/_internal/core/backends/nebius/resources.py,sha256=MVyMaS0-mZu2g-tJ4HF7GiT1hFFL7Mha9hXtP3XeT7o,14070
141
+ dstack/_internal/core/backends/nebius/compute.py,sha256=io9imiy1fxsufYoGlMp6SRdQuR4-xlwwVgf825aGG4c,15844
142
+ dstack/_internal/core/backends/nebius/configurator.py,sha256=xejKSnjSBwVCG6ooSjWyB1Q-sn3NJ98y98E68RNpCtQ,3796
143
+ dstack/_internal/core/backends/nebius/models.py,sha256=6iSAj7pr5OpSyA_GDk_QtRTAr_yGFf8cGSRM8hqp8XA,6267
144
+ dstack/_internal/core/backends/nebius/resources.py,sha256=j9QtqVHvFyKk2ei4fQW0mAO0294lMQvU5Pk7XUlV99M,14778
146
145
  dstack/_internal/core/backends/oci/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
146
  dstack/_internal/core/backends/oci/auth.py,sha256=8Cr18y_LOsyRP-16yfFpT70Cofpm0clB3KawS_7aRl4,717
148
147
  dstack/_internal/core/backends/oci/backend.py,sha256=yXjVCt7n6BVLH0byYFbNFf-P9J0FwlNfxsYbKGMdoI4,536
@@ -153,9 +152,9 @@ dstack/_internal/core/backends/oci/models.py,sha256=fDlY7-A0WDQeiwJzwrQl6D5ENOc-
153
152
  dstack/_internal/core/backends/oci/region.py,sha256=a41dmlv-7jh2vP2z-0wnf0Yzdh2Donjm9aXuMgFXXKo,2935
154
153
  dstack/_internal/core/backends/oci/resources.py,sha256=-47u2vWvRnpNQmgz3A12vu1hSIQ-dqawDl5ndyF0nwY,29392
155
154
  dstack/_internal/core/backends/runpod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
- dstack/_internal/core/backends/runpod/api_client.py,sha256=Oet7CwQTu3sE57unqh-JvuMCBDEDPruAbGB4GyM0dM4,13427
155
+ dstack/_internal/core/backends/runpod/api_client.py,sha256=9v3_cY9Kua-nFdiOsKPYIJadW9Brjfls4QG0L1FUUFY,20482
157
156
  dstack/_internal/core/backends/runpod/backend.py,sha256=GcLbySsGY29ZGHXSqTXCxUUoTK9pxVScKly0_fkNr8c,566
158
- dstack/_internal/core/backends/runpod/compute.py,sha256=p96oc0Mg0Zjtfj25dVzattHBKtbYuMTeWMpYodAg4rg,11264
157
+ dstack/_internal/core/backends/runpod/compute.py,sha256=-iGEKveep0HFUCQbBSqbqKCc_3cg4oFVeUz8VK0q5f8,17451
159
158
  dstack/_internal/core/backends/runpod/configurator.py,sha256=ZcDKN5ulmFMjSy9TlnV-2qxqPwTZUpIwfVwtShZL5fU,2242
160
159
  dstack/_internal/core/backends/runpod/models.py,sha256=W3nO4sjvvWtfKYDZDVJ8oBSsgeGdSR-Z_PD7OpfDBgY,1466
161
160
  dstack/_internal/core/backends/template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -186,21 +185,22 @@ dstack/_internal/core/compatibility/runs.py,sha256=i2vJwTGuT1GZ2pYzUnM6DpewsjqbA
186
185
  dstack/_internal/core/compatibility/volumes.py,sha256=ofjpVusuc-pq285bGrIh8PAqu0QlAd6NQgU3gfJQIc0,1546
187
186
  dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
187
  dstack/_internal/core/models/common.py,sha256=QKdZM7L2NepzOPavkkI_q3g6WYCauMTbtZSZwWZVYHE,4704
188
+ dstack/_internal/core/models/compute_groups.py,sha256=8iW4XpUv4H0Sc9xmgKIEG-xBmNArse2SlNQxbELeoSw,1176
189
189
  dstack/_internal/core/models/config.py,sha256=VYfgyWG2kfGhJxkC48vZDCbHahIEnO05mDDagJ5kA6s,787
190
190
  dstack/_internal/core/models/configurations.py,sha256=G0MO8iKR1uRQABWuB_biglZQTCqLBK3vhxIKwJKEsTg,30998
191
191
  dstack/_internal/core/models/envs.py,sha256=yq84YRFBILOy4x3XnGcTgYpbZ69eFTCQPgBCr9Ndov4,4969
192
192
  dstack/_internal/core/models/files.py,sha256=CI1AQN07ACot_6RVkG7qLml07Ro0co2hGsAfcTamn3Y,1977
193
- dstack/_internal/core/models/fleets.py,sha256=Ux-RSdoJUFF4lSDPH70MJKoav_xYv0w9Ou_BwOJevq0,15215
193
+ dstack/_internal/core/models/fleets.py,sha256=5IGRs4_dc_up7FZQy6CIGqFtAoV7Xkn731FBUZkpX8w,15373
194
194
  dstack/_internal/core/models/gateways.py,sha256=_O8EWwHWLdgNoWY4P4u71KM-uEr5DDp42LXfyv1qMDI,4054
195
195
  dstack/_internal/core/models/health.py,sha256=Q0Z5pYbW-rD5wLn3-EDre2Q7X6tX7DFaglKz5SDv18U,570
196
196
  dstack/_internal/core/models/instances.py,sha256=nITxuRsT3OqPMi1HFN9Bq0rTFwsIJPXbRgxhtfvSeQM,6915
197
197
  dstack/_internal/core/models/logs.py,sha256=VOsgEsvUIRNNHivD6OZnPZNC52ioqafv7ccdnFQ1YI8,529
198
198
  dstack/_internal/core/models/metrics.py,sha256=Xb8hCXUL-ncQ3PMsErIUAJTe9gwh5jyrQ4UQoZbibsc,269
199
199
  dstack/_internal/core/models/placement.py,sha256=WJVq5ENJykyRarQzL2EeYQag_9_jV7VSAtR_xoFvPVM,720
200
- dstack/_internal/core/models/profiles.py,sha256=vzGQllBGepTcFotgpot6OksyBIM03IJWtW3kZEfkro4,14524
200
+ dstack/_internal/core/models/profiles.py,sha256=MK-OLgIM9cSfgJsqs0NWmeLdjKtOSEgZOvoCpYn69H4,14631
201
201
  dstack/_internal/core/models/projects.py,sha256=hOZoL85q-873vT_Aw7FhzpS6DGVt0Y3yT8kpElrLFto,833
202
202
  dstack/_internal/core/models/resources.py,sha256=-dLupzud5BSqxNABBjLVYTCKekbr9_mhaNGD1ZWBjgM,14544
203
- dstack/_internal/core/models/runs.py,sha256=M5IG0SsMgAzZpFamHjgV1Fit4wwxA8mPExW8koCUkeo,22737
203
+ dstack/_internal/core/models/runs.py,sha256=SBwfo3bKIREDMemSnTaJGuMqi68igTyRNd3lonWuf5o,22886
204
204
  dstack/_internal/core/models/secrets.py,sha256=5T4B4eCeZmVQ8t22qYYlm4NUyX7VloiXCJuyDfE92QA,413
205
205
  dstack/_internal/core/models/server.py,sha256=Hkc1v2s3KOiwslsWVmhUOAzcSeREoG-HD1SzSX9WUGg,152
206
206
  dstack/_internal/core/models/services.py,sha256=2Hpi7j0Q1shaf_0wd0C0044AJAmuYi-D3qx3PH849oI,3076
@@ -281,30 +281,31 @@ dstack/_internal/proxy/lib/testing/auth.py,sha256=-firWTnis9Eogoi58BURv1S-te4Hf9
281
281
  dstack/_internal/proxy/lib/testing/common.py,sha256=5e2VYboMqjBnUxkvidaWLoQ-uaBGh_hnURb_VJc38q4,1518
282
282
  dstack/_internal/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
283
  dstack/_internal/server/alembic.ini,sha256=rTauBJC8Jxlw76KUygW061OFAGV7GhwAStinlaxoYGY,3166
284
- dstack/_internal/server/app.py,sha256=BdjpR_XsTMkNey85ZwTjKd9_KKbtlePnIqy7QQDQdq0,15364
284
+ dstack/_internal/server/app.py,sha256=QW3iM_77I-aUfeyVDqlSzQ8d7R0I-mwg__zgs1QTaXo,15852
285
285
  dstack/_internal/server/db.py,sha256=NY0-K_7ok2OYLtPMeZ4EHlHK5N2a77uj4aJCVgWO2qE,3245
286
286
  dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
287
287
  dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
288
- dstack/_internal/server/models.py,sha256=Yre5SAgTZK58vmP49-TqIfeF31ZTNy5SCJJO8t-Ya3s,34566
288
+ dstack/_internal/server/models.py,sha256=OsBrPcVz9UA4X0-XtvBNGhIp8-VNbQECLEuckeXHB_o,36549
289
289
  dstack/_internal/server/settings.py,sha256=7SRzSlTnUPNNjlZH-vpgwbwj95gI-LLtQite8LQnaTU,7418
290
- dstack/_internal/server/background/__init__.py,sha256=QftEjgQZffu83sY-F0WL65vRp28FbBEtezfowQYcTv4,5606
290
+ dstack/_internal/server/background/__init__.py,sha256=aKoWHuRWUMjxw0JTGAMYnnv8ADA7ddo-HlTvyvixp2o,5920
291
291
  dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
292
292
  dstack/_internal/server/background/tasks/common.py,sha256=n87hFjDNtS2x8mYbBnKLqhXus1P8qkdfqXG1TSeIJjM,1089
293
+ dstack/_internal/server/background/tasks/process_compute_groups.py,sha256=_oAA4N6C_4ntHIH-C1zeIqjXN20pkT03QB4-zvI6FKI,6763
293
294
  dstack/_internal/server/background/tasks/process_fleets.py,sha256=0i_S3HCZp4AjQjER7j_pvIm22eYbrBwZnt9-0kgsq3E,11547
294
295
  dstack/_internal/server/background/tasks/process_gateways.py,sha256=FH9RY3Tfmtw_UctCdYZDIRb2rgtmHdxTg6Oc4IBiDBA,8356
295
296
  dstack/_internal/server/background/tasks/process_idle_volumes.py,sha256=mqnl8wvWaKTYvJMbgFJbOP-bZMRQG2vrhUnaNcyBldE,5223
296
- dstack/_internal/server/background/tasks/process_instances.py,sha256=kDqtfqWoSS91qW0NpVftxrr8Z2tDv6Fj2cfbjvgHY3o,44196
297
+ dstack/_internal/server/background/tasks/process_instances.py,sha256=tDV4nO6wPKRkcfTWh-zivU9UT_9sp4v_D0UdQnglzwQ,45774
297
298
  dstack/_internal/server/background/tasks/process_metrics.py,sha256=yKXe9J7m3oleK0C-oGJaYNkcPT8kqkz0nw-A7xqYbjE,6390
298
299
  dstack/_internal/server/background/tasks/process_placement_groups.py,sha256=lgYIzjHG9EITK31yG6uQjlIcSwW5jsP9ZOBBZqW_eNs,4263
299
300
  dstack/_internal/server/background/tasks/process_probes.py,sha256=dmug-_rmYiVLLF-imto-Ju1gPtENvHvCjHyilqgYuJw,6457
300
301
  dstack/_internal/server/background/tasks/process_prometheus_metrics.py,sha256=_UZm37FVV4rhdd0So7HtcKbIgrSdAr5Vx-Uen_xizec,5459
301
302
  dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=ZSx8hQX3XFHetaJT78A9W0mSzTIsY5NgMrSD6gb0Mmw,45029
302
303
  dstack/_internal/server/background/tasks/process_runs.py,sha256=K4km4XT0JYUf6JYbpKbEAyumUDBT21lqcMFTQ7pIsoY,25200
303
- dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=fDuLfnSJqWDL2oPrxXQMkaqKgplMdKT0SRD_AyB4n-0,43099
304
+ dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=uEvvm1jx0NvvKRh7WB9PoXuQUvmJvV1dj8F36je2P7U,47326
304
305
  dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=S7ZSDVMX-N0XMaMgwFa1QG_RAi48BP432s9AqHw4PMM,4066
305
306
  dstack/_internal/server/background/tasks/process_volumes.py,sha256=_fMmkwLYsyX-kpW9pDrZVJvFTZEOPp0gpjyKBMW-zw0,5204
306
307
  dstack/_internal/server/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
307
- dstack/_internal/server/migrations/env.py,sha256=RuhcN-CST86VzMatjqBMdYcG0fGGMZl_o1YgZTL-WDw,2831
308
+ dstack/_internal/server/migrations/env.py,sha256=-JLTYwXv1h8MRWEBapedSVi60HVmgMg3KXatgu4t8Cg,3735
308
309
  dstack/_internal/server/migrations/script.py.mako,sha256=Xi-IcoSN51tKWbAq1-nNVX7j6_89mf9AuX9DjnqUO_o,574
309
310
  dstack/_internal/server/migrations/versions/065588ec72b8_add_vultr_to_backendtype_enum.py,sha256=wSdI_HWGUFgczhOPyoP6BTPmDbN3KmjokHVpZJGsq4Q,2112
310
311
  dstack/_internal/server/migrations/versions/0e33559e16ed_update_instancestatus.py,sha256=PcGliOdzjGRzJY5dY_Jaxj6HSEoueBOY3sxwkSLFoAk,1657
@@ -349,6 +350,7 @@ dstack/_internal/server/migrations/versions/74a1f55209bd_store_enums_as_strings.
349
350
  dstack/_internal/server/migrations/versions/7b24b1c8eba7_add_instancemodel_last_processed_at.py,sha256=o1A8nzrmMFcivBzaIMemCtRfCZ9mq1IuBko1CJXoVOo,2124
350
351
  dstack/_internal/server/migrations/versions/7ba3b59d7ca6_add_runmodel_resubmission_attempt.py,sha256=FUvCRzOzkp8HjRYy0-kuOwvBGbwuCgyjXU7hD-AWRJs,1045
351
352
  dstack/_internal/server/migrations/versions/7bc2586e8b9e_make_instancemodel_pool_id_optional.py,sha256=ch6yqwMldIiA7hlQbU5TGjzMbLpRyhiAcXqfUHlj-EI,980
353
+ dstack/_internal/server/migrations/versions/7d1ec2b920ac_add_computegroupmodel.py,sha256=tn0_ZorMip5EW5dIwG-RESxpGfpnw9TWpabH9UHJ-50,3266
352
354
  dstack/_internal/server/migrations/versions/803c7e9ed85d_add_jobmodel_job_runtime_data.py,sha256=JRQL_aqCOBHw-iyL2-eYPkmC_i6dMh-ERfdgFi3SI9U,831
353
355
  dstack/_internal/server/migrations/versions/82b32a135ea2_.py,sha256=9Bb4V65dZS1hUH1tBJ17qmkmDFgHeWwTlsKwTsR-W6Q,1716
354
356
  dstack/_internal/server/migrations/versions/866ec1d67184_replace_retrypolicy_limit_with_.py,sha256=dExkOKVEytaQbUU_C2ITGg3PsweSWBOeiGwoiDy5IVY,2905
@@ -400,7 +402,7 @@ dstack/_internal/server/routers/metrics.py,sha256=Hoa_cKF2-b8XNCVPa92YkFnNZhz1KH
400
402
  dstack/_internal/server/routers/projects.py,sha256=qTwISp2O5L3zoysPyikH_IIqZSTkriUFOvrQPP_PCsQ,4915
401
403
  dstack/_internal/server/routers/prometheus.py,sha256=INRxPLYVJ6CTm2AwtSJ1z455RiCOpPJ3rbXMKGonGm8,1109
402
404
  dstack/_internal/server/routers/repos.py,sha256=4pTInkm0XaOVUJ2pRnbc8LqTyACkE3w_BrB6icT7EUw,4039
403
- dstack/_internal/server/routers/runs.py,sha256=m_IQMCeqh5Tp3OP7ulaBb1IND8b-ixqbVNiHgZtXrDo,6121
405
+ dstack/_internal/server/routers/runs.py,sha256=iiCzQiia_oTZGk1AXD24xDImHOeP1H8c3UUnvVS6ZaA,6725
404
406
  dstack/_internal/server/routers/secrets.py,sha256=wWYUQbYcfWenUVEA4qdb08J7_6H3zmW3AsTIg-UTJ4o,2566
405
407
  dstack/_internal/server/routers/server.py,sha256=MSOsOCyA0unv24nCs_OkJG_zHyuldQrONn2xaZjGOXo,474
406
408
  dstack/_internal/server/routers/users.py,sha256=L3t6WWvcl6pd8EGC5P6gsZVTtygyEpxsIDfAOqCVhdo,4302
@@ -426,10 +428,11 @@ dstack/_internal/server/schemas/health/dcgm.py,sha256=i6lisMNDcuXNJnKtTztSwjjjYt
426
428
  dstack/_internal/server/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
427
429
  dstack/_internal/server/security/permissions.py,sha256=7lWM9jiNt-6cMms6t5g9Fn0H3B3-MEJ7gDCtL7xZ9Lg,8187
428
430
  dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
431
+ dstack/_internal/server/services/compute_groups.py,sha256=WX2S0FZng0nhWd58HheViIzgoyrms4CvWiIrOJ83YCc,890
429
432
  dstack/_internal/server/services/config.py,sha256=yo8njslwfS7_blhbPPhOtzCMyg8N_mmFSw5aPvirSzw,10691
430
433
  dstack/_internal/server/services/docker.py,sha256=DEEUFNYtyus4qDTBC33ujSZxl5wp8iKaKrpF2X-Bk88,5395
431
434
  dstack/_internal/server/services/files.py,sha256=LJYFRtIJwB-QL-FhIu1408oqVVfa2lPZZlaTuZMo6pw,2847
432
- dstack/_internal/server/services/fleets.py,sha256=B_LXk_inn0rIOwC6SejQuBgT8_C_e9QdCNN5pXH7Sx0,37095
435
+ dstack/_internal/server/services/fleets.py,sha256=tohzx1tyYmCHO2AUb-wChYBuxMgl3zbXccPLx4mXfyg,37183
433
436
  dstack/_internal/server/services/gpus.py,sha256=_CGqUsizWf_Bq-_JYcRkLg_yg4iKpsp-1_1m5MedBr0,14758
434
437
  dstack/_internal/server/services/instances.py,sha256=-3m2WOg0R5W2X0IcMivT5C6Qha6RXcXyqmHOQLTvt-o,24160
435
438
  dstack/_internal/server/services/locking.py,sha256=k00cS2SYUVekUIorsi6l5ofL-Q-Bnc5BnRZ1FAB6dDk,5239
@@ -443,7 +446,7 @@ dstack/_internal/server/services/probes.py,sha256=pdgtkOvBuvneUo4Gysg8_afibTf1wu
443
446
  dstack/_internal/server/services/projects.py,sha256=PZdMCi1PVu68c_rYfwJRk7hgM6ddkekxlG_IU_957QI,25276
444
447
  dstack/_internal/server/services/repos.py,sha256=ECl1cbpdzhTv1P3Y9IQmoWyHHF8iXFyL4s2drfwRDvg,9352
445
448
  dstack/_internal/server/services/resources.py,sha256=VRFOih_cMJdc0c2m9nSGsX8vWAJQV3M6N87aqS_JXfw,699
446
- dstack/_internal/server/services/runs.py,sha256=d19AJkmKjfVezNyEx79sHYeFMaTHqWQenuci9ZpjdJY,48266
449
+ dstack/_internal/server/services/runs.py,sha256=aqtYoc8fLdkHPMmDdpxNk1lU0-M--qro_SxPhi7fuQw,48807
447
450
  dstack/_internal/server/services/secrets.py,sha256=M7RS4X1-DIL0f7m6BBb3PhsrAbxwKUD3_pZEWRfR3sM,5567
448
451
  dstack/_internal/server/services/ssh.py,sha256=DT7U_8ON8o30-53WlJwjd5kVrKyt4KPgKeN63NW3P8U,2883
449
452
  dstack/_internal/server/services/users.py,sha256=JhlgG4n2CU3cO7zAaA78YCTzb2nzE7GIBZgJ_eXLnOA,8649
@@ -459,9 +462,9 @@ dstack/_internal/server/services/gateways/__init__.py,sha256=ULqgi5yDkTJhSa8qfrD
459
462
  dstack/_internal/server/services/gateways/client.py,sha256=Os6V1zS_fxmchmhyoIkoB4whsYmgm3c-XX54hoERO1k,7726
460
463
  dstack/_internal/server/services/gateways/connection.py,sha256=31qellW-zc-l8cxb8se6AshX5yS_HZT8Nlvxy9JkOXQ,5630
461
464
  dstack/_internal/server/services/gateways/pool.py,sha256=0LclTl1tyx-doS78LeaAKjr-SMp98zuwh5f9s06JSd0,1914
462
- dstack/_internal/server/services/jobs/__init__.py,sha256=NGzjziUlIILbZuDyPlMYxMayGkdfW4tRDxBtPEGlmNU,28491
465
+ dstack/_internal/server/services/jobs/__init__.py,sha256=ZE6EcYqxs_vz_mBz_ibdar_SDRgO7ge6Ew97JFaIuMA,28845
463
466
  dstack/_internal/server/services/jobs/configurators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
464
- dstack/_internal/server/services/jobs/configurators/base.py,sha256=b-VI8bo5-glLR3ycio7OEC6ILTy6sap-bCH7N6Oq06w,15996
467
+ dstack/_internal/server/services/jobs/configurators/base.py,sha256=2uWnhbe2ZU8nUFlrgBpTLCa_vc6HZIe9ewSNEitj_9I,16079
465
468
  dstack/_internal/server/services/jobs/configurators/dev.py,sha256=6dEbuRYr83XAmgie63uyq6jE0Er2Vd1kTZKPy8kpvY4,2635
466
469
  dstack/_internal/server/services/jobs/configurators/service.py,sha256=Kbv9GycRX2FA09M5LcUCUzywTzYzjpLLDomwWT6IOG8,866
467
470
  dstack/_internal/server/services/jobs/configurators/task.py,sha256=K2Z1QzWmgs3uvBQOD6H-YkAlmqObeH1ImfwZSnNEAUE,1486
@@ -486,7 +489,7 @@ dstack/_internal/server/services/proxy/routers/service_proxy.py,sha256=5oB-SX8f_
486
489
  dstack/_internal/server/services/proxy/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
487
490
  dstack/_internal/server/services/proxy/services/service_proxy.py,sha256=4JrSxHqhBYqU1oENii89Db-bzkFWExYrOy-0mNEhWBs,4879
488
491
  dstack/_internal/server/services/requirements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
489
- dstack/_internal/server/services/requirements/combine.py,sha256=VhmisgFX4iaD068NGbFn4lAASJoiHhC4b1utkhw1Fqg,8630
492
+ dstack/_internal/server/services/requirements/combine.py,sha256=0XDC-WG_7RyQoa1yGWD6SxpRsl-z3DVY7udKCHzAtp8,8712
490
493
  dstack/_internal/server/services/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
491
494
  dstack/_internal/server/services/runner/client.py,sha256=Ukgs7hrrV4HRLY-as7pQlJdelU6qPfAP5Nepz31oWVs,17719
492
495
  dstack/_internal/server/services/runner/ssh.py,sha256=UdFdyNcFfCyGxMAJa2B1A206yfCplqAoXt31D7mG9c4,5056
@@ -604,13 +607,13 @@ dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb6414614
604
607
  dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
605
608
  dstack/_internal/server/statics/static/media/theme.3994c817bb7dda191c1c9640dee0bf42.svg,sha256=ZxFFBVZWuRLqmWH4zhwGLNtKjOzHj-5MGJRunFAtu1I,561
606
609
  dstack/_internal/server/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
607
- dstack/_internal/server/testing/common.py,sha256=NvtrwBsNbJD0cWLCyQvNbUHZmaIHSenwY0zpfA4CV5o,36181
610
+ dstack/_internal/server/testing/common.py,sha256=LPXiWQ2-4MEWl-hqm08RIf92GBAjd_C6GYOVGnQs4oM,37933
608
611
  dstack/_internal/server/testing/conf.py,sha256=-zhujfFjTHNfQDOK-hBck32By11c_kC0OeinB3esQGg,1902
609
612
  dstack/_internal/server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
610
613
  dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBAsR_9D1brrk,1414
611
614
  dstack/_internal/server/utils/logging.py,sha256=HqzSX151JIyE89bJ3aiELQdi1izr3F9SNwIZZMLXOSQ,1927
612
615
  dstack/_internal/server/utils/provisioning.py,sha256=FUqAGmCDQbw6EjW1hnOlFPuchbcyAr9j9qIB66w7M9Q,13392
613
- dstack/_internal/server/utils/routers.py,sha256=WFjcIlJETY7SAQ1eHRxaZuAAUsWYT8S_ATLHQ6a_MBs,5498
616
+ dstack/_internal/server/utils/routers.py,sha256=emEOGayN6kwoUHPoW1H2hurY2g8evp8zt7YQwx3BqZI,5333
614
617
  dstack/_internal/server/utils/sentry_utils.py,sha256=3vYP_CH4Q6Ju5BZ0js2Yw4Gg_gdD8XVIjNVUpOQYwX8,277
615
618
  dstack/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
616
619
  dstack/_internal/utils/common.py,sha256=9PtlJwE7B4F70nL_iP1J4ky33bUeW7r73Np7GYvrbmE,9548
@@ -633,6 +636,7 @@ dstack/_internal/utils/random_names.py,sha256=lVyzAmXhaSf2bAuvRFQ_ihLy42in1ydN4g
633
636
  dstack/_internal/utils/ssh.py,sha256=SE10JKbnUyocoAhMs0dsLIUDOQmUtQGArZEUAFIXBPQ,12852
634
637
  dstack/_internal/utils/tags.py,sha256=Gx4aZM85E_UUCGuFZbCEFxHB5DNgrtJP15_1tFFEd1c,1292
635
638
  dstack/_internal/utils/typing.py,sha256=tHrhtkr3G6jkk-_FZyobdjLYvP5_YIgXbKsN-13dfvg,386
639
+ dstack/_internal/utils/version.py,sha256=YUFtzD4Tkg8SlCKhEVPnEsNbwSuzQubzNtX1Jm9lx9c,699
636
640
  dstack/api/__init__.py,sha256=7qbG42qEHMyNDFRCz9FgfuimAKws3hV8eMXs6oRgh5c,1607
637
641
  dstack/api/utils.py,sha256=_la3CRk1vgrPGkInPI1SOr33e8Jvh8ziJC32fjvKnaU,4188
638
642
  dstack/api/_public/__init__.py,sha256=TqSWVMoidDy1iL4OqF6mMIwhl55pHD2A5vJcV9O61S0,3227
@@ -664,8 +668,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
664
668
  dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
665
669
  dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
666
670
  dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=h3r3Yc3h22i93fifPTgTm9Oojd1sN1O4DP7ZTV-kWpM,5386
667
- dstack-0.19.34.dist-info/METADATA,sha256=5WStESpsR5DHP8bFfZxqKb3IVu9e9OTalq8ZE-K3epo,20835
668
- dstack-0.19.34.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
669
- dstack-0.19.34.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
670
- dstack-0.19.34.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
671
- dstack-0.19.34.dist-info/RECORD,,
671
+ dstack-0.19.35.dist-info/METADATA,sha256=SMTSuRif1pweSd2HEz2XOYb77squP2d7ZJCcXpwCpAg,20825
672
+ dstack-0.19.35.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
673
+ dstack-0.19.35.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
674
+ dstack-0.19.35.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
675
+ dstack-0.19.35.dist-info/RECORD,,
@@ -1,49 +0,0 @@
1
- from collections.abc import Container
2
- from dataclasses import dataclass
3
- from typing import Optional
4
-
5
- from dstack._internal.core.models.instances import InstanceOffer
6
-
7
-
8
- @dataclass(frozen=True)
9
- class InfinibandFabric:
10
- name: str
11
- platform: str
12
- region: str
13
-
14
-
15
- # https://docs.nebius.com/compute/clusters/gpu#fabrics
16
- INFINIBAND_FABRICS = [
17
- InfinibandFabric("fabric-2", "gpu-h100-sxm", "eu-north1"),
18
- InfinibandFabric("fabric-3", "gpu-h100-sxm", "eu-north1"),
19
- InfinibandFabric("fabric-4", "gpu-h100-sxm", "eu-north1"),
20
- InfinibandFabric("fabric-5", "gpu-h200-sxm", "eu-west1"),
21
- InfinibandFabric("fabric-6", "gpu-h100-sxm", "eu-north1"),
22
- InfinibandFabric("fabric-7", "gpu-h200-sxm", "eu-north1"),
23
- InfinibandFabric("us-central1-a", "gpu-h200-sxm", "us-central1"),
24
- InfinibandFabric("us-central1-b", "gpu-b200-sxm", "us-central1"),
25
- ]
26
-
27
-
28
- def get_suitable_infiniband_fabrics(
29
- offer: InstanceOffer, allowed_fabrics: Optional[Container[str]]
30
- ) -> list[str]:
31
- if len(offer.instance.resources.gpus) < 8:
32
- # From the create VM page in the Nebius Console:
33
- # > Only virtual machines with at least 8 NVIDIA® Hopper® H100 or H200 GPUs
34
- # > can be added to the cluster
35
- return []
36
- platform, _ = offer.instance.name.split()
37
- return [
38
- f.name
39
- for f in INFINIBAND_FABRICS
40
- if (
41
- f.platform == platform
42
- and f.region == offer.region
43
- and (allowed_fabrics is None or f.name in allowed_fabrics)
44
- )
45
- ]
46
-
47
-
48
- def get_all_infiniband_fabrics() -> set[str]:
49
- return {f.name for f in INFINIBAND_FABRICS}