skypilot-nightly 1.0.0.dev20241119__tar.gz → 1.0.0.dev20241120__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.
Files changed (303) hide show
  1. {skypilot_nightly-1.0.0.dev20241119/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20241120}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/kubernetes.py +5 -1
  4. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  5. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_smoke.py +173 -39
  6. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/LICENSE +0 -0
  7. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/MANIFEST.in +0 -0
  8. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/README.md +0 -0
  9. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/pyproject.toml +0 -0
  10. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/setup.cfg +0 -0
  11. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/setup.py +0 -0
  12. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/__init__.py +0 -0
  13. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/aws.py +0 -0
  14. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/azure.py +0 -0
  15. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/cloudflare.py +0 -0
  16. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/common.py +0 -0
  17. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/cudo.py +0 -0
  18. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/docker.py +0 -0
  19. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/gcp.py +0 -0
  20. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/ibm.py +0 -0
  21. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/kubernetes.py +0 -0
  22. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/oci.py +0 -0
  23. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/runpod.py +0 -0
  24. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/adaptors/vsphere.py +0 -0
  25. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/admin_policy.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/authentication.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/__init__.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/backend.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/backend_utils.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/cloud_vm_ray_backend.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/docker_utils.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/local_docker_backend.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/backends/wheel_utils.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/benchmark/__init__.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/benchmark/benchmark_state.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/benchmark/benchmark_utils.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/check.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/cli.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/cloud_stores.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/__init__.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/aws.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/azure.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/cloud.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/cloud_registry.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/cudo.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/fluidstack.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/gcp.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/ibm.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/lambda_cloud.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/oci.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/paperspace.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/runpod.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/scp.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/__init__.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/common.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/config.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/constants.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/utils/__init__.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/utils/aws_utils.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/utils/azure_utils.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/utils/gcp_utils.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/utils/oci_utils.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/utils/scp_utils.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/clouds/vsphere.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/core.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/dag.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/data/__init__.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/data/data_transfer.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/data/data_utils.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/data/mounting_utils.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/data/storage.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/data/storage_utils.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/exceptions.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/execution.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/global_user_state.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/__init__.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/constants.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/controller.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/core.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/dashboard/dashboard.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/dashboard/static/favicon.ico +0 -0
  104. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/dashboard/templates/index.html +0 -0
  105. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/recovery_strategy.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/state.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/jobs/utils.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/optimizer.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/__init__.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/aws/__init__.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/aws/config.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/aws/instance.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/aws/utils.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/azure/__init__.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/azure/azure-config-template.json +0 -0
  116. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/azure/config.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/azure/instance.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/common.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/constants.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/cudo/__init__.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/cudo/config.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/cudo/cudo_machine_type.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/cudo/cudo_utils.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/cudo/cudo_wrapper.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/cudo/instance.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/docker_utils.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/fluidstack/__init__.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/fluidstack/config.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/fluidstack/instance.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/gcp/__init__.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/gcp/config.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/gcp/constants.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/gcp/instance.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/gcp/instance_utils.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/gcp/mig_utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/instance_setup.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/__init__.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/config.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/instance.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  142. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  143. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/network.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/network_utils.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/kubernetes/utils.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/lambda_cloud/__init__.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/lambda_cloud/config.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/lambda_cloud/instance.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/logging.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/metadata_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/oci/__init__.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/oci/config.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/oci/instance.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/oci/query_utils.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/paperspace/__init__.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/paperspace/config.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/paperspace/constants.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/paperspace/instance.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/paperspace/utils.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/provisioner.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/runpod/__init__.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/runpod/config.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/runpod/instance.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/runpod/utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/__init__.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/__init__.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/custom_script.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/id_generator.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/service_manager.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/common/vim_utils.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/config.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/instance.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/provision/vsphere/vsphere_utils.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/resources.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/__init__.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/autoscalers.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/constants.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/controller.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/core.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/load_balancer.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/load_balancing_policies.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/replica_managers.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/serve_state.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/serve_utils.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/service.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/serve/service_spec.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/setup_files/MANIFEST.in +0 -0
  195. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/setup_files/setup.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/sky_logging.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/LICENSE +0 -0
  198. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/__init__.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/attempt_skylet.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/autostop_lib.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/configs.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/constants.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/events.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/job_lib.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/log_lib.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/log_lib.pyi +0 -0
  207. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/__init__.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/command_runner.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/ibm/__init__.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/ibm/node_provider.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/ibm/utils.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/scp/__init__.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/scp/config.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/providers/scp/node_provider.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/__init__.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  218. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/cli.py.patch +0 -0
  219. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  220. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  221. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  222. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/updater.py.patch +0 -0
  223. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/ray_patches/worker.py.patch +0 -0
  224. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/skylet.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skylet/subprocess_daemon.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/skypilot_config.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/status_lib.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/task.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/aws-ray.yml.j2 +0 -0
  230. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/azure-ray.yml.j2 +0 -0
  231. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/cudo-ray.yml.j2 +0 -0
  232. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  233. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/gcp-ray.yml.j2 +0 -0
  234. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/ibm-ray.yml.j2 +0 -0
  235. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/jobs-controller.yaml.j2 +0 -0
  236. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  237. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  238. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  239. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  240. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  241. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/lambda-ray.yml.j2 +0 -0
  242. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/local-ray.yml.j2 +0 -0
  243. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/oci-ray.yml.j2 +0 -0
  244. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/paperspace-ray.yml.j2 +0 -0
  245. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/runpod-ray.yml.j2 +0 -0
  246. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/scp-ray.yml.j2 +0 -0
  247. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  248. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/templates/vsphere-ray.yml.j2 +0 -0
  249. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/usage/__init__.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/usage/constants.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/usage/usage_lib.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/__init__.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/accelerator_registry.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/admin_policy_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/cli_utils/__init__.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/cli_utils/status_utils.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/cluster_yaml_utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/command_runner.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/command_runner.pyi +0 -0
  260. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/common_utils.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/control_master_utils.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/controller_utils.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/dag_utils.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/db_utils.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/env_options.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/__init__.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/create_cluster.sh +0 -0
  268. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  269. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  270. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  272. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  274. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  275. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  276. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/kubernetes_enums.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/log_utils.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/resources_utils.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/rich_utils.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/schemas.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/subprocess_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/timeline.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/ux_utils.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/sky/utils/validator.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  287. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  288. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  289. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/skypilot_nightly.egg-info/requires.txt +0 -0
  290. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/skypilot_nightly.egg-info/top_level.txt +0 -0
  291. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_api.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_cli.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_config.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_global_user_state.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_jobs.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_jobs_and_serve.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_list_accelerators.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_optimizer_dryruns.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_optimizer_random_dag.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_serve_autoscaler.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_storage.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_wheels.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20241119 → skypilot_nightly-1.0.0.dev20241120}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241119
3
+ Version: 1.0.0.dev20241120
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
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 = '6c021970e8b7e7970c31ada02d3a6d90f76b86c6'
8
+ _SKYPILOT_COMMIT_SHA = '789a9ea6fc54104219ca20aa785ccf69e1d30294'
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.dev20241119'
38
+ __version__ = '1.0.0.dev20241120'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -536,7 +536,11 @@ class Kubernetes(clouds.Cloud):
536
536
  @classmethod
537
537
  def check_credentials(cls) -> Tuple[bool, Optional[str]]:
538
538
  # Test using python API
539
- existing_allowed_contexts = cls._existing_allowed_contexts()
539
+ try:
540
+ existing_allowed_contexts = cls._existing_allowed_contexts()
541
+ except ImportError as e:
542
+ return (False,
543
+ f'{common_utils.format_exception(e, use_bracket=True)}')
540
544
  if not existing_allowed_contexts:
541
545
  if skypilot_config.loaded_config_path() is None:
542
546
  check_skypilot_config_msg = ''
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241119
3
+ Version: 1.0.0.dev20241120
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -25,6 +25,7 @@
25
25
  # Change cloud for generic tests to aws
26
26
  # > pytest tests/test_smoke.py --generic-cloud aws
27
27
 
28
+ import enum
28
29
  import inspect
29
30
  import json
30
31
  import os
@@ -60,6 +61,8 @@ from sky.data import storage as storage_lib
60
61
  from sky.data.data_utils import Rclone
61
62
  from sky.skylet import constants
62
63
  from sky.skylet import events
64
+ from sky.skylet.job_lib import JobStatus
65
+ from sky.status_lib import ClusterStatus
63
66
  from sky.utils import common_utils
64
67
  from sky.utils import resources_utils
65
68
  from sky.utils import subprocess_utils
@@ -95,6 +98,84 @@ _JOB_WAIT_NOT_RUNNING = (
95
98
  'sleep 10; s=$(sky jobs queue);'
96
99
  'echo "Waiting for job to stop RUNNING"; echo "$s"; done')
97
100
 
101
+ # Cluster functions
102
+ _ALL_JOB_STATUSES = "|".join([status.value for status in JobStatus])
103
+ _ALL_CLUSTER_STATUSES = "|".join([status.value for status in ClusterStatus])
104
+
105
+ _WAIT_UNTIL_CLUSTER_STATUS_IS = (
106
+ # A while loop to wait until the cluster status
107
+ # becomes certain status, with timeout.
108
+ 'start_time=$SECONDS; '
109
+ 'while true; do '
110
+ 'if (( $SECONDS - $start_time > {timeout} )); then '
111
+ ' echo "Timeout after {timeout} seconds waiting for cluster status \'{cluster_status}\'"; exit 1; '
112
+ 'fi; '
113
+ 'current_status=$(sky status {cluster_name} --refresh | '
114
+ 'awk "/^{cluster_name}/ '
115
+ '{{for (i=1; i<=NF; i++) if (\$i ~ /^(' + _ALL_CLUSTER_STATUSES +
116
+ ')$/) print \$i}}"); '
117
+ 'if [[ "$current_status" =~ {cluster_status} ]]; '
118
+ 'then echo "Target cluster status {cluster_status} reached."; break; fi; '
119
+ 'echo "Waiting for cluster status to become {cluster_status}, current status: $current_status"; '
120
+ 'sleep 10; '
121
+ 'done')
122
+
123
+ _WAIT_UNTIL_CLUSTER_IS_NOT_FOUND = (
124
+ # A while loop to wait until the cluster is not found or timeout
125
+ 'start_time=$SECONDS; '
126
+ 'while true; do '
127
+ 'if (( $SECONDS - $start_time > {timeout} )); then '
128
+ ' echo "Timeout after {timeout} seconds waiting for cluster to be removed"; exit 1; '
129
+ 'fi; '
130
+ 'if sky status -r {cluster_name}; sky status {cluster_name} | grep "{cluster_name} not found"; then '
131
+ ' echo "Cluster {cluster_name} successfully removed."; break; '
132
+ 'fi; '
133
+ 'echo "Waiting for cluster {name} to be removed..."; '
134
+ 'sleep 10; '
135
+ 'done')
136
+
137
+ _WAIT_UNTIL_JOB_STATUS_CONTAINS_MATCHING_JOB_ID = (
138
+ # A while loop to wait until the job status
139
+ # contains certain status, with timeout.
140
+ 'start_time=$SECONDS; '
141
+ 'while true; do '
142
+ 'if (( $SECONDS - $start_time > {timeout} )); then '
143
+ ' echo "Timeout after {timeout} seconds waiting for job status \'{job_status}\'"; exit 1; '
144
+ 'fi; '
145
+ 'current_status=$(sky queue {cluster_name} | '
146
+ 'awk "\\$1 == \\"{job_id}\\" '
147
+ '{{for (i=1; i<=NF; i++) if (\$i ~ /^(' + _ALL_JOB_STATUSES +
148
+ ')$/) print \$i}}"); '
149
+ 'found=0; ' # Initialize found variable outside the loop
150
+ 'while read -r line; do ' # Read line by line
151
+ ' if [[ "$line" =~ {job_status} ]]; then ' # Check each line
152
+ ' echo "Target job status {job_status} reached."; '
153
+ ' found=1; '
154
+ ' break; ' # Break inner loop
155
+ ' fi; '
156
+ 'done <<< "$current_status"; '
157
+ 'if [ "$found" -eq 1 ]; then break; fi; ' # Break outer loop if match found
158
+ 'echo "Waiting for job status to contains {job_status}, current status: $current_status"; '
159
+ 'sleep 10; '
160
+ 'done')
161
+
162
+ _WAIT_UNTIL_JOB_STATUS_CONTAINS_WITHOUT_MATCHING_JOB = _WAIT_UNTIL_JOB_STATUS_CONTAINS_MATCHING_JOB_ID.replace(
163
+ 'awk "\\$1 == \\"{job_id}\\"', 'awk "')
164
+
165
+ _WAIT_UNTIL_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME = _WAIT_UNTIL_JOB_STATUS_CONTAINS_MATCHING_JOB_ID.replace(
166
+ 'awk "\\$1 == \\"{job_id}\\"', 'awk "\\$2 == \\"{job_name}\\"')
167
+
168
+ # Managed job functions
169
+
170
+ _WAIT_UNTIL_MANAGED_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME = _WAIT_UNTIL_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME.replace(
171
+ 'sky queue {cluster_name}',
172
+ 'sky jobs queue').replace('awk "\\$2 == ', 'awk "\\$3 == ')
173
+
174
+ # After the timeout, the cluster will stop if autostop is set, and our check
175
+ # should be more than the timeout. To address this, we extend the timeout by
176
+ # _BUMP_UP_SECONDS before exiting.
177
+ _BUMP_UP_SECONDS = 35
178
+
98
179
  DEFAULT_CMD_TIMEOUT = 15 * 60
99
180
 
100
181
 
@@ -399,7 +480,6 @@ def test_launch_fast_with_autostop(generic_cloud: str):
399
480
  # Azure takes ~ 7m15s (435s) to autostop a VM, so here we use 600 to ensure
400
481
  # the VM is stopped.
401
482
  autostop_timeout = 600 if generic_cloud == 'azure' else 250
402
-
403
483
  test = Test(
404
484
  'test_launch_fast_with_autostop',
405
485
  [
@@ -407,10 +487,12 @@ def test_launch_fast_with_autostop(generic_cloud: str):
407
487
  f'unset SKYPILOT_DEBUG; s=$(sky launch -y -c {name} --cloud {generic_cloud} --fast -i 1 tests/test_yamls/minimal.yaml) && {_VALIDATE_LAUNCH_OUTPUT}',
408
488
  f'sky logs {name} 1 --status',
409
489
  f'sky status -r {name} | grep UP',
410
- f'sleep {autostop_timeout}',
411
490
 
412
491
  # Ensure cluster is stopped
413
- f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep STOPPED',
492
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
493
+ cluster_name=name,
494
+ cluster_status=ClusterStatus.STOPPED.value,
495
+ timeout=autostop_timeout),
414
496
 
415
497
  # Launch again. Do full output validation - we expect the cluster to re-launch
416
498
  f'unset SKYPILOT_DEBUG; s=$(sky launch -y -c {name} --fast -i 1 tests/test_yamls/minimal.yaml) && {_VALIDATE_LAUNCH_OUTPUT}',
@@ -842,6 +924,12 @@ def test_clone_disk_aws():
842
924
  f'sky launch -y -c {name} --cloud aws --region us-east-2 --retry-until-up "echo hello > ~/user_file.txt"',
843
925
  f'sky launch --clone-disk-from {name} -y -c {name}-clone && exit 1 || true',
844
926
  f'sky stop {name} -y',
927
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
928
+ cluster_name=name,
929
+ cluster_status=ClusterStatus.STOPPED.value,
930
+ timeout=60),
931
+ # Wait for EC2 instance to be in stopped state.
932
+ # TODO: event based wait.
845
933
  'sleep 60',
846
934
  f'sky launch --clone-disk-from {name} -y -c {name}-clone --cloud aws -d --region us-east-2 "cat ~/user_file.txt | grep hello"',
847
935
  f'sky launch --clone-disk-from {name} -y -c {name}-clone-2 --cloud aws -d --region us-east-2 "cat ~/user_file.txt | grep hello"',
@@ -888,8 +976,8 @@ def test_gcp_mig():
888
976
  # Check MIG exists.
889
977
  f'gcloud compute instance-groups managed list --format="value(name)" | grep "^sky-mig-{name}"',
890
978
  f'sky autostop -i 0 --down -y {name}',
891
- 'sleep 120',
892
- f'sky status -r {name}; sky status {name} | grep "{name} not found"',
979
+ _WAIT_UNTIL_CLUSTER_IS_NOT_FOUND.format(cluster_name=name,
980
+ timeout=120),
893
981
  f'gcloud compute instance-templates list | grep "sky-it-{name}"',
894
982
  # Launch again with the same region. The original instance template
895
983
  # should be removed.
@@ -956,8 +1044,10 @@ def test_custom_default_conda_env(generic_cloud: str):
956
1044
  f'sky exec {name} tests/test_yamls/test_custom_default_conda_env.yaml',
957
1045
  f'sky logs {name} 2 --status',
958
1046
  f'sky autostop -y -i 0 {name}',
959
- 'sleep 60',
960
- f'sky status -r {name} | grep "STOPPED"',
1047
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
1048
+ cluster_name=name,
1049
+ cluster_status=ClusterStatus.STOPPED.value,
1050
+ timeout=80),
961
1051
  f'sky start -y {name}',
962
1052
  f'sky logs {name} 2 --no-follow | grep -E "myenv\\s+\\*"',
963
1053
  f'sky exec {name} tests/test_yamls/test_custom_default_conda_env.yaml',
@@ -978,7 +1068,10 @@ def test_stale_job(generic_cloud: str):
978
1068
  f'sky launch -y -c {name} --cloud {generic_cloud} "echo hi"',
979
1069
  f'sky exec {name} -d "echo start; sleep 10000"',
980
1070
  f'sky stop {name} -y',
981
- 'sleep 100', # Ensure this is large enough, else GCP leaks.
1071
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
1072
+ cluster_name=name,
1073
+ cluster_status=ClusterStatus.STOPPED.value,
1074
+ timeout=100),
982
1075
  f'sky start {name} -y',
983
1076
  f'sky logs {name} 1 --status',
984
1077
  f's=$(sky queue {name}); echo "$s"; echo; echo; echo "$s" | grep FAILED_DRIVER',
@@ -1006,13 +1099,18 @@ def test_aws_stale_job_manual_restart():
1006
1099
  '--output text`; '
1007
1100
  f'aws ec2 stop-instances --region {region} '
1008
1101
  '--instance-ids $id',
1009
- 'sleep 40',
1102
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
1103
+ cluster_name=name,
1104
+ cluster_status=ClusterStatus.STOPPED.value,
1105
+ timeout=40),
1010
1106
  f'sky launch -c {name} -y "echo hi"',
1011
1107
  f'sky logs {name} 1 --status',
1012
1108
  f'sky logs {name} 3 --status',
1013
1109
  # Ensure the skylet updated the stale job status.
1014
- f'sleep {events.JobSchedulerEvent.EVENT_INTERVAL_SECONDS}',
1015
- f's=$(sky queue {name}); echo "$s"; echo; echo; echo "$s" | grep FAILED_DRIVER',
1110
+ _WAIT_UNTIL_JOB_STATUS_CONTAINS_WITHOUT_MATCHING_JOB.format(
1111
+ cluster_name=name,
1112
+ job_status=JobStatus.FAILED_DRIVER.value,
1113
+ timeout=events.JobSchedulerEvent.EVENT_INTERVAL_SECONDS),
1016
1114
  ],
1017
1115
  f'sky down -y {name}',
1018
1116
  )
@@ -1042,8 +1140,10 @@ def test_gcp_stale_job_manual_restart():
1042
1140
  f'sky logs {name} 1 --status',
1043
1141
  f'sky logs {name} 3 --status',
1044
1142
  # Ensure the skylet updated the stale job status.
1045
- f'sleep {events.JobSchedulerEvent.EVENT_INTERVAL_SECONDS}',
1046
- f's=$(sky queue {name}); echo "$s"; echo; echo; echo "$s" | grep FAILED_DRIVER',
1143
+ _WAIT_UNTIL_JOB_STATUS_CONTAINS_WITHOUT_MATCHING_JOB.format(
1144
+ cluster_name=name,
1145
+ job_status=JobStatus.FAILED_DRIVER.value,
1146
+ timeout=events.JobSchedulerEvent.EVENT_INTERVAL_SECONDS)
1047
1147
  ],
1048
1148
  f'sky down -y {name}',
1049
1149
  )
@@ -1861,7 +1961,13 @@ def test_multi_echo(generic_cloud: str):
1861
1961
  f'until sky logs {name} 32 --status; do echo "Waiting for job 32 to finish..."; sleep 1; done',
1862
1962
  ] +
1863
1963
  # Ensure jobs succeeded.
1864
- [f'sky logs {name} {i + 1} --status' for i in range(32)] +
1964
+ [
1965
+ _WAIT_UNTIL_JOB_STATUS_CONTAINS_MATCHING_JOB_ID.format(
1966
+ cluster_name=name,
1967
+ job_id=i + 1,
1968
+ job_status=JobStatus.SUCCEEDED.value,
1969
+ timeout=120) for i in range(32)
1970
+ ] +
1865
1971
  # Ensure monitor/autoscaler didn't crash on the 'assert not
1866
1972
  # unfulfilled' error. If process not found, grep->ssh returns 1.
1867
1973
  [f'ssh {name} \'ps aux | grep "[/]"monitor.py\''],
@@ -2433,12 +2539,18 @@ def test_gcp_start_stop():
2433
2539
  f'sky exec {name} "prlimit -n --pid=\$(pgrep -f \'raylet/raylet --raylet_socket_name\') | grep \'"\'1048576 1048576\'"\'"', # Ensure the raylet process has the correct file descriptor limit.
2434
2540
  f'sky logs {name} 3 --status', # Ensure the job succeeded.
2435
2541
  f'sky stop -y {name}',
2436
- f'sleep 20',
2542
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2543
+ cluster_name=name,
2544
+ cluster_status=ClusterStatus.STOPPED.value,
2545
+ timeout=40),
2437
2546
  f'sky start -y {name} -i 1',
2438
2547
  f'sky exec {name} examples/gcp_start_stop.yaml',
2439
2548
  f'sky logs {name} 4 --status', # Ensure the job succeeded.
2440
- 'sleep 180',
2441
- f'sky status -r {name} | grep "INIT\|STOPPED"',
2549
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2550
+ cluster_name=name,
2551
+ cluster_status=
2552
+ f'({ClusterStatus.STOPPED.value}|{ClusterStatus.INIT.value})',
2553
+ timeout=200),
2442
2554
  ],
2443
2555
  f'sky down -y {name}',
2444
2556
  )
@@ -2461,9 +2573,12 @@ def test_azure_start_stop():
2461
2573
  f'sky start -y {name} -i 1',
2462
2574
  f'sky exec {name} examples/azure_start_stop.yaml',
2463
2575
  f'sky logs {name} 3 --status', # Ensure the job succeeded.
2464
- 'sleep 260',
2465
- f's=$(sky status -r {name}) && echo "$s" && echo "$s" | grep "INIT\|STOPPED"'
2466
- f'|| {{ ssh {name} "cat ~/.sky/skylet.log"; exit 1; }}'
2576
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2577
+ cluster_name=name,
2578
+ cluster_status=
2579
+ f'({ClusterStatus.STOPPED.value}|{ClusterStatus.INIT.value})',
2580
+ timeout=280) +
2581
+ f'|| {{ ssh {name} "cat ~/.sky/skylet.log"; exit 1; }}',
2467
2582
  ],
2468
2583
  f'sky down -y {name}',
2469
2584
  timeout=30 * 60, # 30 mins
@@ -2499,8 +2614,10 @@ def test_autostop(generic_cloud: str):
2499
2614
  f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep UP',
2500
2615
 
2501
2616
  # Ensure the cluster is STOPPED.
2502
- f'sleep {autostop_timeout}',
2503
- f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep STOPPED',
2617
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2618
+ cluster_name=name,
2619
+ cluster_status=ClusterStatus.STOPPED.value,
2620
+ timeout=autostop_timeout),
2504
2621
 
2505
2622
  # Ensure the cluster is UP and the autostop setting is reset ('-').
2506
2623
  f'sky start -y {name}',
@@ -2516,8 +2633,10 @@ def test_autostop(generic_cloud: str):
2516
2633
  f'sky autostop -y {name} -i 1', # Should restart the timer.
2517
2634
  'sleep 40',
2518
2635
  f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep UP',
2519
- f'sleep {autostop_timeout}',
2520
- f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep STOPPED',
2636
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2637
+ cluster_name=name,
2638
+ cluster_status=ClusterStatus.STOPPED.value,
2639
+ timeout=autostop_timeout),
2521
2640
 
2522
2641
  # Test restarting the idleness timer via exec:
2523
2642
  f'sky start -y {name}',
@@ -2527,8 +2646,10 @@ def test_autostop(generic_cloud: str):
2527
2646
  f'sky exec {name} echo hi', # Should restart the timer.
2528
2647
  'sleep 45',
2529
2648
  f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep UP',
2530
- f'sleep {autostop_timeout}',
2531
- f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep STOPPED',
2649
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2650
+ cluster_name=name,
2651
+ cluster_status=ClusterStatus.STOPPED.value,
2652
+ timeout=autostop_timeout + _BUMP_UP_SECONDS),
2532
2653
  ],
2533
2654
  f'sky down -y {name}',
2534
2655
  timeout=total_timeout_minutes * 60,
@@ -2745,15 +2866,19 @@ def test_stop_gcp_spot():
2745
2866
  f'sky exec {name} -- ls myfile',
2746
2867
  f'sky logs {name} 2 --status',
2747
2868
  f'sky autostop {name} -i0 -y',
2748
- 'sleep 90',
2749
- f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep STOPPED',
2869
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2870
+ cluster_name=name,
2871
+ cluster_status=ClusterStatus.STOPPED.value,
2872
+ timeout=90),
2750
2873
  f'sky start {name} -y',
2751
2874
  f'sky exec {name} -- ls myfile',
2752
2875
  f'sky logs {name} 3 --status',
2753
2876
  # -i option at launch should go through:
2754
2877
  f'sky launch -c {name} -i0 -y',
2755
- 'sleep 120',
2756
- f's=$(sky status {name} --refresh); echo "$s"; echo; echo; echo "$s" | grep {name} | grep STOPPED',
2878
+ _WAIT_UNTIL_CLUSTER_STATUS_IS.format(
2879
+ cluster_name=name,
2880
+ cluster_status=ClusterStatus.STOPPED.value,
2881
+ timeout=120),
2757
2882
  ],
2758
2883
  f'sky down -y {name}',
2759
2884
  )
@@ -2773,14 +2898,21 @@ def test_managed_jobs(generic_cloud: str):
2773
2898
  [
2774
2899
  f'sky jobs launch -n {name}-1 --cloud {generic_cloud} examples/managed_job.yaml -y -d',
2775
2900
  f'sky jobs launch -n {name}-2 --cloud {generic_cloud} examples/managed_job.yaml -y -d',
2776
- 'sleep 5',
2777
- f'{_GET_JOB_QUEUE} | grep {name}-1 | head -n1 | grep "PENDING\|SUBMITTED\|STARTING\|RUNNING"',
2778
- f'{_GET_JOB_QUEUE} | grep {name}-2 | head -n1 | grep "PENDING\|SUBMITTED\|STARTING\|RUNNING"',
2901
+ _WAIT_UNTIL_MANAGED_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME.format(
2902
+ job_name=f'{name}-1',
2903
+ job_status=
2904
+ f'({JobStatus.PENDING.value}|{JobStatus.INIT.value}|{JobStatus.RUNNING.value})',
2905
+ timeout=60),
2906
+ _WAIT_UNTIL_MANAGED_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME.format(
2907
+ job_name=f'{name}-2',
2908
+ job_status=
2909
+ f'({JobStatus.PENDING.value}|{JobStatus.INIT.value}|{JobStatus.RUNNING.value})',
2910
+ timeout=60),
2779
2911
  f'sky jobs cancel -y -n {name}-1',
2780
- 'sleep 5',
2781
- f'{_GET_JOB_QUEUE} | grep {name}-1 | head -n1 | grep "CANCELLING\|CANCELLED"',
2782
- 'sleep 200',
2783
- f'{_GET_JOB_QUEUE} | grep {name}-1 | head -n1 | grep CANCELLED',
2912
+ _WAIT_UNTIL_MANAGED_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME.format(
2913
+ job_name=f'{name}-1',
2914
+ job_status=f'{JobStatus.CANCELLED.value}',
2915
+ timeout=230),
2784
2916
  # Test the functionality for logging.
2785
2917
  f's=$(sky jobs logs -n {name}-2 --no-follow); echo "$s"; echo "$s" | grep "start counting"',
2786
2918
  f's=$(sky jobs logs --controller -n {name}-2 --no-follow); echo "$s"; echo "$s" | grep "Cluster launched:"',
@@ -2850,9 +2982,11 @@ def test_managed_jobs_failed_setup(generic_cloud: str):
2850
2982
  'managed_jobs_failed_setup',
2851
2983
  [
2852
2984
  f'sky jobs launch -n {name} --cloud {generic_cloud} -y -d tests/test_yamls/failed_setup.yaml',
2853
- 'sleep 330',
2854
2985
  # Make sure the job failed quickly.
2855
- f'{_GET_JOB_QUEUE} | grep {name} | head -n1 | grep "FAILED_SETUP"',
2986
+ _WAIT_UNTIL_MANAGED_JOB_STATUS_CONTAINS_MATCHING_JOB_NAME.format(
2987
+ job_name=name,
2988
+ job_status=f'{JobStatus.FAILED_SETUP.value}',
2989
+ timeout=330 + _BUMP_UP_SECONDS),
2856
2990
  ],
2857
2991
  f'sky jobs cancel -y -n {name}',
2858
2992
  # Increase timeout since sky jobs queue -r can be blocked by other spot tests.