skypilot-nightly 1.0.0.dev20250724__tar.gz → 1.0.0.dev20250725__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.

Files changed (529) hide show
  1. {skypilot_nightly-1.0.0.dev20250724/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250725}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/backend_utils.py +27 -1
  4. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/cli/command.py +55 -16
  5. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/404.html +1 -1
  6. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/webpack-b6447da22305b14a.js → skypilot_nightly-1.0.0.dev20250725/sky/dashboard/out/_next/static/chunks/webpack-a305898dc479711e.js +1 -1
  7. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  8. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/clusters/[cluster].html +1 -1
  9. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/clusters.html +1 -1
  10. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/config.html +1 -1
  11. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/index.html +1 -1
  12. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/infra/[context].html +1 -1
  13. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/infra.html +1 -1
  14. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/jobs/[job].html +1 -1
  15. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/jobs.html +1 -1
  16. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/users.html +1 -1
  17. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/volumes.html +1 -1
  18. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/workspace/new.html +1 -1
  19. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/workspaces/[name].html +1 -1
  20. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/workspaces.html +1 -1
  21. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/global_user_state.py +12 -23
  22. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/state.py +12 -24
  23. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/common.py +9 -0
  24. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/server.py +3 -0
  25. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/aws-ray.yml.j2 +7 -1
  26. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/azure-ray.yml.j2 +1 -1
  27. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/do-ray.yml.j2 +1 -1
  28. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/lambda-ray.yml.j2 +1 -1
  29. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/nebius-ray.yml.j2 +1 -1
  30. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/paperspace-ray.yml.j2 +1 -1
  31. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/runpod-ray.yml.j2 +1 -1
  32. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/db/migration_utils.py +60 -19
  33. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/schemas.py +13 -0
  34. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  35. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/skypilot_nightly.egg-info/SOURCES.txt +3 -3
  36. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_cli.py +216 -3
  37. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/LICENSE +0 -0
  38. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/MANIFEST.in +0 -0
  39. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/README.md +0 -0
  40. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/pyproject.toml +0 -0
  41. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/setup.cfg +0 -0
  42. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/setup.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/__init__.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/aws.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/azure.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/cloudflare.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/common.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/cudo.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/do.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/docker.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/gcp.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/hyperbolic.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/ibm.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/kubernetes.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/nebius.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/oci.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/runpod.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/vast.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/adaptors/vsphere.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/admin_policy.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/authentication.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/__init__.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/backend.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/cloud_vm_ray_backend.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/docker_utils.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/local_docker_backend.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/backends/wheel_utils.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/__init__.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/aws_catalog.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/azure_catalog.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/common.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/config.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/cudo_catalog.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/__init__.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/analyze.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/do_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/fluidstack_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/gcp_catalog.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/hyperbolic_catalog.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/ibm_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/kubernetes_catalog.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/lambda_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/nebius_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/oci_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/paperspace_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/runpod_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/scp_catalog.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/ssh_catalog.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/vast_catalog.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/catalog/vsphere_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/check.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/cli.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/__init__.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/cli/__init__.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/cli/deprecation_utils.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/cli/flags.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/cli/git.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/common.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/oauth.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/sdk.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/sdk.pyi +0 -0
  114. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/client/service_account_auth.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/cloud_stores.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/__init__.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/aws.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/azure.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/cloud.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/cudo.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/do.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/fluidstack.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/gcp.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/hyperbolic.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/ibm.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/kubernetes.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/lambda_cloud.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/nebius.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/oci.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/paperspace.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/runpod.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/scp.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/ssh.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/utils/__init__.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/utils/aws_utils.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/utils/azure_utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/utils/gcp_utils.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/utils/oci_utils.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/utils/scp_utils.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/vast.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/clouds/vsphere.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/core.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dag.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/BURfWrKsQk9psMPv0OXrh → skypilot_nightly-1.0.0.dev20250725/sky/dashboard/out/_next/static/SiA7c33x_DqO42M373Okd}/_buildManifest.js +0 -0
  145. {skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/BURfWrKsQk9psMPv0OXrh → skypilot_nightly-1.0.0.dev20250725/sky/dashboard/out/_next/static/SiA7c33x_DqO42M373Okd}/_ssgManifest.js +0 -0
  146. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/1043-869d9c78bf5dd3df.js +0 -0
  147. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/1141-e49a159c30a6c4a7.js +0 -0
  148. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  149. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/1559-18717d96ef2fcbe9.js +0 -0
  150. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js +0 -0
  151. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/1871-ea0e7283886407ca.js +0 -0
  152. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/2003.b82e6db40ec4c463.js +0 -0
  153. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/2350.23778a2b19aabd33.js +0 -0
  154. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/2369.2d6e4757f8dfc2b7.js +0 -0
  155. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/2641.74c19c4d45a2c034.js +0 -0
  156. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/3698-9fa11dafb5cad4a6.js +0 -0
  157. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/3785.59705416215ff08b.js +0 -0
  158. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/4725.66125dcd9832aa5d.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/4869.da729a7db3a31f43.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/4937.d75809403fc264ac.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/6135-2abbd0352f8ee061.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/6601-d4a381403a8bae91.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/691.488b4aef97c28727.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/6989-eab0e9c16b64fd9f.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/6990-f64e03df359e04f7.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/8969-8e0b2055bf5dd499.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/9025.4a9099bdf3ed4875.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/938-7ee806653aef0609.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/9847.387abf8a14d722db.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/9984.0460de9d3adf5582.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/_app-da491665d4289aae.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-2186770cc2de1623.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-95afb019ab85801c.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/index-89e7daf7b7df02e0.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-a90b4fe4616dc501.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/infra-0d3d1f890c5d188a.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dc0299ffefebcdbe.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/jobs-49f790d12a85027c.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/users-6790fcefd5487b13.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-6bcd4b20914d76c9.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/_next/static/css/b3227360726f12eb.css +0 -0
  198. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/favicon.ico +0 -0
  199. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/skypilot.svg +0 -0
  200. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  201. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/data/__init__.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/data/data_transfer.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/data/data_utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/data/mounting_utils.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/data/storage.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/data/storage_utils.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/exceptions.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/execution.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/__init__.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/client/__init__.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/client/sdk.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/constants.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/controller.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/recovery_strategy.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/scheduler.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/server/__init__.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/server/core.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/server/server.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/server/utils.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/jobs/utils.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/logs/__init__.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/logs/agent.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/logs/aws.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/logs/gcp.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/metrics/__init__.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/metrics/utils.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/models.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/optimizer.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/aws/__init__.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/aws/config.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/aws/instance.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/aws/utils.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/azure/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/azure/azure-config-template.json +0 -0
  236. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/azure/config.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/azure/instance.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/common.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/constants.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/cudo/__init__.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/cudo/config.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/cudo/cudo_machine_type.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/cudo/cudo_utils.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/cudo/cudo_wrapper.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/cudo/instance.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/do/__init__.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/do/config.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/do/constants.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/do/instance.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/do/utils.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/docker_utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/fluidstack/__init__.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/fluidstack/config.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/fluidstack/instance.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/__init__.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/config.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/constants.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/instance.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/instance_utils.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/mig_utils.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/gcp/volume_utils.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/hyperbolic/__init__.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/hyperbolic/config.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/hyperbolic/instance.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/hyperbolic/utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/instance_setup.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/config.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/constants.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/instance.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  273. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/network.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/network_utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/kubernetes/volume.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/lambda_cloud/__init__.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/lambda_cloud/config.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/lambda_cloud/instance.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/logging.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/metadata_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/nebius/__init__.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/nebius/config.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/nebius/constants.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/nebius/instance.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/nebius/utils.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/oci/__init__.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/oci/config.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/oci/instance.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/oci/query_utils.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/paperspace/__init__.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/paperspace/config.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/paperspace/constants.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/paperspace/instance.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/paperspace/utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/provisioner.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/__init__.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/api/__init__.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/api/commands.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/api/pods.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/config.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/instance.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/runpod/utils.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/scp/__init__.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/scp/config.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/scp/instance.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/ssh/__init__.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vast/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vast/config.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vast/instance.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vast/utils.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/custom_script.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/id_generator.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/service_manager.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/common/vim_utils.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/config.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/instance.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/provision/vsphere/vsphere_utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/resources.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/schemas/db/README +0 -0
  330. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/schemas/db/env.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/schemas/db/script.py.mako +0 -0
  333. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/__init__.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/autoscalers.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/client/__init__.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/client/sdk.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/constants.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/controller.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/load_balancer.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/load_balancing_policies.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/replica_managers.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/serve_state.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/serve_utils.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/server/__init__.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/server/core.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/server/server.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/service.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/service_spec.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/serve/spot_placer.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/__init__.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/config.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/constants.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/html/log.html +0 -0
  355. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/html/token_page.html +0 -0
  356. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/metrics.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/__init__.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/event_loop.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/executor.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/payloads.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/preconditions.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/process.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/queues/__init__.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/queues/local_queue.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/queues/mp_queue.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/requests.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/serializers/__init__.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/serializers/decoders.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/requests/serializers/encoders.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/rest.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/state.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/stream_utils.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/uvicorn.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/server/versions.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/setup_files/MANIFEST.in +0 -0
  376. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/setup_files/alembic.ini +0 -0
  377. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/setup_files/dependencies.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/setup_files/setup.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/sky_logging.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/LICENSE +0 -0
  381. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/__init__.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/attempt_skylet.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/autostop_lib.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/configs.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/constants.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/events.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/job_lib.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/log_lib.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/log_lib.pyi +0 -0
  390. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/providers/__init__.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/providers/command_runner.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/providers/ibm/__init__.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/providers/ibm/node_provider.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/providers/ibm/utils.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/__init__.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  398. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/cli.py.patch +0 -0
  399. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  400. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  401. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  402. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/updater.py.patch +0 -0
  403. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/ray_patches/worker.py.patch +0 -0
  404. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/skylet.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skylet/subprocess_daemon.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/skypilot_config.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/ssh_node_pools/__init__.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/ssh_node_pools/core.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/ssh_node_pools/server.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/task.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/cudo-ray.yml.j2 +0 -0
  412. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  413. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/gcp-ray.yml.j2 +0 -0
  414. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  415. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/ibm-ray.yml.j2 +0 -0
  416. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/jobs-controller.yaml.j2 +0 -0
  417. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  418. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  419. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  420. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  421. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  422. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/local-ray.yml.j2 +0 -0
  423. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/oci-ray.yml.j2 +0 -0
  424. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/scp-ray.yml.j2 +0 -0
  425. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  426. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  427. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/vast-ray.yml.j2 +0 -0
  428. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/vsphere-ray.yml.j2 +0 -0
  429. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/templates/websocket_proxy.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/usage/__init__.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/usage/constants.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/usage/usage_lib.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/users/__init__.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/users/model.conf +0 -0
  435. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/users/permission.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/users/rbac.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/users/server.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/users/token_service.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/__init__.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/accelerator_registry.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/admin_policy_utils.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/annotations.py +0 -0
  443. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/atomic.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/aws/__init__.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/aws/get_default_security_group.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/cli_utils/__init__.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/cli_utils/status_utils.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/cluster_utils.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/command_runner.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/command_runner.pyi +0 -0
  451. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/common.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/common_utils.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/config_utils.py +0 -0
  454. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/context.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/context_utils.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/control_master_utils.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/controller_utils.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/dag_utils.py +0 -0
  459. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/db/__init__.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/db/db_utils.py +0 -0
  461. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/env_options.py +0 -0
  462. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/git.py +0 -0
  463. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/git_clone.sh +0 -0
  464. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/infra_utils.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/__init__.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  467. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/config_map_utils.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/create_cluster.sh +0 -0
  469. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  470. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  474. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  476. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  477. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  479. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  480. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes/ssh_utils.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/kubernetes_enums.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/locks.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/log_utils.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/message_utils.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/registry.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/resource_checker.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/resources_utils.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/rich_console_utils.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/rich_utils.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/status_lib.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/subprocess_utils.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/tempstore.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/timeline.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/ux_utils.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/utils/validator.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/__init__.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/client/__init__.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/client/sdk.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/server/__init__.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/server/core.py +0 -0
  502. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/server/server.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/utils.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/volumes/volume.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/workspaces/__init__.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/workspaces/core.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/workspaces/server.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/sky/workspaces/utils.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  510. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  511. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/skypilot_nightly.egg-info/requires.txt +0 -0
  512. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/skypilot_nightly.egg-info/top_level.txt +0 -0
  513. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_api.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_api_compatibility.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_config.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_db_utils.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_failover.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_global_user_state.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_jobs.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_jobs_and_serve.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_list_accelerators.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_no_parellel.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_optimizer_dryruns.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_optimizer_random_dag.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_serve_autoscaler.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_smoke.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_storage.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/tests/test_wheels.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250724 → skypilot_nightly-1.0.0.dev20250725}/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.dev20250724
3
+ Version: 1.0.0.dev20250725
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.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 = '5b5dfe080437e0b2e58b1e7742c5864a1ebe9432'
8
+ _SKYPILOT_COMMIT_SHA = 'c8383b047969b0b18ca50a7ad02ea9d8cf77d236'
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.dev20250724'
38
+ __version__ = '1.0.0.dev20250725'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -35,6 +35,7 @@ from sky.adaptors import common as adaptors_common
35
35
  from sky.jobs import utils as managed_job_utils
36
36
  from sky.provision import instance_setup
37
37
  from sky.provision.kubernetes import utils as kubernetes_utils
38
+ from sky.server.requests import requests as requests_lib
38
39
  from sky.skylet import constants
39
40
  from sky.usage import usage_lib
40
41
  from sky.utils import cluster_utils
@@ -798,6 +799,12 @@ def write_cluster_config(
798
799
  'volume_name_on_cloud': vol.volume_config.name_on_cloud,
799
800
  })
800
801
 
802
+ runcmd = skypilot_config.get_effective_region_config(
803
+ cloud=str(to_provision.cloud).lower(),
804
+ region=to_provision.region,
805
+ keys=('post_provision_runcmd',),
806
+ default_value=None)
807
+
801
808
  # Use a tmp file path to avoid incomplete YAML file being re-used in the
802
809
  # future.
803
810
  tmp_yaml_path = yaml_path + '.tmp'
@@ -833,7 +840,7 @@ def write_cluster_config(
833
840
  # User-supplied remote_identity
834
841
  'remote_identity': remote_identity,
835
842
  # The reservation pools that specified by the user. This is
836
- # currently only used by GCP.
843
+ # currently only used by AWS and GCP.
837
844
  'specific_reservations': specific_reservations,
838
845
 
839
846
  # Conda setup
@@ -896,6 +903,10 @@ def write_cluster_config(
896
903
 
897
904
  # Volume mounts
898
905
  'volume_mounts': volume_mount_vars,
906
+
907
+ # runcmd to append to the cloud-init cloud config passed to the
908
+ # machine's UserData. This is currently only used by AWS.
909
+ 'runcmd': runcmd,
899
910
  }),
900
911
  output_path=tmp_yaml_path)
901
912
  config_dict['cluster_name'] = cluster_name
@@ -2831,6 +2842,21 @@ def get_clusters(
2831
2842
  force_refresh_statuses = None
2832
2843
 
2833
2844
  def _refresh_cluster(cluster_name):
2845
+ # TODO(syang): we should try not to leak
2846
+ # request info in backend_utils.py.
2847
+ # Refactor this to use some other info to
2848
+ # determine if a launch is in progress.
2849
+ request = requests_lib.get_request_tasks(
2850
+ status=[requests_lib.RequestStatus.RUNNING],
2851
+ cluster_names=[cluster_name],
2852
+ include_request_names=['sky.launch'])
2853
+ if len(request) > 0:
2854
+ # There is an active launch request on the cluster,
2855
+ # so we don't want to update the cluster status until
2856
+ # the request is completed.
2857
+ logger.debug(f'skipping refresh for cluster {cluster_name} '
2858
+ 'as there is an active launch request')
2859
+ return global_user_state.get_cluster_from_name(cluster_name)
2834
2860
  try:
2835
2861
  record = refresh_cluster_record(
2836
2862
  cluster_name,
@@ -24,6 +24,7 @@ listed in "sky --help". Take care to put logically connected commands close to
24
24
  each other.
25
25
  """
26
26
  import collections
27
+ import concurrent.futures
27
28
  import fnmatch
28
29
  import os
29
30
  import pathlib
@@ -358,6 +359,9 @@ def _install_shell_completion(ctx: click.Context, param: click.Parameter,
358
359
  bashrc_diff = ('\n# For SkyPilot shell completion'
359
360
  '\n. ~/.sky/.sky-complete.bash')
360
361
 
362
+ cmd: Optional[str] = None
363
+ reload_cmd: Optional[str] = None
364
+
361
365
  if value == 'bash':
362
366
  install_cmd = f'_SKY_COMPLETE=bash_source sky > \
363
367
  ~/.sky/.sky-complete.bash && \
@@ -389,6 +393,7 @@ def _install_shell_completion(ctx: click.Context, param: click.Parameter,
389
393
  click.secho(f'Unsupported shell: {value}', fg='red')
390
394
  ctx.exit()
391
395
 
396
+ assert cmd is not None # This should never be None due to ctx.exit() above
392
397
  try:
393
398
  subprocess.run(cmd,
394
399
  shell=True,
@@ -420,6 +425,9 @@ def _uninstall_shell_completion(ctx: click.Context, param: click.Parameter,
420
425
  else:
421
426
  value = os.path.basename(os.environ['SHELL'])
422
427
 
428
+ cmd: Optional[str] = None
429
+ reload_cmd: Optional[str] = None
430
+
423
431
  if value == 'bash':
424
432
  cmd = 'sed -i"" -e "/# For SkyPilot shell completion/d" ~/.bashrc && \
425
433
  sed -i"" -e "/sky-complete.bash/d" ~/.bashrc && \
@@ -444,6 +452,7 @@ def _uninstall_shell_completion(ctx: click.Context, param: click.Parameter,
444
452
  click.secho(f'Unsupported shell: {value}', fg='red')
445
453
  ctx.exit()
446
454
 
455
+ assert cmd is not None # This should never be None due to ctx.exit() above
447
456
  try:
448
457
  subprocess.run(cmd, shell=True, check=True)
449
458
  click.secho(f'Shell completion uninstalled for {value}', fg='green')
@@ -1745,19 +1754,16 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1745
1754
  # Do not show job queue if user specifies clusters, and if user
1746
1755
  # specifies --ip or --endpoint(s).
1747
1756
  show_managed_jobs = show_managed_jobs and not any([clusters, ip, endpoints])
1748
- if show_managed_jobs:
1749
- managed_jobs_queue_request_id = managed_jobs.queue(refresh=False,
1750
- skip_finished=True,
1751
- all_users=all_users)
1752
1757
  show_endpoints = endpoints or endpoint is not None
1753
1758
  show_single_endpoint = endpoint is not None
1754
1759
  show_services = show_services and not any([clusters, ip, endpoints])
1755
- if show_services:
1756
- # Run the sky serve service query in parallel to speed up the
1757
- # status query.
1758
- service_status_request_id = serve_lib.status(service_names=None)
1759
1760
 
1760
- workspace_request_id = None
1761
+ query_clusters: Optional[List[str]] = None if not clusters else clusters
1762
+ refresh_mode = common.StatusRefreshMode.NONE
1763
+ if refresh:
1764
+ refresh_mode = common.StatusRefreshMode.FORCE
1765
+
1766
+ # Phase 1: Validate arguments for IP/endpoint queries
1761
1767
  if ip or show_endpoints:
1762
1768
  if refresh:
1763
1769
  raise click.UsageError(
@@ -1791,9 +1797,19 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1791
1797
  flag='ip' if ip else
1792
1798
  ('endpoint port'
1793
1799
  if show_single_endpoint else 'endpoints')))
1794
- else:
1800
+
1801
+ # Phase 2: Parallel submission of all API requests
1802
+ def submit_managed_jobs():
1803
+ return managed_jobs.queue(refresh=False,
1804
+ skip_finished=True,
1805
+ all_users=all_users)
1806
+
1807
+ def submit_services() -> Optional[str]:
1808
+ return serve_lib.status(service_names=None)
1809
+
1810
+ def submit_workspace() -> Optional[str]:
1795
1811
  try:
1796
- workspace_request_id = sdk.workspaces()
1812
+ return sdk.workspaces()
1797
1813
  except RuntimeError:
1798
1814
  # Backward compatibility for API server before #5660.
1799
1815
  # TODO(zhwu): remove this after 0.10.0.
@@ -1802,12 +1818,35 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1802
1818
  'workspaces. Update with: sky api stop; '
1803
1819
  'sky api start'
1804
1820
  f'{colorama.Style.RESET_ALL}')
1805
- workspace_request_id = None
1821
+ return None
1806
1822
 
1807
- query_clusters: Optional[List[str]] = None if not clusters else clusters
1808
- refresh_mode = common.StatusRefreshMode.NONE
1809
- if refresh:
1810
- refresh_mode = common.StatusRefreshMode.FORCE
1823
+ managed_jobs_queue_request_id = None
1824
+ service_status_request_id = None
1825
+ workspace_request_id = None
1826
+
1827
+ # Submit all requests in parallel
1828
+ with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
1829
+ if show_managed_jobs:
1830
+ managed_jobs_request_future = executor.submit(submit_managed_jobs)
1831
+ if show_services:
1832
+ services_request_future = executor.submit(submit_services)
1833
+ if not (ip or show_endpoints):
1834
+ workspace_request_future = executor.submit(submit_workspace)
1835
+
1836
+ # Get the request IDs
1837
+ if show_managed_jobs:
1838
+ managed_jobs_queue_request_id = managed_jobs_request_future.result()
1839
+ if show_services:
1840
+ service_status_request_id = services_request_future.result()
1841
+ if not (ip or show_endpoints):
1842
+ workspace_request_id = workspace_request_future.result()
1843
+
1844
+ managed_jobs_queue_request_id = '' if not managed_jobs_queue_request_id \
1845
+ else managed_jobs_queue_request_id
1846
+ service_status_request_id = '' if not service_status_request_id \
1847
+ else service_status_request_id
1848
+
1849
+ # Phase 3: Get cluster records and handle special cases
1811
1850
  cluster_records = _get_cluster_records_and_set_ssh_config(
1812
1851
  query_clusters, refresh_mode, all_users)
1813
1852
 
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- !function(){"use strict";var e,t,n,r,c,o,f,u,i,a={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var f=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],u=!0,i=0;i<n.length;i++)f>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(u=!1,c<f&&(f=c));if(u){e.splice(o--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=n(f))Object.getOwnPropertyNames(f).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2350===e?"static/chunks/2350.23778a2b19aabd33.js":2369===e?"static/chunks/2369.2d6e4757f8dfc2b7.js":3937===e?"static/chunks/3937.d7f1c55d1916c7f2.js":9025===e?"static/chunks/9025.4a9099bdf3ed4875.js":4937===e?"static/chunks/4937.d75809403fc264ac.js":9984===e?"static/chunks/9984.0460de9d3adf5582.js":2003===e?"static/chunks/2003.b82e6db40ec4c463.js":9847===e?"static/chunks/9847.387abf8a14d722db.js":4725===e?"static/chunks/4725.66125dcd9832aa5d.js":691===e?"static/chunks/691.488b4aef97c28727.js":2641===e?"static/chunks/2641.74c19c4d45a2c034.js":3785===e?"static/chunks/3785.59705416215ff08b.js":4869===e?"static/chunks/4869.da729a7db3a31f43.js":"static/chunks/"+e+"-"+({616:"162f3033ffcd3d31",938:"7ee806653aef0609",1043:"869d9c78bf5dd3df",1141:"e49a159c30a6c4a7",1272:"1ef0bf0237faccdb",1559:"18717d96ef2fcbe9",1664:"d65361e92b85e786",1871:"ea0e7283886407ca",3698:"9fa11dafb5cad4a6",5230:"df791914b54d91d9",5739:"5ea3ffa10fc884f2",6135:"2abbd0352f8ee061",6601:"d4a381403a8bae91",6989:"eab0e9c16b64fd9f",6990:"f64e03df359e04f7",7411:"2cc31dc0fdf2a9ad",8969:"8e0b2055bf5dd499"})[e]+".js"},d.miniCssF=function(e){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var f,u,i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var s=i[a];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){f=s;break}}f||(u=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,d.nc&&f.setAttribute("nonce",d.nc),f.setAttribute("data-webpack",c+n),f.src=d.tu(e)),r[e]=[t];var l=function(t,n){f.onerror=f.onload=null,clearTimeout(b);var c=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),c&&c.forEach(function(e){return e(n)}),t)return t(n)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=l.bind(null,f.onerror),f.onload=l.bind(null,f.onload),u&&document.head.appendChild(f)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",f={2272:0},d.f.j=function(e,t){var n=d.o(f,e)?f[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=f[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),o=Error();d.l(c,function(t){if(d.o(f,e)&&(0!==(n=f[e])&&(f[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else f[e]=0}},d.O.j=function(e){return 0===f[e]},u=function(e,t){var n,r,c=t[0],o=t[1],u=t[2],i=0;if(c.some(function(e){return 0!==f[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(u)var a=u(d)}for(e&&e(t);i<c.length;i++)r=c[i],d.o(f,r)&&f[r]&&f[r][0](),f[r]=0;return d.O(a)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(u.bind(null,0)),i.push=u.bind(null,i.push.bind(i)),d.nc=void 0}();
1
+ !function(){"use strict";var e,t,n,r,c,o,f,u,i,a={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var f=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],u=!0,i=0;i<n.length;i++)f>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(u=!1,c<f&&(f=c));if(u){e.splice(o--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=n(f))Object.getOwnPropertyNames(f).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2350===e?"static/chunks/2350.23778a2b19aabd33.js":2369===e?"static/chunks/2369.2d6e4757f8dfc2b7.js":3937===e?"static/chunks/3937.d7f1c55d1916c7f2.js":9025===e?"static/chunks/9025.4a9099bdf3ed4875.js":4937===e?"static/chunks/4937.d75809403fc264ac.js":9984===e?"static/chunks/9984.0460de9d3adf5582.js":2003===e?"static/chunks/2003.b82e6db40ec4c463.js":691===e?"static/chunks/691.488b4aef97c28727.js":2641===e?"static/chunks/2641.74c19c4d45a2c034.js":9847===e?"static/chunks/9847.387abf8a14d722db.js":4725===e?"static/chunks/4725.66125dcd9832aa5d.js":3785===e?"static/chunks/3785.59705416215ff08b.js":4869===e?"static/chunks/4869.da729a7db3a31f43.js":"static/chunks/"+e+"-"+({616:"162f3033ffcd3d31",938:"7ee806653aef0609",1043:"869d9c78bf5dd3df",1141:"e49a159c30a6c4a7",1272:"1ef0bf0237faccdb",1559:"18717d96ef2fcbe9",1664:"d65361e92b85e786",1871:"ea0e7283886407ca",3698:"9fa11dafb5cad4a6",5230:"df791914b54d91d9",5739:"5ea3ffa10fc884f2",6135:"2abbd0352f8ee061",6601:"d4a381403a8bae91",6989:"eab0e9c16b64fd9f",6990:"f64e03df359e04f7",7411:"2cc31dc0fdf2a9ad",8969:"8e0b2055bf5dd499"})[e]+".js"},d.miniCssF=function(e){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var f,u,i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var s=i[a];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){f=s;break}}f||(u=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,d.nc&&f.setAttribute("nonce",d.nc),f.setAttribute("data-webpack",c+n),f.src=d.tu(e)),r[e]=[t];var l=function(t,n){f.onerror=f.onload=null,clearTimeout(b);var c=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),c&&c.forEach(function(e){return e(n)}),t)return t(n)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=l.bind(null,f.onerror),f.onload=l.bind(null,f.onload),u&&document.head.appendChild(f)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",f={2272:0},d.f.j=function(e,t){var n=d.o(f,e)?f[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=f[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),o=Error();d.l(c,function(t){if(d.o(f,e)&&(0!==(n=f[e])&&(f[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else f[e]=0}},d.O.j=function(e){return 0===f[e]},u=function(e,t){var n,r,c=t[0],o=t[1],u=t[2],i=0;if(c.some(function(e){return 0!==f[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(u)var a=u(d)}for(e&&e(t);i<c.length;i++)r=c[i],d.o(f,r)&&f[r]&&f[r][0](),f[r]=0;return d.O(a)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(u.bind(null,0)),i.push=u.bind(null,i.push.bind(i)),d.nc=void 0}();
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-2186770cc2de1623.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-2186770cc2de1623.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-ea0e7283886407ca.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-95afb019ab85801c.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-ea0e7283886407ca.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-95afb019ab85801c.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-a2673b256b6d416f.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-a2673b256b6d416f.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-89e7daf7b7df02e0.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-89e7daf7b7df02e0.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-a90b4fe4616dc501.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-a90b4fe4616dc501.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-0d3d1f890c5d188a.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-0d3d1f890c5d188a.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dc0299ffefebcdbe.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dc0299ffefebcdbe.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-49f790d12a85027c.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-49f790d12a85027c.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-6790fcefd5487b13.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-6790fcefd5487b13.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-e49a159c30a6c4a7.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-6bcd4b20914d76c9.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-e49a159c30a6c4a7.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-6bcd4b20914d76c9.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-b6447da22305b14a.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/BURfWrKsQk9psMPv0OXrh/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"BURfWrKsQk9psMPv0OXrh","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/SiA7c33x_DqO42M373Okd/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"SiA7c33x_DqO42M373Okd","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -9,7 +9,6 @@ Concepts:
9
9
  import functools
10
10
  import json
11
11
  import os
12
- import pathlib
13
12
  import pickle
14
13
  import re
15
14
  import time
@@ -237,35 +236,25 @@ def create_table(engine: sqlalchemy.engine.Engine):
237
236
  # If the database is locked, it is OK to continue, as the WAL mode
238
237
  # is not critical and is likely to be enabled by other processes.
239
238
 
240
- # Get alembic config for state db and run migrations
241
- alembic_config = migration_utils.get_alembic_config(
242
- engine, migration_utils.GLOBAL_USER_STATE_DB_NAME)
243
- # pylint: disable=line-too-long
244
- alembic_config.config_ini_section = migration_utils.GLOBAL_USER_STATE_DB_NAME
245
239
  migration_utils.safe_alembic_upgrade(
246
- engine, alembic_config, migration_utils.GLOBAL_USER_STATE_VERSION)
240
+ engine, migration_utils.GLOBAL_USER_STATE_DB_NAME,
241
+ migration_utils.GLOBAL_USER_STATE_VERSION)
247
242
 
248
243
 
249
244
  def initialize_and_get_db() -> sqlalchemy.engine.Engine:
250
245
  global _SQLALCHEMY_ENGINE
246
+
251
247
  if _SQLALCHEMY_ENGINE is not None:
252
248
  return _SQLALCHEMY_ENGINE
253
- with migration_utils.db_lock(migration_utils.GLOBAL_USER_STATE_DB_NAME):
254
- if _SQLALCHEMY_ENGINE is None:
255
- conn_string = None
256
- if os.environ.get(constants.ENV_VAR_IS_SKYPILOT_SERVER) is not None:
257
- conn_string = skypilot_config.get_nested(('db',), None)
258
- if conn_string:
259
- logger.debug(f'using db URI from {conn_string}')
260
- engine = sqlalchemy.create_engine(conn_string,
261
- poolclass=sqlalchemy.NullPool)
262
- else:
263
- db_path = os.path.expanduser('~/.sky/state.db')
264
- pathlib.Path(db_path).parents[0].mkdir(parents=True,
265
- exist_ok=True)
266
- engine = sqlalchemy.create_engine('sqlite:///' + db_path)
267
- create_table(engine)
268
- _SQLALCHEMY_ENGINE = engine
249
+
250
+ # get an engine to the db
251
+ engine = migration_utils.get_engine('state')
252
+
253
+ # run migrations if needed
254
+ create_table(engine)
255
+
256
+ # return engine
257
+ _SQLALCHEMY_ENGINE = engine
269
258
  return _SQLALCHEMY_ENGINE
270
259
 
271
260