skypilot-nightly 1.0.0.dev20250812__tar.gz → 1.0.0.dev20250814__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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- {skypilot_nightly-1.0.0.dev20250812/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250814}/PKG-INFO +5 -7
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/__init__.py +4 -2
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/backend_utils.py +69 -6
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/cloud_vm_ray_backend.py +156 -25
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/cudo_catalog.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_cudo.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_nebius.py +6 -3
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/cli/command.py +40 -77
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/common.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/sdk.py +19 -19
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/sdk_async.py +5 -4
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/aws.py +52 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/kubernetes.py +14 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dag.py +1 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/404.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812/sky/dashboard/out/_next/static/Fuy7OzApYTUMz2QgoP7dP → skypilot_nightly-1.0.0.dev20250814/sky/dashboard/out/_next/static/Y0eNlwi85qGRecLTin11y}/_buildManifest.js +1 -1
- skypilot_nightly-1.0.0.dev20250812/sky/dashboard/out/_next/static/chunks/6989-6129c1cfbcf51063.js → skypilot_nightly-1.0.0.dev20250814/sky/dashboard/out/_next/static/chunks/6989-37611fe6b86d274d.js +1 -1
- skypilot_nightly-1.0.0.dev20250812/sky/dashboard/out/_next/static/chunks/pages/_app-491a4d699d95e808.js → skypilot_nightly-1.0.0.dev20250814/sky/dashboard/out/_next/static/chunks/pages/_app-c2ea34fda4f1f8c8.js +1 -1
- skypilot_nightly-1.0.0.dev20250812/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-f5ccf5d39d87aebe.js → skypilot_nightly-1.0.0.dev20250814/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-664c36eda967b1ba.js +1 -1
- skypilot_nightly-1.0.0.dev20250812/sky/dashboard/out/_next/static/chunks/webpack-7fd0cf9dbecff10f.js → skypilot_nightly-1.0.0.dev20250814/sky/dashboard/out/_next/static/chunks/webpack-00c0a51d21157453.js +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/volumes.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/data/storage.py +11 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/exceptions.py +5 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/global_user_state.py +63 -7
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/constants.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/controller.py +0 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/recovery_strategy.py +3 -3
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/scheduler.py +23 -68
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/server/core.py +18 -12
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/state.py +6 -2
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/utils.py +8 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/__init__.py +1 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/aws/config.py +9 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/aws/instance.py +36 -13
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/azure/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/cudo/cudo_wrapper.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/cudo/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/do/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/fluidstack/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/hyperbolic/instance.py +2 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/instance.py +133 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/lambda_cloud/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/nebius/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/oci/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/paperspace/instance.py +2 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/paperspace/utils.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/utils.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/scp/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vast/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/resources.py +1 -2
- skypilot_nightly-1.0.0.dev20250814/sky/schemas/api/responses.py +70 -0
- skypilot_nightly-1.0.0.dev20250814/sky/schemas/generated/autostopv1_pb2.py +36 -0
- skypilot_nightly-1.0.0.dev20250814/sky/schemas/generated/autostopv1_pb2.pyi +43 -0
- skypilot_nightly-1.0.0.dev20250814/sky/schemas/generated/autostopv1_pb2_grpc.py +146 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/constants.py +3 -7
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/replica_managers.py +15 -16
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/serve_state.py +10 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/serve_utils.py +21 -20
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/server/impl.py +15 -19
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/service.py +31 -16
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/server.py +20 -14
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/setup_files/dependencies.py +11 -10
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/autostop_lib.py +38 -5
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/constants.py +3 -1
- skypilot_nightly-1.0.0.dev20250814/sky/skylet/services.py +44 -0
- skypilot_nightly-1.0.0.dev20250814/sky/skylet/skylet.py +82 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/task.py +19 -16
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/aws-ray.yml.j2 +2 -2
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/jobs-controller.yaml.j2 +6 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/command_runner.py +1 -1
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/config_utils.py +29 -5
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/controller_utils.py +73 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/db/db_utils.py +17 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/schemas.py +3 -0
- skypilot_nightly-1.0.0.dev20250814/sky/volumes/client/__init__.py +0 -0
- skypilot_nightly-1.0.0.dev20250814/sky/volumes/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/volumes/server/core.py +2 -2
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/volumes/server/server.py +2 -2
- skypilot_nightly-1.0.0.dev20250814/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814/skypilot_nightly.egg-info}/PKG-INFO +5 -7
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/skypilot_nightly.egg-info/SOURCES.txt +14 -6
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/skypilot_nightly.egg-info/requires.txt +4 -14
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_failover.py +37 -30
- skypilot_nightly-1.0.0.dev20250812/sky/skylet/skylet.py +0 -37
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/hyperbolic_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/cli/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/cli/deprecation_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/cli/flags.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/cli/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/client/service_account_auth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/dashboard/out/_next/static/Fuy7OzApYTUMz2QgoP7dP → skypilot_nightly-1.0.0.dev20250814/sky/dashboard/out/_next/static/Y0eNlwi85qGRecLTin11y}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/1141-a8a8f1adba34c892.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/1559-6c00e20454194859.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/1871-980a395e92633a5c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/2641.142718b6b78a6f9b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/3785.6003d293cb83eab4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/4725.29550342bd53afd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/4937.a2baa2df5572a276.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/6135-85426374db04811e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/691.5eeedf82cc243343.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/6990-0f886f16e0d55ff8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/8056-5bdeda81199c0def.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/8252.62b0d23aed618bb2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/8969-c9686994ddafcf01.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/9159-11421c0f2909236f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/9360.85b0b1b4054574dd.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/9666.cd4273f2a5c5802c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/9847.757720f3b40c0aa5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/9984.c5564679e467d245.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-078751bad714c017.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-da9cc0901349c2e9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/clusters-b30460f683e6ba96.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-13d53fffc03ccb52.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/infra-fc9222e26c8e2f0d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-154f55cf8af55be5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/jobs-cdc60fb5d371e16a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/users-7ed36e44e779d5c7.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/volumes-c9695d657f78b5dc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-f72f73bcef9541dc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/pages/workspaces-8f67be60165724cc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/jobs/server/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/logs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/logs/agent.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/logs/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/logs/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/metrics/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/metrics/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/hyperbolic/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/hyperbolic/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/hyperbolic/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/kubernetes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/py.typed +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/serve/client → skypilot_nightly-1.0.0.dev20250814/sky/schemas}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/serve/server → skypilot_nightly-1.0.0.dev20250814/sky/schemas/api}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/README +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/env.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/script.py.mako +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/server/auth → skypilot_nightly-1.0.0.dev20250814/sky/schemas/generated}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/server/requests → skypilot_nightly-1.0.0.dev20250814/sky/serve/client}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/client/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/server/requests/queues → skypilot_nightly-1.0.0.dev20250814/sky/serve/server}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/server/requests/serializers → skypilot_nightly-1.0.0.dev20250814/sky/server/auth}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/auth/authn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/auth/oauth2_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/daemons.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/metrics.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/skylet → skypilot_nightly-1.0.0.dev20250814/sky/server/requests}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/skylet/providers → skypilot_nightly-1.0.0.dev20250814/sky/server/requests/queues}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/usage → skypilot_nightly-1.0.0.dev20250814/sky/server/requests/serializers}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/rest.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/server/versions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/setup_files/alembic.ini +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/users → skypilot_nightly-1.0.0.dev20250814/sky/skylet}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/utils → skypilot_nightly-1.0.0.dev20250814/sky/skylet/providers}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/ssh_node_pools/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/ssh_node_pools/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/ssh_node_pools/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/utils/aws → skypilot_nightly-1.0.0.dev20250814/sky/usage}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/utils/cli_utils → skypilot_nightly-1.0.0.dev20250814/sky/users}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/users/permission.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/users/token_service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/utils/db → skypilot_nightly-1.0.0.dev20250814/sky/utils}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/utils/kubernetes → skypilot_nightly-1.0.0.dev20250814/sky/utils/aws}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/volumes/client → skypilot_nightly-1.0.0.dev20250814/sky/utils/cli_utils}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/volumes/server → skypilot_nightly-1.0.0.dev20250814/sky/utils/db}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/db/migration_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/git_clone.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812/sky/workspaces → skypilot_nightly-1.0.0.dev20250814/sky/utils/kubernetes}/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes/ssh_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/locks.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/resource_checker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/tempstore.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/utils/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/volumes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/volumes/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/volumes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/volumes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_api_compatibility.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_no_parellel.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250812 → skypilot_nightly-1.0.0.dev20250814}/tests/test_yaml_parser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skypilot-nightly
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev20250814
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -104,9 +104,8 @@ Provides-Extra: ssh
|
|
|
104
104
|
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "ssh"
|
|
105
105
|
Requires-Dist: websockets; extra == "ssh"
|
|
106
106
|
Provides-Extra: remote
|
|
107
|
-
Requires-Dist: grpcio
|
|
108
|
-
Requires-Dist:
|
|
109
|
-
Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "remote"
|
|
107
|
+
Requires-Dist: grpcio>=1.63.0; extra == "remote"
|
|
108
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "remote"
|
|
110
109
|
Provides-Extra: runpod
|
|
111
110
|
Requires-Dist: runpod>=1.6.1; extra == "runpod"
|
|
112
111
|
Provides-Extra: fluidstack
|
|
@@ -169,9 +168,8 @@ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
|
169
168
|
Requires-Dist: websockets; extra == "all"
|
|
170
169
|
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
171
170
|
Requires-Dist: websockets; extra == "all"
|
|
172
|
-
Requires-Dist: grpcio
|
|
173
|
-
Requires-Dist:
|
|
174
|
-
Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "all"
|
|
171
|
+
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
172
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
175
173
|
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
176
174
|
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
177
175
|
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
@@ -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 = '58649973a7c706775528a419f46ae024e59f4603'
|
|
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.dev20250814'
|
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
|
40
40
|
|
|
41
41
|
|
|
@@ -98,6 +98,7 @@ from sky.client.sdk import cancel
|
|
|
98
98
|
from sky.client.sdk import cost_report
|
|
99
99
|
from sky.client.sdk import down
|
|
100
100
|
from sky.client.sdk import download_logs
|
|
101
|
+
from sky.client.sdk import endpoints
|
|
101
102
|
from sky.client.sdk import exec # pylint: disable=redefined-builtin
|
|
102
103
|
from sky.client.sdk import get
|
|
103
104
|
from sky.client.sdk import job_status
|
|
@@ -194,6 +195,7 @@ __all__ = [
|
|
|
194
195
|
'down',
|
|
195
196
|
'autostop',
|
|
196
197
|
'cost_report',
|
|
198
|
+
'endpoints',
|
|
197
199
|
# core APIs Job Management
|
|
198
200
|
'queue',
|
|
199
201
|
'cancel',
|
|
@@ -13,11 +13,13 @@ import sys
|
|
|
13
13
|
import tempfile
|
|
14
14
|
import time
|
|
15
15
|
import typing
|
|
16
|
-
from typing import Any, Dict, List, Optional, Sequence, Set, Tuple,
|
|
16
|
+
from typing import (Any, Callable, Dict, List, Optional, Sequence, Set, Tuple,
|
|
17
|
+
TypeVar, Union)
|
|
17
18
|
import uuid
|
|
18
19
|
|
|
19
20
|
import colorama
|
|
20
21
|
from packaging import version
|
|
22
|
+
import psutil
|
|
21
23
|
from typing_extensions import Literal
|
|
22
24
|
|
|
23
25
|
import sky
|
|
@@ -61,6 +63,7 @@ from sky.utils import ux_utils
|
|
|
61
63
|
from sky.workspaces import core as workspaces_core
|
|
62
64
|
|
|
63
65
|
if typing.TYPE_CHECKING:
|
|
66
|
+
import grpc
|
|
64
67
|
import requests
|
|
65
68
|
from requests import adapters
|
|
66
69
|
from requests.packages.urllib3.util import retry as retry_lib
|
|
@@ -79,6 +82,8 @@ else:
|
|
|
79
82
|
adapters = adaptors_common.LazyImport('requests.adapters')
|
|
80
83
|
retry_lib = adaptors_common.LazyImport(
|
|
81
84
|
'requests.packages.urllib3.util.retry')
|
|
85
|
+
# To avoid requiring grpcio to be installed on the client side.
|
|
86
|
+
grpc = adaptors_common.LazyImport('grpc')
|
|
82
87
|
|
|
83
88
|
logger = sky_logging.init_logger(__name__)
|
|
84
89
|
|
|
@@ -1781,6 +1786,7 @@ def _query_cluster_status_via_cloud_api(
|
|
|
1781
1786
|
exceptions.ClusterStatusFetchingError: the cluster status cannot be
|
|
1782
1787
|
fetched from the cloud provider.
|
|
1783
1788
|
"""
|
|
1789
|
+
cluster_name = handle.cluster_name
|
|
1784
1790
|
cluster_name_on_cloud = handle.cluster_name_on_cloud
|
|
1785
1791
|
cluster_name_in_hint = common_utils.cluster_name_in_hint(
|
|
1786
1792
|
handle.cluster_name, cluster_name_on_cloud)
|
|
@@ -1798,7 +1804,8 @@ def _query_cluster_status_via_cloud_api(
|
|
|
1798
1804
|
cloud_name = repr(handle.launched_resources.cloud)
|
|
1799
1805
|
try:
|
|
1800
1806
|
node_status_dict = provision_lib.query_instances(
|
|
1801
|
-
cloud_name, cluster_name_on_cloud,
|
|
1807
|
+
cloud_name, cluster_name, cluster_name_on_cloud,
|
|
1808
|
+
provider_config)
|
|
1802
1809
|
logger.debug(f'Querying {cloud_name} cluster '
|
|
1803
1810
|
f'{cluster_name_in_hint} '
|
|
1804
1811
|
f'status:\n{pprint.pformat(node_status_dict)}')
|
|
@@ -2227,9 +2234,9 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
|
|
|
2227
2234
|
[status[1] for status in node_statuses if status[1] is not None])
|
|
2228
2235
|
|
|
2229
2236
|
if some_nodes_terminated:
|
|
2230
|
-
init_reason =
|
|
2237
|
+
init_reason = 'one or more nodes terminated'
|
|
2231
2238
|
elif some_nodes_not_stopped:
|
|
2232
|
-
init_reason =
|
|
2239
|
+
init_reason = 'some nodes are up and some nodes are stopped'
|
|
2233
2240
|
logger.debug('The cluster is abnormal. Setting to INIT status. '
|
|
2234
2241
|
f'node_statuses: {node_statuses}')
|
|
2235
2242
|
if record['autostop'] >= 0:
|
|
@@ -2313,12 +2320,22 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
|
|
|
2313
2320
|
# represent that the cluster is partially preempted.
|
|
2314
2321
|
# TODO(zhwu): the definition of INIT should be audited/changed.
|
|
2315
2322
|
# Adding a new status UNHEALTHY for abnormal status can be a choice.
|
|
2323
|
+
init_reason_regex = None
|
|
2324
|
+
if not status_reason:
|
|
2325
|
+
# If there is not a status reason, don't re-add (and overwrite) the
|
|
2326
|
+
# event if there is already an event with the same reason which may
|
|
2327
|
+
# have a status reason.
|
|
2328
|
+
# Some status reason clears after a certain time (e.g. k8s events
|
|
2329
|
+
# are only stored for an hour by default), so it is possible that
|
|
2330
|
+
# the previous event has a status reason, but now it does not.
|
|
2331
|
+
init_reason_regex = f'^Cluster is abnormal because {init_reason} .*'
|
|
2316
2332
|
global_user_state.add_cluster_event(
|
|
2317
2333
|
cluster_name,
|
|
2318
2334
|
status_lib.ClusterStatus.INIT,
|
|
2319
|
-
f'Cluster is abnormal because {init_reason}. Transitioned to INIT.',
|
|
2335
|
+
f'Cluster is abnormal because {init_reason} ({status_reason}). Transitioned to INIT.',
|
|
2320
2336
|
global_user_state.ClusterEventType.STATUS_CHANGE,
|
|
2321
|
-
nop_if_duplicate=True
|
|
2337
|
+
nop_if_duplicate=True,
|
|
2338
|
+
duplicate_regex=init_reason_regex)
|
|
2322
2339
|
global_user_state.add_or_update_cluster(cluster_name,
|
|
2323
2340
|
handle,
|
|
2324
2341
|
requested_resources=None,
|
|
@@ -3361,3 +3378,49 @@ def cluster_file_mounts_lock_id(cluster_name: str) -> str:
|
|
|
3361
3378
|
def workspace_lock_id(workspace_name: str) -> str:
|
|
3362
3379
|
"""Get the lock ID for workspace operations."""
|
|
3363
3380
|
return f'{workspace_name}_workspace'
|
|
3381
|
+
|
|
3382
|
+
|
|
3383
|
+
T = TypeVar('T')
|
|
3384
|
+
|
|
3385
|
+
|
|
3386
|
+
def invoke_skylet_with_retries(
|
|
3387
|
+
handle: 'cloud_vm_ray_backend.CloudVmRayResourceHandle',
|
|
3388
|
+
func: Callable[..., T]) -> T:
|
|
3389
|
+
"""Generic helper for making Skylet gRPC requests.
|
|
3390
|
+
|
|
3391
|
+
This method handles the common pattern of:
|
|
3392
|
+
1. Try the gRPC request
|
|
3393
|
+
2. If SSH tunnel is closed, recreate it and retry
|
|
3394
|
+
"""
|
|
3395
|
+
max_attempts = 3
|
|
3396
|
+
backoff = common_utils.Backoff(initial_backoff=0.5)
|
|
3397
|
+
last_exception: Optional[Exception] = None
|
|
3398
|
+
|
|
3399
|
+
for _ in range(max_attempts):
|
|
3400
|
+
try:
|
|
3401
|
+
return func()
|
|
3402
|
+
except grpc.RpcError as e:
|
|
3403
|
+
last_exception = e
|
|
3404
|
+
if e.code() == grpc.StatusCode.INTERNAL:
|
|
3405
|
+
with ux_utils.print_exception_no_traceback():
|
|
3406
|
+
raise exceptions.SkyletInternalError(e.details())
|
|
3407
|
+
elif e.code() == grpc.StatusCode.UNAVAILABLE:
|
|
3408
|
+
recreate_tunnel = True
|
|
3409
|
+
try:
|
|
3410
|
+
if handle.skylet_ssh_tunnel is not None:
|
|
3411
|
+
proc = psutil.Process(handle.skylet_ssh_tunnel.pid)
|
|
3412
|
+
if proc.is_running(
|
|
3413
|
+
) and proc.status() != psutil.STATUS_ZOMBIE:
|
|
3414
|
+
recreate_tunnel = False
|
|
3415
|
+
except psutil.NoSuchProcess:
|
|
3416
|
+
pass
|
|
3417
|
+
|
|
3418
|
+
if recreate_tunnel:
|
|
3419
|
+
handle.open_and_update_skylet_tunnel()
|
|
3420
|
+
|
|
3421
|
+
time.sleep(backoff.current_backoff())
|
|
3422
|
+
else:
|
|
3423
|
+
raise e
|
|
3424
|
+
|
|
3425
|
+
raise RuntimeError(f'Failed to invoke Skylet after {max_attempts} attempts'
|
|
3426
|
+
) from last_exception
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Backend: runs on cloud virtual machines, managed by Ray."""
|
|
2
2
|
import copy
|
|
3
|
+
import dataclasses
|
|
3
4
|
import enum
|
|
4
5
|
import inspect
|
|
5
6
|
import json
|
|
@@ -20,6 +21,7 @@ from typing import (Any, Callable, Dict, Iterable, List, Optional, Set, Tuple,
|
|
|
20
21
|
Union)
|
|
21
22
|
|
|
22
23
|
import colorama
|
|
24
|
+
import psutil
|
|
23
25
|
import yaml
|
|
24
26
|
|
|
25
27
|
import sky
|
|
@@ -37,6 +39,7 @@ from sky import resources as resources_lib
|
|
|
37
39
|
from sky import sky_logging
|
|
38
40
|
from sky import skypilot_config
|
|
39
41
|
from sky import task as task_lib
|
|
42
|
+
from sky.adaptors import common as adaptors_common
|
|
40
43
|
from sky.backends import backend_utils
|
|
41
44
|
from sky.backends import wheel_utils
|
|
42
45
|
from sky.clouds import cloud as sky_cloud
|
|
@@ -76,7 +79,18 @@ from sky.utils import ux_utils
|
|
|
76
79
|
from sky.utils import volume as volume_lib
|
|
77
80
|
|
|
78
81
|
if typing.TYPE_CHECKING:
|
|
82
|
+
import grpc
|
|
83
|
+
|
|
79
84
|
from sky import dag
|
|
85
|
+
from sky.schemas.generated import autostopv1_pb2
|
|
86
|
+
from sky.schemas.generated import autostopv1_pb2_grpc
|
|
87
|
+
else:
|
|
88
|
+
# To avoid requiring grpcio to be installed on the client side.
|
|
89
|
+
grpc = adaptors_common.LazyImport('grpc')
|
|
90
|
+
autostopv1_pb2 = adaptors_common.LazyImport(
|
|
91
|
+
'sky.schemas.generated.autostopv1_pb2')
|
|
92
|
+
autostopv1_pb2_grpc = adaptors_common.LazyImport(
|
|
93
|
+
'sky.schemas.generated.autostopv1_pb2_grpc')
|
|
80
94
|
|
|
81
95
|
Path = str
|
|
82
96
|
|
|
@@ -2206,6 +2220,12 @@ class RetryingVmProvisioner(object):
|
|
|
2206
2220
|
return config_dict
|
|
2207
2221
|
|
|
2208
2222
|
|
|
2223
|
+
@dataclasses.dataclass
|
|
2224
|
+
class SSHTunnelInfo:
|
|
2225
|
+
port: int
|
|
2226
|
+
pid: int
|
|
2227
|
+
|
|
2228
|
+
|
|
2209
2229
|
class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
2210
2230
|
"""A pickle-able handle to a cluster created by CloudVmRayBackend.
|
|
2211
2231
|
|
|
@@ -2225,10 +2245,11 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2225
2245
|
- (optional) Launched resources
|
|
2226
2246
|
- (optional) Docker user name
|
|
2227
2247
|
- (optional) If TPU(s) are managed, a path to a deletion script.
|
|
2248
|
+
- (optional) Skylet SSH tunnel info.
|
|
2228
2249
|
"""
|
|
2229
2250
|
# Bump if any fields get added/removed/changed, and add backward
|
|
2230
2251
|
# compaitibility logic in __setstate__.
|
|
2231
|
-
_VERSION =
|
|
2252
|
+
_VERSION = 11
|
|
2232
2253
|
|
|
2233
2254
|
def __init__(
|
|
2234
2255
|
self,
|
|
@@ -2261,6 +2282,8 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2261
2282
|
self.launched_nodes = launched_nodes
|
|
2262
2283
|
self.launched_resources = launched_resources
|
|
2263
2284
|
self.docker_user: Optional[str] = None
|
|
2285
|
+
self.is_grpc_enabled = True
|
|
2286
|
+
self.skylet_ssh_tunnel: Optional[SSHTunnelInfo] = None
|
|
2264
2287
|
|
|
2265
2288
|
def __repr__(self):
|
|
2266
2289
|
return (f'ResourceHandle('
|
|
@@ -2276,7 +2299,9 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2276
2299
|
f'\n\tlaunched_resources={self.launched_nodes}x '
|
|
2277
2300
|
f'{self.launched_resources}, '
|
|
2278
2301
|
f'\n\tdocker_user={self.docker_user},'
|
|
2279
|
-
f'\n\tssh_user={self.ssh_user}'
|
|
2302
|
+
f'\n\tssh_user={self.ssh_user},'
|
|
2303
|
+
f'\n\tis_grpc_enabled={self.is_grpc_enabled},'
|
|
2304
|
+
f'\n\tskylet_ssh_tunnel={self.skylet_ssh_tunnel}')
|
|
2280
2305
|
|
|
2281
2306
|
def get_cluster_name(self):
|
|
2282
2307
|
return self.cluster_name
|
|
@@ -2600,6 +2625,66 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2600
2625
|
cluster_config_file)
|
|
2601
2626
|
self.docker_user = docker_user
|
|
2602
2627
|
|
|
2628
|
+
def get_grpc_channel(self) -> 'grpc.Channel':
|
|
2629
|
+
if self.skylet_ssh_tunnel is None:
|
|
2630
|
+
self.open_and_update_skylet_tunnel()
|
|
2631
|
+
assert self.skylet_ssh_tunnel is not None
|
|
2632
|
+
return grpc.insecure_channel(f'localhost:{self.skylet_ssh_tunnel.port}')
|
|
2633
|
+
|
|
2634
|
+
def _cleanup_ssh_tunnel(self, tunnel_info: SSHTunnelInfo) -> None:
|
|
2635
|
+
"""Clean up an SSH tunnel by terminating the process."""
|
|
2636
|
+
try:
|
|
2637
|
+
proc = psutil.Process(tunnel_info.pid)
|
|
2638
|
+
if proc.is_running() and proc.status() != psutil.STATUS_ZOMBIE:
|
|
2639
|
+
logger.debug(
|
|
2640
|
+
f'Terminating SSH tunnel process {tunnel_info.pid}')
|
|
2641
|
+
proc.terminate()
|
|
2642
|
+
try:
|
|
2643
|
+
proc.wait(timeout=3)
|
|
2644
|
+
except psutil.TimeoutExpired:
|
|
2645
|
+
proc.kill()
|
|
2646
|
+
proc.wait(timeout=1)
|
|
2647
|
+
except psutil.NoSuchProcess:
|
|
2648
|
+
pass
|
|
2649
|
+
except Exception as e: # pylint: disable=broad-except
|
|
2650
|
+
logger.warning(
|
|
2651
|
+
f'Failed to cleanup SSH tunnel process {tunnel_info.pid}: {e}')
|
|
2652
|
+
|
|
2653
|
+
def open_and_update_skylet_tunnel(self) -> None:
|
|
2654
|
+
"""Opens an SSH tunnel to the Skylet on the head node,
|
|
2655
|
+
updates the cluster handle, and persists it to the database."""
|
|
2656
|
+
local_port = common_utils.find_free_port(10000)
|
|
2657
|
+
runners = self.get_command_runners()
|
|
2658
|
+
head_runner = runners[0]
|
|
2659
|
+
if isinstance(head_runner, command_runner.SSHCommandRunner):
|
|
2660
|
+
# Disabling ControlMaster makes things easier to reason about
|
|
2661
|
+
# with respect to resource management/ownership,
|
|
2662
|
+
# as killing the process will close the tunnel too.
|
|
2663
|
+
head_runner.disable_control_master = True
|
|
2664
|
+
|
|
2665
|
+
cmd = head_runner.port_forward_command([(local_port,
|
|
2666
|
+
constants.SKYLET_GRPC_PORT)])
|
|
2667
|
+
ssh_tunnel_proc = subprocess.Popen(cmd)
|
|
2668
|
+
tunnel_info = SSHTunnelInfo(port=local_port, pid=ssh_tunnel_proc.pid)
|
|
2669
|
+
try:
|
|
2670
|
+
grpc.channel_ready_future(
|
|
2671
|
+
grpc.insecure_channel(f'localhost:{tunnel_info.port}')).result(
|
|
2672
|
+
timeout=constants.SKYLET_GRPC_TIMEOUT_SECONDS)
|
|
2673
|
+
# Clean up existing tunnel before setting up the new one.
|
|
2674
|
+
if self.skylet_ssh_tunnel is not None:
|
|
2675
|
+
self._cleanup_ssh_tunnel(self.skylet_ssh_tunnel)
|
|
2676
|
+
self.skylet_ssh_tunnel = tunnel_info
|
|
2677
|
+
global_user_state.update_cluster_handle(self.cluster_name, self)
|
|
2678
|
+
except grpc.FutureTimeoutError as e:
|
|
2679
|
+
self._cleanup_ssh_tunnel(tunnel_info)
|
|
2680
|
+
logger.warning(
|
|
2681
|
+
f'Skylet gRPC channel for cluster {self.cluster_name} not '
|
|
2682
|
+
f'ready after {constants.SKYLET_GRPC_TIMEOUT_SECONDS}s')
|
|
2683
|
+
raise e
|
|
2684
|
+
except Exception as e:
|
|
2685
|
+
self._cleanup_ssh_tunnel(tunnel_info)
|
|
2686
|
+
raise e
|
|
2687
|
+
|
|
2603
2688
|
@property
|
|
2604
2689
|
def cluster_yaml(self) -> Optional[str]:
|
|
2605
2690
|
if self._cluster_yaml is None:
|
|
@@ -2697,6 +2782,10 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
|
2697
2782
|
os.path.expanduser(state['_cluster_yaml'])):
|
|
2698
2783
|
state['_cluster_yaml'] = None
|
|
2699
2784
|
|
|
2785
|
+
if version < 11:
|
|
2786
|
+
state['is_grpc_enabled'] = False
|
|
2787
|
+
state['skylet_ssh_tunnel'] = None
|
|
2788
|
+
|
|
2700
2789
|
self.__dict__.update(state)
|
|
2701
2790
|
|
|
2702
2791
|
# Because the update_cluster_ips and update_ssh_ports
|
|
@@ -2736,6 +2825,27 @@ class LocalResourcesHandle(CloudVmRayResourceHandle):
|
|
|
2736
2825
|
return [command_runner.LocalProcessCommandRunner()]
|
|
2737
2826
|
|
|
2738
2827
|
|
|
2828
|
+
class SkyletClient:
|
|
2829
|
+
"""The client to interact with a remote cluster through Skylet."""
|
|
2830
|
+
|
|
2831
|
+
def __init__(self, channel: 'grpc.Channel'):
|
|
2832
|
+
self._autostop_stub = autostopv1_pb2_grpc.AutostopServiceStub(channel)
|
|
2833
|
+
|
|
2834
|
+
def set_autostop(
|
|
2835
|
+
self,
|
|
2836
|
+
request: 'autostopv1_pb2.SetAutostopRequest',
|
|
2837
|
+
timeout: float = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
2838
|
+
) -> 'autostopv1_pb2.SetAutostopResponse':
|
|
2839
|
+
return self._autostop_stub.SetAutostop(request, timeout=timeout)
|
|
2840
|
+
|
|
2841
|
+
def is_autostopping(
|
|
2842
|
+
self,
|
|
2843
|
+
request: 'autostopv1_pb2.IsAutostoppingRequest',
|
|
2844
|
+
timeout: float = constants.SKYLET_GRPC_TIMEOUT_SECONDS
|
|
2845
|
+
) -> 'autostopv1_pb2.IsAutostoppingResponse':
|
|
2846
|
+
return self._autostop_stub.IsAutostopping(request, timeout=timeout)
|
|
2847
|
+
|
|
2848
|
+
|
|
2739
2849
|
@registry.BACKEND_REGISTRY.type_register(name='cloudvmray')
|
|
2740
2850
|
class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
2741
2851
|
"""Backend: runs on cloud virtual machines, managed by Ray.
|
|
@@ -4659,6 +4769,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4659
4769
|
logger.debug(f'instance statuses attempt {attempts + 1}')
|
|
4660
4770
|
node_status_dict = provision_lib.query_instances(
|
|
4661
4771
|
repr(cloud),
|
|
4772
|
+
handle.cluster_name,
|
|
4662
4773
|
cluster_name_on_cloud,
|
|
4663
4774
|
config['provider'],
|
|
4664
4775
|
non_terminated_only=False)
|
|
@@ -4768,17 +4879,30 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4768
4879
|
# Check if we're stopping spot
|
|
4769
4880
|
assert (handle.launched_resources is not None and
|
|
4770
4881
|
handle.launched_resources.cloud is not None), handle
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4882
|
+
if handle.is_grpc_enabled:
|
|
4883
|
+
request = autostopv1_pb2.SetAutostopRequest(
|
|
4884
|
+
idle_minutes=idle_minutes_to_autostop,
|
|
4885
|
+
backend=self.NAME,
|
|
4886
|
+
wait_for=wait_for.to_protobuf() if wait_for is not None else
|
|
4887
|
+
autostopv1_pb2.AUTOSTOP_WAIT_FOR_UNSPECIFIED,
|
|
4888
|
+
down=down,
|
|
4889
|
+
)
|
|
4890
|
+
backend_utils.invoke_skylet_with_retries(
|
|
4891
|
+
handle, lambda: SkyletClient(handle.get_grpc_channel()).
|
|
4892
|
+
set_autostop(request))
|
|
4893
|
+
else:
|
|
4894
|
+
logger.info(
|
|
4895
|
+
'Using legacy remote execution for set_autostop on '
|
|
4896
|
+
'cluster %s.', handle.cluster_name)
|
|
4897
|
+
code = autostop_lib.AutostopCodeGen.set_autostop(
|
|
4898
|
+
idle_minutes_to_autostop, self.NAME, wait_for, down)
|
|
4899
|
+
returncode, _, stderr = self.run_on_head(
|
|
4900
|
+
handle, code, require_outputs=True, stream_logs=stream_logs)
|
|
4901
|
+
subprocess_utils.handle_returncode(returncode,
|
|
4902
|
+
code,
|
|
4903
|
+
'Failed to set autostop',
|
|
4904
|
+
stderr=stderr,
|
|
4905
|
+
stream_logs=stream_logs)
|
|
4782
4906
|
global_user_state.set_cluster_autostop_value(
|
|
4783
4907
|
handle.cluster_name, idle_minutes_to_autostop, down)
|
|
4784
4908
|
|
|
@@ -4803,18 +4927,25 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4803
4927
|
# The head node of the cluster is not UP or in an abnormal state.
|
|
4804
4928
|
# We cannot check if the cluster is autostopping.
|
|
4805
4929
|
return False
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4930
|
+
if handle.is_grpc_enabled:
|
|
4931
|
+
request = autostopv1_pb2.IsAutostoppingRequest()
|
|
4932
|
+
response = backend_utils.invoke_skylet_with_retries(
|
|
4933
|
+
handle, lambda: SkyletClient(handle.get_grpc_channel()).
|
|
4934
|
+
is_autostopping(request))
|
|
4935
|
+
return response.is_autostopping
|
|
4936
|
+
else:
|
|
4937
|
+
logger.info(
|
|
4938
|
+
'Using legacy remote execution for is_autostopping on '
|
|
4939
|
+
'cluster %s.', handle.cluster_name)
|
|
4940
|
+
code = autostop_lib.AutostopCodeGen.is_autostopping()
|
|
4941
|
+
returncode, stdout, stderr = self.run_on_head(
|
|
4942
|
+
handle, code, require_outputs=True, stream_logs=stream_logs)
|
|
4943
|
+
if returncode == 0:
|
|
4944
|
+
return message_utils.decode_payload(stdout)
|
|
4945
|
+
logger.debug('Failed to check if cluster is autostopping with '
|
|
4946
|
+
f'{returncode}: {stdout+stderr}\n'
|
|
4947
|
+
f'Command: {code}')
|
|
4948
|
+
return False
|
|
4818
4949
|
|
|
4819
4950
|
# TODO(zhwu): Refactor this to a CommandRunner class, so different backends
|
|
4820
4951
|
# can support its own command runner.
|
|
@@ -4,7 +4,7 @@ import typing
|
|
|
4
4
|
from typing import Dict, List, Optional, Tuple, Union
|
|
5
5
|
|
|
6
6
|
from sky.catalog import common
|
|
7
|
-
|
|
7
|
+
from sky.provision.cudo import cudo_machine_type as cudo_mt
|
|
8
8
|
from sky.utils import ux_utils
|
|
9
9
|
|
|
10
10
|
if typing.TYPE_CHECKING:
|
|
@@ -22,6 +22,8 @@ TIMEOUT = 10
|
|
|
22
22
|
PARENT_ID_TEMPLATE = 'project-{}public-images'
|
|
23
23
|
ACCELERATOR_MANUFACTURER = 'NVIDIA'
|
|
24
24
|
|
|
25
|
+
VRAM = {'L40S': 49152, 'H100': 81920, 'H200': 144384, 'B200': 184320}
|
|
26
|
+
|
|
25
27
|
|
|
26
28
|
@dataclass
|
|
27
29
|
class PresetInfo:
|
|
@@ -196,17 +198,18 @@ def _write_preset_prices(presets: List[PresetInfo], output_file: str) -> None:
|
|
|
196
198
|
key=lambda x:
|
|
197
199
|
(bool(x.gpu), x.region, x.platform_name, x.vcpu)):
|
|
198
200
|
gpu_info = ''
|
|
199
|
-
if preset.gpu > 0:
|
|
201
|
+
if preset.gpu > 0 and preset.accelerator_name:
|
|
200
202
|
gpu_info_dict = {
|
|
201
203
|
'Gpus': [{
|
|
202
204
|
'Name': preset.accelerator_name,
|
|
203
205
|
'Manufacturer': preset.accelerator_manufacturer,
|
|
204
206
|
'Count': preset.gpu,
|
|
205
207
|
'MemoryInfo': {
|
|
206
|
-
'SizeInMiB': preset.
|
|
208
|
+
'SizeInMiB': VRAM.get(preset.accelerator_name, 0)
|
|
207
209
|
},
|
|
208
210
|
}],
|
|
209
|
-
'TotalGpuMemoryInMiB': preset.
|
|
211
|
+
'TotalGpuMemoryInMiB': VRAM.get(preset.accelerator_name, 0)
|
|
212
|
+
* preset.gpu,
|
|
210
213
|
}
|
|
211
214
|
gpu_info = json.dumps(gpu_info_dict).replace('"', '\'')
|
|
212
215
|
|