skypilot-nightly 1.0.0.dev20250510__tar.gz → 1.0.0.dev20250513__tar.gz
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.
- {skypilot_nightly-1.0.0.dev20250510/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250513}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/backend_utils.py +3 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/cloud_vm_ray_backend.py +7 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/cli.py +109 -109
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/client/cli.py +109 -109
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/gcp.py +35 -8
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/404.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ → skypilot_nightly-1.0.0.dev20250513/sky/dashboard/out/_next/static/2dkponv64SfFShA8Rnw0D}/_buildManifest.js +1 -1
- skypilot_nightly-1.0.0.dev20250513/sky/dashboard/out/_next/static/chunks/845-0ca6f2c1ba667c3b.js +1 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/global_user_state.py +2 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/docker_utils.py +4 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/gcp/config.py +197 -15
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/gcp/constants.py +64 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/nebius/instance.py +3 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/nebius/utils.py +4 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/executor.py +114 -22
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/requests.py +15 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/server.py +12 -7
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/uvicorn.py +12 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/sky_logging.py +40 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/constants.py +3 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/log_lib.py +51 -11
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/gcp-ray.yml.j2 +11 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/nebius-ray.yml.j2 +4 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/websocket_proxy.py +29 -9
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/command_runner.py +3 -0
- skypilot_nightly-1.0.0.dev20250513/sky/utils/context.py +264 -0
- skypilot_nightly-1.0.0.dev20250513/sky/utils/context_utils.py +172 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/rich_utils.py +81 -37
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/schemas.py +9 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/subprocess_utils.py +8 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/skypilot_nightly.egg-info/SOURCES.txt +5 -3
- skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/chunks/845-0f8017370869e269.js +0 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ → skypilot_nightly-1.0.0.dev20250513/sky/dashboard/out/_next/static/2dkponv64SfFShA8Rnw0D}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/236-f49500b82ad5392d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/37-0a572fe0dbb89c4d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/678-206dddca808e6d16.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/979-7bf73a4c7cea0f5c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/_app-e6b013bc3f77ad60.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-e15db85d0ea1fbe1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-f383db7389368ea7.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/index-f9f039532ca8cbc4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-03f279c6741fb48b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/_next/static/css/c6933bbb2ce7f4dd.css +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/server/dashboard_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250513}/tests/test_yaml_parser.py +0 -0
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = 'c23907b7f1baf65740791dc1e17ff1411e7d9a97'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250513'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -40,6 +40,7 @@ from sky.utils import cluster_utils
|
|
40
40
|
from sky.utils import command_runner
|
41
41
|
from sky.utils import common
|
42
42
|
from sky.utils import common_utils
|
43
|
+
from sky.utils import context_utils
|
43
44
|
from sky.utils import controller_utils
|
44
45
|
from sky.utils import env_options
|
45
46
|
from sky.utils import registry
|
@@ -2204,6 +2205,7 @@ def refresh_cluster_record(
|
|
2204
2205
|
|
2205
2206
|
|
2206
2207
|
@timeline.event
|
2208
|
+
@context_utils.cancellation_guard
|
2207
2209
|
def refresh_cluster_status_handle(
|
2208
2210
|
cluster_name: str,
|
2209
2211
|
*,
|
@@ -2253,6 +2255,7 @@ def check_cluster_available(
|
|
2253
2255
|
...
|
2254
2256
|
|
2255
2257
|
|
2258
|
+
@context_utils.cancellation_guard
|
2256
2259
|
def check_cluster_available(
|
2257
2260
|
cluster_name: str,
|
2258
2261
|
*,
|
@@ -61,6 +61,7 @@ from sky.utils import cluster_utils
|
|
61
61
|
from sky.utils import command_runner
|
62
62
|
from sky.utils import common
|
63
63
|
from sky.utils import common_utils
|
64
|
+
from sky.utils import context_utils
|
64
65
|
from sky.utils import controller_utils
|
65
66
|
from sky.utils import env_options
|
66
67
|
from sky.utils import log_utils
|
@@ -274,6 +275,7 @@ class RayCodeGen:
|
|
274
275
|
ray_address = 'auto'
|
275
276
|
self._code = [
|
276
277
|
textwrap.dedent(f"""\
|
278
|
+
import functools
|
277
279
|
import getpass
|
278
280
|
import hashlib
|
279
281
|
import io
|
@@ -301,6 +303,8 @@ class RayCodeGen:
|
|
301
303
|
from sky.skylet import autostop_lib
|
302
304
|
from sky.skylet import constants
|
303
305
|
from sky.skylet import job_lib
|
306
|
+
from sky.utils import context
|
307
|
+
from sky.utils import context_utils
|
304
308
|
from sky.utils import log_utils
|
305
309
|
from sky.utils import subprocess_utils
|
306
310
|
|
@@ -2415,6 +2419,7 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
2415
2419
|
internal_external_ips[1:], key=lambda x: x[1])
|
2416
2420
|
self.stable_internal_external_ips = stable_internal_external_ips
|
2417
2421
|
|
2422
|
+
@context_utils.cancellation_guard
|
2418
2423
|
@annotations.lru_cache(scope='global')
|
2419
2424
|
@timeline.event
|
2420
2425
|
def get_command_runners(self,
|
@@ -3842,6 +3847,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3842
3847
|
subprocess_utils.run_in_parallel(_rsync_down, parallel_args)
|
3843
3848
|
return dict(zip(job_ids, local_log_dirs))
|
3844
3849
|
|
3850
|
+
@context_utils.cancellation_guard
|
3845
3851
|
def tail_logs(self,
|
3846
3852
|
handle: CloudVmRayResourceHandle,
|
3847
3853
|
job_id: Optional[int],
|
@@ -4559,6 +4565,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
4559
4565
|
# TODO(zhwu): Refactor this to a CommandRunner class, so different backends
|
4560
4566
|
# can support its own command runner.
|
4561
4567
|
@timeline.event
|
4568
|
+
@context_utils.cancellation_guard
|
4562
4569
|
def run_on_head(
|
4563
4570
|
self,
|
4564
4571
|
handle: CloudVmRayResourceHandle,
|
@@ -91,6 +91,8 @@ from sky.utils.cli_utils import status_utils
|
|
91
91
|
if typing.TYPE_CHECKING:
|
92
92
|
import types
|
93
93
|
|
94
|
+
import prettytable
|
95
|
+
|
94
96
|
pd = adaptors_common.LazyImport('pandas')
|
95
97
|
logger = sky_logging.init_logger(__name__)
|
96
98
|
|
@@ -3371,12 +3373,8 @@ def show_gpus(
|
|
3371
3373
|
* ``QTY_PER_NODE`` (Kubernetes only): GPU quantities that can be requested
|
3372
3374
|
on a single node.
|
3373
3375
|
|
3374
|
-
* ``
|
3375
|
-
Kubernetes cluster.
|
3376
|
-
|
3377
|
-
* ``TOTAL_FREE_GPUS`` (Kubernetes only): Number of currently free GPUs
|
3378
|
-
in the Kubernetes cluster. This is fetched in real-time and may change
|
3379
|
-
when other users are using the cluster.
|
3376
|
+
* ``UTILIZATION`` (Kubernetes only): Total number of GPUs free / available
|
3377
|
+
in the Kubernetes cluster.
|
3380
3378
|
"""
|
3381
3379
|
# validation for the --region flag
|
3382
3380
|
if region is not None and cloud is None:
|
@@ -3415,15 +3413,16 @@ def show_gpus(
|
|
3415
3413
|
# TODO(zhwu,romilb): We should move most of these kubernetes related
|
3416
3414
|
# queries into the backend, especially behind the server.
|
3417
3415
|
def _get_kubernetes_realtime_gpu_tables(
|
3418
|
-
|
3419
|
-
|
3420
|
-
|
3416
|
+
context: Optional[str] = None,
|
3417
|
+
name_filter: Optional[str] = None,
|
3418
|
+
quantity_filter: Optional[int] = None
|
3419
|
+
) -> Tuple[List[Tuple[str, 'prettytable.PrettyTable']],
|
3420
|
+
Optional['prettytable.PrettyTable'], List[Tuple[
|
3421
|
+
str, 'models.KubernetesNodesInfo']]]:
|
3421
3422
|
if quantity_filter:
|
3422
3423
|
qty_header = 'QTY_FILTER'
|
3423
|
-
free_header = 'FILTERED_FREE_GPUS'
|
3424
3424
|
else:
|
3425
3425
|
qty_header = 'REQUESTABLE_QTY_PER_NODE'
|
3426
|
-
free_header = 'TOTAL_FREE_GPUS'
|
3427
3426
|
|
3428
3427
|
realtime_gpu_availability_lists = sdk.stream_and_get(
|
3429
3428
|
sdk.realtime_kubernetes_gpu_availability(
|
@@ -3449,41 +3448,19 @@ def show_gpus(
|
|
3449
3448
|
realtime_gpu_infos = []
|
3450
3449
|
total_gpu_info: Dict[str, List[int]] = collections.defaultdict(
|
3451
3450
|
lambda: [0, 0])
|
3451
|
+
all_nodes_info = []
|
3452
3452
|
|
3453
|
-
# TODO(kyuds): remove backwards compatibility code (else branch)
|
3454
|
-
# when API version is bumped
|
3455
3453
|
if realtime_gpu_availability_lists:
|
3456
|
-
|
3457
|
-
|
3458
|
-
|
3459
|
-
|
3460
|
-
|
3461
|
-
|
3462
|
-
|
3463
|
-
|
3464
|
-
available_qty = (gpu_availability.available
|
3465
|
-
if gpu_availability.available != -1
|
3466
|
-
else no_permissions_str)
|
3467
|
-
realtime_gpu_table.add_row([
|
3468
|
-
gpu_availability.gpu,
|
3469
|
-
_list_to_str(gpu_availability.counts),
|
3470
|
-
gpu_availability.capacity,
|
3471
|
-
available_qty,
|
3472
|
-
])
|
3473
|
-
gpu = gpu_availability.gpu
|
3474
|
-
capacity = gpu_availability.capacity
|
3475
|
-
# we want total, so skip permission denied.
|
3476
|
-
available = max(gpu_availability.available, 0)
|
3477
|
-
if capacity > 0:
|
3478
|
-
total_gpu_info[gpu][0] += capacity
|
3479
|
-
total_gpu_info[gpu][1] += available
|
3480
|
-
realtime_gpu_infos.append((ctx, realtime_gpu_table))
|
3481
|
-
else:
|
3482
|
-
# can remove this with api server version bump.
|
3483
|
-
# 2025.05.03
|
3484
|
-
availability_list = realtime_gpu_availability_lists
|
3454
|
+
if len(realtime_gpu_availability_lists[0]) != 2:
|
3455
|
+
# TODO(kyuds): for backwards compatibility, as we add new
|
3456
|
+
# context to the API server response in #5362. Remove this after
|
3457
|
+
# 0.10.0.
|
3458
|
+
realtime_gpu_availability_lists = [
|
3459
|
+
(context, realtime_gpu_availability_lists)
|
3460
|
+
]
|
3461
|
+
for (ctx, availability_list) in realtime_gpu_availability_lists:
|
3485
3462
|
realtime_gpu_table = log_utils.create_table(
|
3486
|
-
['GPU', qty_header, '
|
3463
|
+
['GPU', qty_header, 'UTILIZATION'])
|
3487
3464
|
for realtime_gpu_availability in sorted(availability_list):
|
3488
3465
|
gpu_availability = models.RealtimeGpuAvailability(
|
3489
3466
|
*realtime_gpu_availability)
|
@@ -3493,49 +3470,100 @@ def show_gpus(
|
|
3493
3470
|
realtime_gpu_table.add_row([
|
3494
3471
|
gpu_availability.gpu,
|
3495
3472
|
_list_to_str(gpu_availability.counts),
|
3496
|
-
gpu_availability.capacity,
|
3497
|
-
available_qty,
|
3473
|
+
f'{available_qty} of {gpu_availability.capacity} free',
|
3498
3474
|
])
|
3499
|
-
|
3475
|
+
gpu = gpu_availability.gpu
|
3476
|
+
capacity = gpu_availability.capacity
|
3477
|
+
# we want total, so skip permission denied.
|
3478
|
+
available = max(gpu_availability.available, 0)
|
3479
|
+
if capacity > 0:
|
3480
|
+
total_gpu_info[gpu][0] += capacity
|
3481
|
+
total_gpu_info[gpu][1] += available
|
3482
|
+
realtime_gpu_infos.append((ctx, realtime_gpu_table))
|
3483
|
+
# Collect node info for this context
|
3484
|
+
nodes_info = sdk.stream_and_get(
|
3485
|
+
sdk.kubernetes_node_info(context=ctx))
|
3486
|
+
all_nodes_info.append((ctx, nodes_info))
|
3500
3487
|
|
3501
3488
|
# display an aggregated table for all contexts
|
3502
3489
|
# if there are more than one contexts with GPUs
|
3503
3490
|
if len(realtime_gpu_infos) > 1:
|
3504
3491
|
total_realtime_gpu_table = log_utils.create_table(
|
3505
|
-
['GPU', '
|
3492
|
+
['GPU', 'UTILIZATION'])
|
3506
3493
|
for gpu, stats in total_gpu_info.items():
|
3507
|
-
total_realtime_gpu_table.add_row(
|
3494
|
+
total_realtime_gpu_table.add_row(
|
3495
|
+
[gpu, f'{stats[1]} of {stats[0]} free'])
|
3508
3496
|
else:
|
3509
3497
|
total_realtime_gpu_table = None
|
3510
3498
|
|
3511
|
-
return realtime_gpu_infos, total_realtime_gpu_table
|
3499
|
+
return realtime_gpu_infos, total_realtime_gpu_table, all_nodes_info
|
3512
3500
|
|
3513
|
-
def
|
3501
|
+
def _format_kubernetes_node_info_combined(
|
3502
|
+
contexts_info: List[Tuple[str,
|
3503
|
+
'models.KubernetesNodesInfo']]) -> str:
|
3514
3504
|
node_table = log_utils.create_table(
|
3515
|
-
['
|
3505
|
+
['CONTEXT', 'NODE', 'GPU', 'UTILIZATION'])
|
3516
3506
|
|
3517
|
-
nodes_info = sdk.stream_and_get(
|
3518
|
-
sdk.kubernetes_node_info(context=context))
|
3519
3507
|
no_permissions_str = '<no permissions>'
|
3520
|
-
|
3521
|
-
|
3522
|
-
|
3523
|
-
|
3524
|
-
|
3525
|
-
|
3508
|
+
hints = []
|
3509
|
+
|
3510
|
+
for context, nodes_info in contexts_info:
|
3511
|
+
context_name = context if context else 'default'
|
3512
|
+
if nodes_info.hint:
|
3513
|
+
hints.append(f'{context_name}: {nodes_info.hint}')
|
3514
|
+
|
3515
|
+
for node_name, node_info in nodes_info.node_info_dict.items():
|
3516
|
+
available = node_info.free[
|
3517
|
+
'accelerators_available'] if node_info.free[
|
3518
|
+
'accelerators_available'] != -1 else no_permissions_str
|
3519
|
+
acc_type = node_info.accelerator_type
|
3520
|
+
if acc_type is None:
|
3521
|
+
acc_type = '-'
|
3526
3522
|
node_table.add_row([
|
3527
|
-
node_name,
|
3528
|
-
node_info.total[
|
3523
|
+
context_name, node_name, acc_type,
|
3524
|
+
f'{available} of {node_info.total["accelerator_count"]} '
|
3525
|
+
'free'
|
3529
3526
|
])
|
3530
|
-
|
3531
|
-
|
3532
|
-
if
|
3533
|
-
k8s_per_node_acc_message +=
|
3527
|
+
|
3528
|
+
k8s_per_node_acc_message = ('Kubernetes per-node GPU availability')
|
3529
|
+
if hints:
|
3530
|
+
k8s_per_node_acc_message += ' (' + '; '.join(hints) + ')'
|
3531
|
+
|
3534
3532
|
return (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3535
3533
|
f'{k8s_per_node_acc_message}'
|
3536
3534
|
f'{colorama.Style.RESET_ALL}\n'
|
3537
3535
|
f'{node_table.get_string()}')
|
3538
3536
|
|
3537
|
+
def _format_kubernetes_realtime_gpu(
|
3538
|
+
total_table: 'prettytable.PrettyTable',
|
3539
|
+
k8s_realtime_infos: List[Tuple[str, 'prettytable.PrettyTable']],
|
3540
|
+
all_nodes_info: List[Tuple[str, 'models.KubernetesNodesInfo']],
|
3541
|
+
show_node_info: bool) -> Generator[str, None, None]:
|
3542
|
+
yield (f'{colorama.Fore.GREEN}{colorama.Style.BRIGHT}'
|
3543
|
+
'Kubernetes GPUs'
|
3544
|
+
f'{colorama.Style.RESET_ALL}')
|
3545
|
+
# print total table
|
3546
|
+
if total_table is not None:
|
3547
|
+
yield '\n'
|
3548
|
+
yield from total_table.get_string()
|
3549
|
+
|
3550
|
+
# print individual infos.
|
3551
|
+
for (ctx, k8s_realtime_table) in k8s_realtime_infos:
|
3552
|
+
yield '\n'
|
3553
|
+
# Print context header separately
|
3554
|
+
if ctx:
|
3555
|
+
context_str = f'Context: {ctx}'
|
3556
|
+
else:
|
3557
|
+
context_str = 'Default Context'
|
3558
|
+
yield (
|
3559
|
+
f'{colorama.Fore.CYAN}{context_str}{colorama.Style.RESET_ALL}\n'
|
3560
|
+
)
|
3561
|
+
yield from k8s_realtime_table.get_string()
|
3562
|
+
|
3563
|
+
if show_node_info:
|
3564
|
+
yield '\n'
|
3565
|
+
yield _format_kubernetes_node_info_combined(all_nodes_info)
|
3566
|
+
|
3539
3567
|
def _output() -> Generator[str, None, None]:
|
3540
3568
|
gpu_table = log_utils.create_table(
|
3541
3569
|
['COMMON_GPU', 'AVAILABLE_QUANTITIES'])
|
@@ -3568,7 +3596,7 @@ def show_gpus(
|
|
3568
3596
|
# If --cloud kubernetes is not specified, we want to catch
|
3569
3597
|
# the case where no GPUs are available on the cluster and
|
3570
3598
|
# print the warning at the end.
|
3571
|
-
k8s_realtime_infos, total_table = _get_kubernetes_realtime_gpu_tables(context) # pylint: disable=line-too-long
|
3599
|
+
k8s_realtime_infos, total_table, all_nodes_info = _get_kubernetes_realtime_gpu_tables(context) # pylint: disable=line-too-long
|
3572
3600
|
except ValueError as e:
|
3573
3601
|
if not cloud_is_kubernetes:
|
3574
3602
|
# Make it a note if cloud is not kubernetes
|
@@ -3577,27 +3605,12 @@ def show_gpus(
|
|
3577
3605
|
else:
|
3578
3606
|
print_section_titles = True
|
3579
3607
|
|
3580
|
-
|
3581
|
-
|
3582
|
-
|
3583
|
-
|
3584
|
-
|
3585
|
-
|
3586
|
-
yield '\n\n'
|
3587
|
-
|
3588
|
-
# print individual infos.
|
3589
|
-
for (idx,
|
3590
|
-
(ctx,
|
3591
|
-
k8s_realtime_table)) in enumerate(k8s_realtime_infos):
|
3592
|
-
context_str = f'(Context: {ctx})' if ctx else ''
|
3593
|
-
yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3594
|
-
f'Kubernetes GPUs {context_str}'
|
3595
|
-
f'{colorama.Style.RESET_ALL}\n')
|
3596
|
-
yield from k8s_realtime_table.get_string()
|
3597
|
-
yield '\n\n'
|
3598
|
-
yield _format_kubernetes_node_info(ctx)
|
3599
|
-
if idx != len(k8s_realtime_infos) - 1:
|
3600
|
-
yield '\n\n'
|
3608
|
+
yield from _format_kubernetes_realtime_gpu(
|
3609
|
+
total_table,
|
3610
|
+
k8s_realtime_infos,
|
3611
|
+
all_nodes_info,
|
3612
|
+
show_node_info=True)
|
3613
|
+
|
3601
3614
|
if kubernetes_autoscaling:
|
3602
3615
|
k8s_messages += (
|
3603
3616
|
'\n' + kubernetes_utils.KUBERNETES_AUTOSCALER_NOTE)
|
@@ -3688,31 +3701,18 @@ def show_gpus(
|
|
3688
3701
|
print_section_titles = True
|
3689
3702
|
# TODO(romilb): Show filtered per node GPU availability here as well
|
3690
3703
|
try:
|
3691
|
-
k8s_realtime_infos, total_table
|
3692
|
-
|
3693
|
-
|
3694
|
-
|
3695
|
-
|
3696
|
-
|
3697
|
-
|
3698
|
-
|
3699
|
-
'Total Kubernetes GPUs'
|
3700
|
-
f'{colorama.Style.RESET_ALL}\n')
|
3701
|
-
yield from total_table.get_string()
|
3702
|
-
yield '\n\n'
|
3703
|
-
|
3704
|
-
# print individual tables
|
3705
|
-
for (ctx, k8s_realtime_table) in k8s_realtime_infos:
|
3706
|
-
context_str = f'(Context: {ctx})' if ctx else ''
|
3707
|
-
yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3708
|
-
f'Kubernetes GPUs {context_str}'
|
3709
|
-
f'{colorama.Style.RESET_ALL}\n')
|
3710
|
-
yield from k8s_realtime_table.get_string()
|
3711
|
-
yield '\n\n'
|
3704
|
+
(k8s_realtime_infos, total_table,
|
3705
|
+
all_nodes_info) = _get_kubernetes_realtime_gpu_tables(
|
3706
|
+
context=region, name_filter=name, quantity_filter=quantity)
|
3707
|
+
|
3708
|
+
yield from _format_kubernetes_realtime_gpu(total_table,
|
3709
|
+
k8s_realtime_infos,
|
3710
|
+
all_nodes_info,
|
3711
|
+
show_node_info=False)
|
3712
3712
|
except ValueError as e:
|
3713
3713
|
# In the case of a specific accelerator, show the error message
|
3714
3714
|
# immediately (e.g., "Resources H100 not found ...")
|
3715
|
-
yield
|
3715
|
+
yield common_utils.format_exception(e, use_bracket=True)
|
3716
3716
|
if kubernetes_autoscaling:
|
3717
3717
|
k8s_messages += ('\n' +
|
3718
3718
|
kubernetes_utils.KUBERNETES_AUTOSCALER_NOTE)
|