skypilot-nightly 1.0.0.dev20250906__py3-none-any.whl → 1.0.0.dev20250908__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- sky/__init__.py +2 -2
- sky/adaptors/common.py +24 -1
- sky/adaptors/do.py +8 -2
- sky/clouds/aws.py +4 -6
- sky/clouds/azure.py +12 -13
- sky/clouds/cudo.py +4 -8
- sky/clouds/do.py +5 -6
- sky/clouds/nebius.py +1 -1
- sky/clouds/oci.py +7 -7
- sky/clouds/runpod.py +59 -18
- sky/clouds/vast.py +21 -22
- sky/clouds/vsphere.py +10 -15
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/8969-0487dfbf149d9e53.js +1 -0
- sky/dashboard/out/_next/static/chunks/{webpack-8df25bce0107f4bd.js → webpack-47c64cc05717f8a3.js} +1 -1
- sky/dashboard/out/_next/static/{ZOaq9s6U49jSoGAMkeKqu → qikl6zGuwe8BKavteei3r}/_buildManifest.js +1 -1
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs/pools/[pool].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/jobs/server/core.py +44 -2
- sky/jobs/server/server.py +17 -0
- sky/server/constants.py +1 -1
- sky/server/daemons.py +2 -0
- sky/server/requests/executor.py +7 -0
- sky/server/requests/payloads.py +8 -0
- sky/server/requests/serializers/decoders.py +7 -1
- sky/server/requests/serializers/encoders.py +10 -2
- sky/utils/common_utils.py +18 -0
- sky/utils/resource_checker.py +2 -3
- {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/METADATA +33 -33
- {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/RECORD +48 -48
- sky/dashboard/out/_next/static/chunks/8969-0be3036bf86f8256.js +0 -1
- /sky/dashboard/out/_next/static/{ZOaq9s6U49jSoGAMkeKqu → qikl6zGuwe8BKavteei3r}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/top_level.txt +0 -0
sky/dashboard/out/clusters.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-469814d711d63b1b.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/config.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-dfb9bf07b13045f4.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/index.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-444f1804401f04ea.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"qikl6zGuwe8BKavteei3r","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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-6563820e094f68ca.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/infra.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-aabba60d57826e0f.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"qikl6zGuwe8BKavteei3r","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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/754-d0da8ab45f9509e9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0487dfbf149d9e53.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dd64309c3fe67ed2.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/754-d0da8ab45f9509e9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0487dfbf149d9e53.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/pools/%5Bpool%5D-07349868f7905d37.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/pools/[pool]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/jobs.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-1f70d9faa564804f.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/users.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-018bf31cda52e11b.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/volumes.html
CHANGED
|
@@ -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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-739726d6b823f532.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"qikl6zGuwe8BKavteei3r","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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"qikl6zGuwe8BKavteei3r","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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1836-37fede578e2da5f8.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0487dfbf149d9e53.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-08b2a1cae076a943.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/1121-408ed10b2f9fce17.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-86cabed5d4669ad0.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-943efc7aff0f0c06.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-af76bb06dbb3954f.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-
|
|
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/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.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-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-7598c33a746cdc91.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/jobs/server/core.py
CHANGED
|
@@ -575,8 +575,50 @@ def _maybe_restart_controller(
|
|
|
575
575
|
return handle
|
|
576
576
|
|
|
577
577
|
|
|
578
|
+
# For backwards compatibility
|
|
579
|
+
# TODO(hailong): Remove before 0.12.0.
|
|
578
580
|
@usage_lib.entrypoint
|
|
579
|
-
def queue(
|
|
581
|
+
def queue(refresh: bool,
|
|
582
|
+
skip_finished: bool = False,
|
|
583
|
+
all_users: bool = False,
|
|
584
|
+
job_ids: Optional[List[int]] = None) -> List[Dict[str, Any]]:
|
|
585
|
+
# NOTE(dev): Keep the docstring consistent between the Python API and CLI.
|
|
586
|
+
"""Gets statuses of managed jobs.
|
|
587
|
+
|
|
588
|
+
Please refer to sky.cli.job_queue for documentation.
|
|
589
|
+
|
|
590
|
+
Returns:
|
|
591
|
+
[
|
|
592
|
+
{
|
|
593
|
+
'job_id': int,
|
|
594
|
+
'job_name': str,
|
|
595
|
+
'resources': str,
|
|
596
|
+
'submitted_at': (float) timestamp of submission,
|
|
597
|
+
'end_at': (float) timestamp of end,
|
|
598
|
+
'job_duration': (float) duration in seconds,
|
|
599
|
+
'recovery_count': (int) Number of retries,
|
|
600
|
+
'status': (sky.jobs.ManagedJobStatus) of the job,
|
|
601
|
+
'cluster_resources': (str) resources of the cluster,
|
|
602
|
+
'region': (str) region of the cluster,
|
|
603
|
+
'user_name': (Optional[str]) job creator's user name,
|
|
604
|
+
'user_hash': (str) job creator's user hash,
|
|
605
|
+
'task_id': (int), set to 0 (except in pipelines, which may have multiple tasks), # pylint: disable=line-too-long
|
|
606
|
+
'task_name': (str), same as job_name (except in pipelines, which may have multiple tasks), # pylint: disable=line-too-long
|
|
607
|
+
}
|
|
608
|
+
]
|
|
609
|
+
Raises:
|
|
610
|
+
sky.exceptions.ClusterNotUpError: the jobs controller is not up or
|
|
611
|
+
does not exist.
|
|
612
|
+
RuntimeError: if failed to get the managed jobs with ssh.
|
|
613
|
+
"""
|
|
614
|
+
jobs, _, _, _ = queue_v2(refresh, skip_finished, all_users, job_ids, None,
|
|
615
|
+
None, None, None, None, None, None)
|
|
616
|
+
|
|
617
|
+
return jobs
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
@usage_lib.entrypoint
|
|
621
|
+
def queue_v2(
|
|
580
622
|
refresh: bool,
|
|
581
623
|
skip_finished: bool = False,
|
|
582
624
|
all_users: bool = False,
|
|
@@ -590,7 +632,7 @@ def queue(
|
|
|
590
632
|
statuses: Optional[List[str]] = None,
|
|
591
633
|
) -> Tuple[List[Dict[str, Any]], int, Dict[str, int], int]:
|
|
592
634
|
# NOTE(dev): Keep the docstring consistent between the Python API and CLI.
|
|
593
|
-
"""Gets statuses of managed jobs.
|
|
635
|
+
"""Gets statuses of managed jobs with filtering.
|
|
594
636
|
|
|
595
637
|
Please refer to sky.cli.job_queue for documentation.
|
|
596
638
|
|
sky/jobs/server/server.py
CHANGED
|
@@ -32,6 +32,8 @@ async def launch(request: fastapi.Request,
|
|
|
32
32
|
)
|
|
33
33
|
|
|
34
34
|
|
|
35
|
+
# For backwards compatibility
|
|
36
|
+
# TODO(hailong): Remove before 0.12.0.
|
|
35
37
|
@router.post('/queue')
|
|
36
38
|
async def queue(request: fastapi.Request,
|
|
37
39
|
jobs_queue_body: payloads.JobsQueueBody) -> None:
|
|
@@ -46,6 +48,21 @@ async def queue(request: fastapi.Request,
|
|
|
46
48
|
)
|
|
47
49
|
|
|
48
50
|
|
|
51
|
+
@router.post('/queue/v2')
|
|
52
|
+
async def queue_v2(request: fastapi.Request,
|
|
53
|
+
jobs_queue_body_v2: payloads.JobsQueueV2Body) -> None:
|
|
54
|
+
executor.schedule_request(
|
|
55
|
+
request_id=request.state.request_id,
|
|
56
|
+
request_name='jobs.queue_v2',
|
|
57
|
+
request_body=jobs_queue_body_v2,
|
|
58
|
+
func=core.queue_v2,
|
|
59
|
+
schedule_type=(api_requests.ScheduleType.LONG
|
|
60
|
+
if jobs_queue_body_v2.refresh else
|
|
61
|
+
api_requests.ScheduleType.SHORT),
|
|
62
|
+
request_cluster_name=common.JOB_CONTROLLER_NAME,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
49
66
|
@router.post('/cancel')
|
|
50
67
|
async def cancel(request: fastapi.Request,
|
|
51
68
|
jobs_cancel_body: payloads.JobsCancelBody) -> None:
|
sky/server/constants.py
CHANGED
|
@@ -10,7 +10,7 @@ from sky.skylet import constants
|
|
|
10
10
|
# based on version info is needed.
|
|
11
11
|
# For more details and code guidelines, refer to:
|
|
12
12
|
# https://docs.skypilot.co/en/latest/developers/CONTRIBUTING.html#backward-compatibility-guidelines
|
|
13
|
-
API_VERSION =
|
|
13
|
+
API_VERSION = 18
|
|
14
14
|
|
|
15
15
|
# The minimum peer API version that the code should still work with.
|
|
16
16
|
# Notes (dev):
|
sky/server/daemons.py
CHANGED
|
@@ -9,6 +9,7 @@ from sky import skypilot_config
|
|
|
9
9
|
from sky.server import constants as server_constants
|
|
10
10
|
from sky.utils import annotations
|
|
11
11
|
from sky.utils import common
|
|
12
|
+
from sky.utils import common_utils
|
|
12
13
|
from sky.utils import env_options
|
|
13
14
|
from sky.utils import timeline
|
|
14
15
|
from sky.utils import ux_utils
|
|
@@ -73,6 +74,7 @@ class InternalRequestDaemon:
|
|
|
73
74
|
# using too much memory.
|
|
74
75
|
annotations.clear_request_level_cache()
|
|
75
76
|
timeline.save_timeline()
|
|
77
|
+
common_utils.release_memory()
|
|
76
78
|
except Exception: # pylint: disable=broad-except
|
|
77
79
|
# It is OK to fail to run the event, as the event is not
|
|
78
80
|
# critical, but we should log the error.
|
sky/server/requests/executor.py
CHANGED
|
@@ -437,6 +437,13 @@ def _request_execution_wrapper(request_id: str,
|
|
|
437
437
|
request_id, return_value if not ignore_return_value else None)
|
|
438
438
|
_restore_output(original_stdout, original_stderr)
|
|
439
439
|
logger.info(f'Request {request_id} finished')
|
|
440
|
+
finally:
|
|
441
|
+
with metrics_lib.time_it(name='release_memory', group='internal'):
|
|
442
|
+
try:
|
|
443
|
+
common_utils.release_memory()
|
|
444
|
+
except Exception as e: # pylint: disable=broad-except
|
|
445
|
+
logger.error(f'Failed to release memory: '
|
|
446
|
+
f'{common_utils.format_exception(e)}')
|
|
440
447
|
|
|
441
448
|
|
|
442
449
|
async def execute_request_coroutine(request: api_requests.Request):
|
sky/server/requests/payloads.py
CHANGED
|
@@ -512,6 +512,14 @@ class JobsQueueBody(RequestBody):
|
|
|
512
512
|
skip_finished: bool = False
|
|
513
513
|
all_users: bool = False
|
|
514
514
|
job_ids: Optional[List[int]] = None
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
class JobsQueueV2Body(RequestBody):
|
|
518
|
+
"""The request body for the jobs queue endpoint."""
|
|
519
|
+
refresh: bool = False
|
|
520
|
+
skip_finished: bool = False
|
|
521
|
+
all_users: bool = False
|
|
522
|
+
job_ids: Optional[List[int]] = None
|
|
515
523
|
user_match: Optional[str] = None
|
|
516
524
|
workspace_match: Optional[str] = None
|
|
517
525
|
name_match: Optional[str] = None
|
|
@@ -109,7 +109,13 @@ def decode_queue(return_value: List[dict],) -> List[Dict[str, Any]]:
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
@register_decoders('jobs.queue')
|
|
112
|
-
def decode_jobs_queue(return_value):
|
|
112
|
+
def decode_jobs_queue(return_value: List[dict],) -> List[Dict[str, Any]]:
|
|
113
|
+
# To keep backward compatibility with v0.10.2
|
|
114
|
+
return decode_jobs_queue_v2(return_value)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@register_decoders('jobs.queue_v2')
|
|
118
|
+
def decode_jobs_queue_v2(return_value) -> List[Dict[str, Any]]:
|
|
113
119
|
"""Decode jobs queue response.
|
|
114
120
|
|
|
115
121
|
Supports legacy list, or a dict {jobs, total}.
|
|
@@ -6,7 +6,7 @@ import base64
|
|
|
6
6
|
import dataclasses
|
|
7
7
|
import pickle
|
|
8
8
|
import typing
|
|
9
|
-
from typing import Any, Dict, List, Optional, Tuple
|
|
9
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
10
10
|
|
|
11
11
|
from sky.schemas.api import responses
|
|
12
12
|
from sky.server import constants as server_constants
|
|
@@ -121,7 +121,15 @@ def encode_status_kubernetes(
|
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
@register_encoder('jobs.queue')
|
|
124
|
-
def encode_jobs_queue(
|
|
124
|
+
def encode_jobs_queue(jobs: List[dict],) -> List[Dict[str, Any]]:
|
|
125
|
+
for job in jobs:
|
|
126
|
+
job['status'] = job['status'].value
|
|
127
|
+
return jobs
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@register_encoder('jobs.queue_v2')
|
|
131
|
+
def encode_jobs_queue_v2(
|
|
132
|
+
jobs_or_tuple) -> Union[List[Dict[str, Any]], Dict[str, Any]]:
|
|
125
133
|
# Support returning either a plain jobs list or a (jobs, total) tuple
|
|
126
134
|
status_counts = {}
|
|
127
135
|
if isinstance(jobs_or_tuple, tuple):
|
sky/utils/common_utils.py
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"""Utils shared between all of sky"""
|
|
2
2
|
|
|
3
|
+
import ctypes
|
|
3
4
|
import difflib
|
|
4
5
|
import enum
|
|
5
6
|
import functools
|
|
7
|
+
import gc
|
|
6
8
|
import getpass
|
|
7
9
|
import hashlib
|
|
8
10
|
import inspect
|
|
@@ -1090,3 +1092,19 @@ def removeprefix(string: str, prefix: str) -> str:
|
|
|
1090
1092
|
if string.startswith(prefix):
|
|
1091
1093
|
return string[len(prefix):]
|
|
1092
1094
|
return string
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
def release_memory():
|
|
1098
|
+
"""Release the process memory"""
|
|
1099
|
+
# Do the best effort to release the python heap and let malloc_trim
|
|
1100
|
+
# be more efficient.
|
|
1101
|
+
gc.collect()
|
|
1102
|
+
if sys.platform.startswith('linux'):
|
|
1103
|
+
try:
|
|
1104
|
+
# Will fail on musl (alpine), but at least it works on our
|
|
1105
|
+
# offical docker images.
|
|
1106
|
+
libc = ctypes.CDLL('libc.so.6')
|
|
1107
|
+
return libc.malloc_trim(0)
|
|
1108
|
+
except (AttributeError, OSError):
|
|
1109
|
+
return 0
|
|
1110
|
+
return 0
|
sky/utils/resource_checker.py
CHANGED
|
@@ -276,9 +276,8 @@ def _get_active_resources(
|
|
|
276
276
|
# pylint: disable=import-outside-toplevel
|
|
277
277
|
from sky.jobs.server import core as managed_jobs_core
|
|
278
278
|
try:
|
|
279
|
-
filtered_jobs, _, _, _ = managed_jobs_core.
|
|
280
|
-
|
|
281
|
-
all_users=True)
|
|
279
|
+
filtered_jobs, _, _, _ = managed_jobs_core.queue_v2(
|
|
280
|
+
refresh=False, skip_finished=True, all_users=True)
|
|
282
281
|
return filtered_jobs
|
|
283
282
|
except exceptions.ClusterNotUpError:
|
|
284
283
|
logger.warning('All jobs should be finished.')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skypilot-nightly
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev20250908
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -145,48 +145,48 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
|
|
|
145
145
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
146
146
|
Requires-Dist: aiosqlite; extra == "server"
|
|
147
147
|
Provides-Extra: all
|
|
148
|
-
Requires-Dist:
|
|
149
|
-
Requires-Dist:
|
|
150
|
-
Requires-Dist:
|
|
151
|
-
Requires-Dist:
|
|
152
|
-
Requires-Dist:
|
|
153
|
-
Requires-Dist:
|
|
154
|
-
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
155
|
-
Requires-Dist: aiohttp; extra == "all"
|
|
156
|
-
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
148
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
149
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
150
|
+
Requires-Dist: msrestazure; extra == "all"
|
|
151
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
152
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
153
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
157
154
|
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
160
|
-
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
161
|
-
Requires-Dist: passlib; extra == "all"
|
|
162
|
-
Requires-Dist: oci; extra == "all"
|
|
163
|
-
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
155
|
+
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
164
156
|
Requires-Dist: casbin; extra == "all"
|
|
157
|
+
Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
|
|
158
|
+
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
159
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
160
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
161
|
+
Requires-Dist: python-dateutil; extra == "all"
|
|
162
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
163
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
165
164
|
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
166
165
|
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
167
|
-
Requires-Dist:
|
|
166
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
167
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
168
168
|
Requires-Dist: websockets; extra == "all"
|
|
169
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
170
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
171
|
+
Requires-Dist: azure-common; extra == "all"
|
|
172
|
+
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
173
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
174
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
175
|
+
Requires-Dist: passlib; extra == "all"
|
|
176
|
+
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
169
177
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
170
178
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
171
|
-
Requires-Dist: azure-
|
|
172
|
-
Requires-Dist:
|
|
173
|
-
Requires-Dist:
|
|
174
|
-
Requires-Dist:
|
|
175
|
-
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
176
|
-
Requires-Dist: ibm-vpc; extra == "all"
|
|
177
|
-
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
178
|
-
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
179
|
-
Requires-Dist: msgraph-sdk; extra == "all"
|
|
179
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
180
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
181
|
+
Requires-Dist: aiosqlite; extra == "all"
|
|
182
|
+
Requires-Dist: anyio; extra == "all"
|
|
180
183
|
Requires-Dist: pyjwt; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
182
|
-
Requires-Dist:
|
|
183
|
-
Requires-Dist: msrestazure; extra == "all"
|
|
184
|
+
Requires-Dist: oci; extra == "all"
|
|
185
|
+
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
184
186
|
Requires-Dist: docker; extra == "all"
|
|
185
|
-
Requires-Dist:
|
|
187
|
+
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
186
188
|
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
189
|
-
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
189
|
+
Requires-Dist: msgraph-sdk; extra == "all"
|
|
190
190
|
Dynamic: author
|
|
191
191
|
Dynamic: classifier
|
|
192
192
|
Dynamic: description
|