skypilot-nightly 1.0.0.dev20251025__py3-none-any.whl → 1.0.0.dev20251027__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/client/cli/command.py +30 -15
- sky/client/sdk.py +4 -4
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/{webpack-4abaae354da0ba13.js → webpack-585d805f693dbceb.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/global_user_state.py +52 -72
- sky/server/requests/requests.py +63 -0
- sky/server/requests/serializers/decoders.py +9 -3
- sky/server/server.py +32 -6
- sky/utils/command_runner.py +8 -0
- {skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/METADATA +37 -37
- {skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/RECORD +33 -33
- /sky/dashboard/out/_next/static/{WfMolkH3tkVNEHhHaH9uk → YP5Vc3ROcDnTGta0XAhcs}/_buildManifest.js +0 -0
- /sky/dashboard/out/_next/static/{WfMolkH3tkVNEHhHaH9uk → YP5Vc3ROcDnTGta0XAhcs}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/top_level.txt +0 -0
sky/__init__.py
CHANGED
|
@@ -7,7 +7,7 @@ import urllib.request
|
|
|
7
7
|
from sky.utils import directory_utils
|
|
8
8
|
|
|
9
9
|
# Replaced with the current commit when building the wheels.
|
|
10
|
-
_SKYPILOT_COMMIT_SHA = '
|
|
10
|
+
_SKYPILOT_COMMIT_SHA = 'b7eec54b8f52d7f72ff5b3908ba7f2d66b8bca6a'
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def _get_git_commit():
|
|
@@ -37,7 +37,7 @@ def _get_git_commit():
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
__commit__ = _get_git_commit()
|
|
40
|
-
__version__ = '1.0.0.
|
|
40
|
+
__version__ = '1.0.0.dev20251027'
|
|
41
41
|
__root_dir__ = directory_utils.get_sky_dir()
|
|
42
42
|
|
|
43
43
|
|
sky/client/cli/command.py
CHANGED
|
@@ -3358,6 +3358,7 @@ def _down_or_stop_clusters(
|
|
|
3358
3358
|
success_progress = True
|
|
3359
3359
|
message = (f'{colorama.Fore.GREEN}{operation} '
|
|
3360
3360
|
f'cluster {name!r}...done{colorama.Style.RESET_ALL}')
|
|
3361
|
+
successes.append(name)
|
|
3361
3362
|
if idle_minutes_to_autostop >= 0:
|
|
3362
3363
|
option_str = 'down' if down else 'stop'
|
|
3363
3364
|
passive_str = 'downed' if down else 'stopped'
|
|
@@ -3428,17 +3429,30 @@ def _down_or_stop_clusters(
|
|
|
3428
3429
|
click.secho(f'{operation} requests are sent. Check the requests\' '
|
|
3429
3430
|
'status with `sky request get <request_id>`.')
|
|
3430
3431
|
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3432
|
+
show_summary = len(clusters) > 1
|
|
3433
|
+
|
|
3434
|
+
if show_summary:
|
|
3435
|
+
click.echo('\nSummary:')
|
|
3436
|
+
if successes:
|
|
3437
|
+
# Preserve the original order of clusters as provided by user.
|
|
3438
|
+
click.echo(' ✓ Succeeded: ' + ', '.join(successes))
|
|
3439
|
+
if failures:
|
|
3440
|
+
# Format failures: if one failure, keep on same line. If multiple,
|
|
3441
|
+
# indent each failed cluster on its own line for readability.
|
|
3442
|
+
if len(failures) == 1:
|
|
3443
|
+
name, reason = failures[0]
|
|
3444
|
+
first = reason.strip().splitlines()[0]
|
|
3445
|
+
first = first if len(first) <= 120 else first[:120] + '…'
|
|
3446
|
+
click.echo(f' ✗ Failed: {name} ({first})')
|
|
3447
|
+
else:
|
|
3448
|
+
click.echo(' ✗ Failed:')
|
|
3449
|
+
for name, reason in failures:
|
|
3450
|
+
first = reason.strip().splitlines()[0]
|
|
3451
|
+
first = first if len(first) <= 120 else first[:120] + '…'
|
|
3452
|
+
click.echo(f' {name} ({first})')
|
|
3453
|
+
|
|
3434
3454
|
if failures:
|
|
3435
|
-
|
|
3436
|
-
for name, reason in failures:
|
|
3437
|
-
first = reason.strip().splitlines()[0]
|
|
3438
|
-
first = first if len(first) <= 120 else first[:120] + '…'
|
|
3439
|
-
failed_pretty.append(f'{name} ({first})')
|
|
3440
|
-
click.echo(' ✗ Failed: ' + ', '.join(failed_pretty))
|
|
3441
|
-
raise click.ClickException('Some clusters failed. See summary above.')
|
|
3455
|
+
raise click.ClickException('Cluster(s) failed. See details above.')
|
|
3442
3456
|
|
|
3443
3457
|
|
|
3444
3458
|
@cli.command(cls=_DocumentedCodeCommand)
|
|
@@ -6340,7 +6354,7 @@ INT_OR_NONE = IntOrNone()
|
|
|
6340
6354
|
|
|
6341
6355
|
@api.command('status', cls=_DocumentedCodeCommand)
|
|
6342
6356
|
@flags.config_option(expose_value=False)
|
|
6343
|
-
@click.argument('
|
|
6357
|
+
@click.argument('request_id_prefixes',
|
|
6344
6358
|
required=False,
|
|
6345
6359
|
type=str,
|
|
6346
6360
|
nargs=-1,
|
|
@@ -6362,15 +6376,16 @@ INT_OR_NONE = IntOrNone()
|
|
|
6362
6376
|
@flags.verbose_option('Show more details.')
|
|
6363
6377
|
@usage_lib.entrypoint
|
|
6364
6378
|
# pylint: disable=redefined-builtin
|
|
6365
|
-
def api_status(
|
|
6379
|
+
def api_status(request_id_prefixes: Optional[List[str]], all_status: bool,
|
|
6366
6380
|
verbose: bool, limit: Optional[int]):
|
|
6367
6381
|
"""List requests on SkyPilot API server."""
|
|
6368
|
-
if not
|
|
6369
|
-
|
|
6382
|
+
if not request_id_prefixes:
|
|
6383
|
+
request_id_prefixes = None
|
|
6370
6384
|
fields = _DEFAULT_REQUEST_FIELDS_TO_SHOW
|
|
6371
6385
|
if verbose:
|
|
6372
6386
|
fields = _VERBOSE_REQUEST_FIELDS_TO_SHOW
|
|
6373
|
-
request_list = sdk.api_status(
|
|
6387
|
+
request_list = sdk.api_status(request_id_prefixes, all_status, limit,
|
|
6388
|
+
fields)
|
|
6374
6389
|
columns = ['ID', 'User', 'Name']
|
|
6375
6390
|
if verbose:
|
|
6376
6391
|
columns.append('Cluster')
|
sky/client/sdk.py
CHANGED
|
@@ -2099,16 +2099,16 @@ def stream_and_get(
|
|
|
2099
2099
|
timeout=(client_common.API_SERVER_REQUEST_CONNECTION_TIMEOUT_SECONDS,
|
|
2100
2100
|
None),
|
|
2101
2101
|
stream=True)
|
|
2102
|
+
if response.status_code in [404, 400]:
|
|
2103
|
+
detail = response.json().get('detail')
|
|
2104
|
+
with ux_utils.print_exception_no_traceback():
|
|
2105
|
+
raise exceptions.ClientError(f'Failed to stream logs: {detail}')
|
|
2102
2106
|
stream_request_id: Optional[server_common.RequestId[
|
|
2103
2107
|
T]] = server_common.get_stream_request_id(response)
|
|
2104
2108
|
if request_id is not None and stream_request_id is not None:
|
|
2105
2109
|
assert request_id == stream_request_id
|
|
2106
2110
|
if request_id is None:
|
|
2107
2111
|
request_id = stream_request_id
|
|
2108
|
-
if response.status_code in [404, 400]:
|
|
2109
|
-
detail = response.json().get('detail')
|
|
2110
|
-
with ux_utils.print_exception_no_traceback():
|
|
2111
|
-
raise exceptions.ClientError(f'Failed to stream logs: {detail}')
|
|
2112
2112
|
elif response.status_code != 200:
|
|
2113
2113
|
# TODO(syang): handle the case where the requestID is not provided
|
|
2114
2114
|
# see https://github.com/skypilot-org/skypilot/issues/6549
|
sky/dashboard/out/404.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/_next/static/chunks/{webpack-4abaae354da0ba13.js → webpack-585d805f693dbceb.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e,t,n,r,c,o,u,i,f,a={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var u=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],i=!0,f=0;f<n.length;f++)u>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[f])})?n.splice(f--,1):(i=!1,c<u&&(u=c));if(i){e.splice(o--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2350===e?"static/chunks/2350.fab69e61bac57b23.js":2369===e?"static/chunks/2369.fc20f0c2c8ed9fe7.js":3937===e?"static/chunks/3937.210053269f121201.js":9025===e?"static/chunks/9025.c12318fb6a1a9093.js":4937===e?"static/chunks/4937.a2baa2df5572a276.js":3294===e?"static/chunks/3294.6d5054a953a818cb.js":8640===e?"static/chunks/8640.5b9475a2d18c5416.js":
|
|
1
|
+
!function(){"use strict";var e,t,n,r,c,o,u,i,f,a={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var u=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],i=!0,f=0;f<n.length;f++)u>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[f])})?n.splice(f--,1):(i=!1,c<u&&(u=c));if(i){e.splice(o--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2350===e?"static/chunks/2350.fab69e61bac57b23.js":2369===e?"static/chunks/2369.fc20f0c2c8ed9fe7.js":3937===e?"static/chunks/3937.210053269f121201.js":9025===e?"static/chunks/9025.c12318fb6a1a9093.js":4937===e?"static/chunks/4937.a2baa2df5572a276.js":3294===e?"static/chunks/3294.6d5054a953a818cb.js":8640===e?"static/chunks/8640.5b9475a2d18c5416.js":9847===e?"static/chunks/9847.3aaca6bb33455140.js":4725===e?"static/chunks/4725.a830b5c9e7867c92.js":2755===e?"static/chunks/2755.227c84f5adf75c6b.js":3785===e?"static/chunks/3785.538eb23a098fc304.js":9360===e?"static/chunks/9360.07d78b8552bc9d17.js":"static/chunks/"+e+"-"+({616:"3d59f75e2ccf9321",1141:"d5204f35a3388bf4",1272:"1ef0bf0237faccdb",1871:"81adbc5f25dff78f",3015:"2dcace420c8939f4",3850:"ff4a9a69d978632b",4282:"d2f3ef2fbf78e347",5739:"d67458fcb1386c92",6130:"2be46d70a38f1e82",6601:"06114c982db410b6",6856:"5c94d394259cdb6e",6989:"01359c57e018caa4",6990:"f6818c84ed8f1c86",7359:"c8d04e06886000b3",7411:"b15471acd2cba716",8969:"0389e2cb52412db3",9353:"cff34f7e773b2e2b"})[e]+".js"},d.miniCssF=function(e){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var u,i,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var s=f[a];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(i=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,d.nc&&u.setAttribute("nonce",d.nc),u.setAttribute("data-webpack",c+n),u.src=d.tu(e)),r[e]=[t];var b=function(t,n){u.onerror=u.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(e){return e(n)}),t)return t(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=b.bind(null,u.onerror),u.onload=b.bind(null,u.onload),i&&document.head.appendChild(u)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",u={2272:0},d.f.j=function(e,t){var n=d.o(u,e)?u[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),o=Error();d.l(c,function(t){if(d.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else u[e]=0}},d.O.j=function(e){return 0===u[e]},i=function(e,t){var n,r,c=t[0],o=t[1],i=t[2],f=0;if(c.some(function(e){return 0!==u[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(i)var a=i(d)}for(e&&e(t);f<c.length;f++)r=c[f],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(i.bind(null,0)),f.push=i.bind(null,f.push.bind(f)),d.nc=void 0}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.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/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/9353-cff34f7e773b2e2b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-c815b90e296b8075.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.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/7359-c8d04e06886000b3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6212-7bd06f60ba693125.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-0389e2cb52412db3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f6818c84ed8f1c86.js" defer=""></script><script src="/dashboard/_next/static/chunks/9353-cff34f7e773b2e2b.js" defer=""></script><script src="/dashboard/_next/static/chunks/4282-d2f3ef2fbf78e347.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-2dcace420c8939f4.js" defer=""></script><script src="/dashboard/_next/static/chunks/6856-5c94d394259cdb6e.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-81adbc5f25dff78f.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-fbf2907ce2bb67e2.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-9e0df5442b04f7d0.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-dfb9bf07b13045f4.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-444f1804401f04ea.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-9b6e47c2e8b485a2.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-c84a3b8a9d599b02.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.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/6212-7bd06f60ba693125.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-0389e2cb52412db3.js" defer=""></script><script src="/dashboard/_next/static/chunks/9353-cff34f7e773b2e2b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-eb5822dac0c9509b.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.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/6212-7bd06f60ba693125.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-0389e2cb52412db3.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/pools/%5Bpool%5D-e020fd69dbe76cea.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_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":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-0dc34cf9a8710a9f.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-96d6b8bb2dec055f.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-d2af9d22e87cc4ba.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.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/7359-c8d04e06886000b3.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-0389e2cb52412db3.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f6818c84ed8f1c86.js" defer=""></script><script src="/dashboard/_next/static/chunks/9353-cff34f7e773b2e2b.js" defer=""></script><script src="/dashboard/_next/static/chunks/4282-d2f3ef2fbf78e347.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-2dcace420c8939f4.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-d5204f35a3388bf4.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-fb1b4d3bfb047cad.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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/4c052b4444e52a58.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4c052b4444e52a58.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-585d805f693dbceb.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-513d332313670f2a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-6fc994fa1ee6c6bf.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"YP5Vc3ROcDnTGta0XAhcs","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/global_user_state.py
CHANGED
|
@@ -1594,41 +1594,32 @@ def get_cluster_from_name(
|
|
|
1594
1594
|
include_user_info: bool = True,
|
|
1595
1595
|
summary_response: bool = False) -> Optional[Dict[str, Any]]:
|
|
1596
1596
|
assert _SQLALCHEMY_ENGINE is not None
|
|
1597
|
+
query_fields = [
|
|
1598
|
+
cluster_table.c.name,
|
|
1599
|
+
cluster_table.c.launched_at,
|
|
1600
|
+
cluster_table.c.handle,
|
|
1601
|
+
cluster_table.c.last_use,
|
|
1602
|
+
cluster_table.c.status,
|
|
1603
|
+
cluster_table.c.autostop,
|
|
1604
|
+
cluster_table.c.to_down,
|
|
1605
|
+
cluster_table.c.owner,
|
|
1606
|
+
cluster_table.c.metadata,
|
|
1607
|
+
cluster_table.c.cluster_hash,
|
|
1608
|
+
cluster_table.c.storage_mounts_metadata,
|
|
1609
|
+
cluster_table.c.cluster_ever_up,
|
|
1610
|
+
cluster_table.c.status_updated_at,
|
|
1611
|
+
cluster_table.c.user_hash,
|
|
1612
|
+
cluster_table.c.config_hash,
|
|
1613
|
+
cluster_table.c.workspace,
|
|
1614
|
+
cluster_table.c.is_managed,
|
|
1615
|
+
]
|
|
1616
|
+
if not summary_response:
|
|
1617
|
+
query_fields.extend([
|
|
1618
|
+
cluster_table.c.last_creation_yaml,
|
|
1619
|
+
cluster_table.c.last_creation_command,
|
|
1620
|
+
])
|
|
1597
1621
|
with orm.Session(_SQLALCHEMY_ENGINE) as session:
|
|
1598
|
-
|
|
1599
|
-
query = session.query(
|
|
1600
|
-
cluster_table.c.name, cluster_table.c.launched_at,
|
|
1601
|
-
cluster_table.c.handle, cluster_table.c.last_use,
|
|
1602
|
-
cluster_table.c.status, cluster_table.c.autostop,
|
|
1603
|
-
cluster_table.c.to_down, cluster_table.c.owner,
|
|
1604
|
-
cluster_table.c.metadata, cluster_table.c.cluster_hash,
|
|
1605
|
-
cluster_table.c.storage_mounts_metadata,
|
|
1606
|
-
cluster_table.c.cluster_ever_up,
|
|
1607
|
-
cluster_table.c.status_updated_at, cluster_table.c.user_hash,
|
|
1608
|
-
cluster_table.c.config_hash, cluster_table.c.workspace,
|
|
1609
|
-
cluster_table.c.is_managed)
|
|
1610
|
-
else:
|
|
1611
|
-
query = session.query(
|
|
1612
|
-
cluster_table.c.name,
|
|
1613
|
-
cluster_table.c.launched_at,
|
|
1614
|
-
cluster_table.c.handle,
|
|
1615
|
-
cluster_table.c.last_use,
|
|
1616
|
-
cluster_table.c.status,
|
|
1617
|
-
cluster_table.c.autostop,
|
|
1618
|
-
cluster_table.c.to_down,
|
|
1619
|
-
cluster_table.c.owner,
|
|
1620
|
-
cluster_table.c.metadata,
|
|
1621
|
-
cluster_table.c.cluster_hash,
|
|
1622
|
-
cluster_table.c.storage_mounts_metadata,
|
|
1623
|
-
cluster_table.c.cluster_ever_up,
|
|
1624
|
-
cluster_table.c.status_updated_at,
|
|
1625
|
-
cluster_table.c.user_hash,
|
|
1626
|
-
cluster_table.c.config_hash,
|
|
1627
|
-
cluster_table.c.workspace,
|
|
1628
|
-
cluster_table.c.is_managed,
|
|
1629
|
-
# extra fields compared to above query
|
|
1630
|
-
cluster_table.c.last_creation_yaml,
|
|
1631
|
-
cluster_table.c.last_creation_command)
|
|
1622
|
+
query = session.query(*query_fields)
|
|
1632
1623
|
row = query.filter_by(name=cluster_name).first()
|
|
1633
1624
|
if row is None:
|
|
1634
1625
|
return None
|
|
@@ -1709,45 +1700,34 @@ def get_clusters(
|
|
|
1709
1700
|
# we treat it as belonging to the current user.
|
|
1710
1701
|
current_user_hash = common_utils.get_user_hash()
|
|
1711
1702
|
assert _SQLALCHEMY_ENGINE is not None
|
|
1703
|
+
query_fields = [
|
|
1704
|
+
cluster_table.c.name,
|
|
1705
|
+
cluster_table.c.launched_at,
|
|
1706
|
+
cluster_table.c.handle,
|
|
1707
|
+
cluster_table.c.last_use,
|
|
1708
|
+
cluster_table.c.status,
|
|
1709
|
+
cluster_table.c.autostop,
|
|
1710
|
+
cluster_table.c.to_down,
|
|
1711
|
+
cluster_table.c.owner,
|
|
1712
|
+
cluster_table.c.metadata,
|
|
1713
|
+
cluster_table.c.cluster_hash,
|
|
1714
|
+
cluster_table.c.storage_mounts_metadata,
|
|
1715
|
+
cluster_table.c.cluster_ever_up,
|
|
1716
|
+
cluster_table.c.status_updated_at,
|
|
1717
|
+
cluster_table.c.user_hash,
|
|
1718
|
+
cluster_table.c.config_hash,
|
|
1719
|
+
cluster_table.c.workspace,
|
|
1720
|
+
cluster_table.c.is_managed,
|
|
1721
|
+
user_table.c.name.label('user_name'),
|
|
1722
|
+
]
|
|
1723
|
+
if not summary_response:
|
|
1724
|
+
query_fields.extend([
|
|
1725
|
+
cluster_table.c.last_creation_yaml,
|
|
1726
|
+
cluster_table.c.last_creation_command,
|
|
1727
|
+
])
|
|
1712
1728
|
with orm.Session(_SQLALCHEMY_ENGINE) as session:
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
cluster_table.c.name, cluster_table.c.launched_at,
|
|
1716
|
-
cluster_table.c.handle, cluster_table.c.last_use,
|
|
1717
|
-
cluster_table.c.status, cluster_table.c.autostop,
|
|
1718
|
-
cluster_table.c.to_down, cluster_table.c.owner,
|
|
1719
|
-
cluster_table.c.metadata, cluster_table.c.cluster_hash,
|
|
1720
|
-
cluster_table.c.storage_mounts_metadata,
|
|
1721
|
-
cluster_table.c.cluster_ever_up,
|
|
1722
|
-
cluster_table.c.status_updated_at, cluster_table.c.user_hash,
|
|
1723
|
-
cluster_table.c.config_hash,
|
|
1724
|
-
cluster_table.c.workspace, cluster_table.c.is_managed,
|
|
1725
|
-
user_table.c.name.label('user_name')).outerjoin(
|
|
1726
|
-
user_table, cluster_table.c.user_hash == user_table.c.id)
|
|
1727
|
-
else:
|
|
1728
|
-
query = session.query(
|
|
1729
|
-
cluster_table.c.name,
|
|
1730
|
-
cluster_table.c.launched_at,
|
|
1731
|
-
cluster_table.c.handle,
|
|
1732
|
-
cluster_table.c.last_use,
|
|
1733
|
-
cluster_table.c.status,
|
|
1734
|
-
cluster_table.c.autostop,
|
|
1735
|
-
cluster_table.c.to_down,
|
|
1736
|
-
cluster_table.c.owner,
|
|
1737
|
-
cluster_table.c.metadata,
|
|
1738
|
-
cluster_table.c.cluster_hash,
|
|
1739
|
-
cluster_table.c.storage_mounts_metadata,
|
|
1740
|
-
cluster_table.c.cluster_ever_up,
|
|
1741
|
-
cluster_table.c.status_updated_at,
|
|
1742
|
-
cluster_table.c.user_hash,
|
|
1743
|
-
cluster_table.c.config_hash,
|
|
1744
|
-
cluster_table.c.workspace,
|
|
1745
|
-
cluster_table.c.is_managed,
|
|
1746
|
-
# extra fields compared to above query
|
|
1747
|
-
cluster_table.c.last_creation_yaml,
|
|
1748
|
-
cluster_table.c.last_creation_command,
|
|
1749
|
-
user_table.c.name.label('user_name')).outerjoin(
|
|
1750
|
-
user_table, cluster_table.c.user_hash == user_table.c.id)
|
|
1729
|
+
query = session.query(*query_fields).outerjoin(
|
|
1730
|
+
user_table, cluster_table.c.user_hash == user_table.c.id)
|
|
1751
1731
|
if exclude_managed_clusters:
|
|
1752
1732
|
query = query.filter(cluster_table.c.is_managed == int(False))
|
|
1753
1733
|
if workspaces_filter is not None:
|
sky/server/requests/requests.py
CHANGED
|
@@ -412,6 +412,24 @@ def kill_cluster_requests(cluster_name: str, exclude_request_name: str):
|
|
|
412
412
|
kill_requests(request_ids)
|
|
413
413
|
|
|
414
414
|
|
|
415
|
+
def kill_requests_with_prefix(request_ids: Optional[List[str]] = None,
|
|
416
|
+
user_id: Optional[str] = None) -> List[str]:
|
|
417
|
+
"""Kill requests with a given request ID prefix."""
|
|
418
|
+
expanded_request_ids: Optional[List[str]] = None
|
|
419
|
+
if request_ids is not None:
|
|
420
|
+
expanded_request_ids = []
|
|
421
|
+
for request_id in request_ids:
|
|
422
|
+
request_tasks = get_requests_with_prefix(request_id,
|
|
423
|
+
fields=['request_id'])
|
|
424
|
+
if request_tasks is None or len(request_tasks) == 0:
|
|
425
|
+
continue
|
|
426
|
+
if len(request_tasks) > 1:
|
|
427
|
+
raise ValueError(f'Multiple requests found for '
|
|
428
|
+
f'request ID prefix: {request_id}')
|
|
429
|
+
expanded_request_ids.append(request_tasks[0].request_id)
|
|
430
|
+
return kill_requests(request_ids=expanded_request_ids, user_id=user_id)
|
|
431
|
+
|
|
432
|
+
|
|
415
433
|
def kill_requests(request_ids: Optional[List[str]] = None,
|
|
416
434
|
user_id: Optional[str] = None) -> List[str]:
|
|
417
435
|
"""Kill a SkyPilot API request and set its status to cancelled.
|
|
@@ -715,6 +733,51 @@ async def get_request_async(
|
|
|
715
733
|
return await _get_request_no_lock_async(request_id, fields)
|
|
716
734
|
|
|
717
735
|
|
|
736
|
+
@init_db
|
|
737
|
+
@metrics_lib.time_me
|
|
738
|
+
def get_requests_with_prefix(
|
|
739
|
+
request_id_prefix: str,
|
|
740
|
+
fields: Optional[List[str]] = None) -> Optional[List[Request]]:
|
|
741
|
+
"""Get requests with a given request ID prefix."""
|
|
742
|
+
assert _DB is not None
|
|
743
|
+
if fields:
|
|
744
|
+
columns_str = ', '.join(fields)
|
|
745
|
+
else:
|
|
746
|
+
columns_str = ', '.join(REQUEST_COLUMNS)
|
|
747
|
+
with _DB.conn:
|
|
748
|
+
cursor = _DB.conn.cursor()
|
|
749
|
+
cursor.execute((f'SELECT {columns_str} FROM {REQUEST_TABLE} '
|
|
750
|
+
'WHERE request_id LIKE ?'), (request_id_prefix + '%',))
|
|
751
|
+
rows = cursor.fetchall()
|
|
752
|
+
if not rows:
|
|
753
|
+
return None
|
|
754
|
+
if fields:
|
|
755
|
+
rows = [_update_request_row_fields(row, fields) for row in rows]
|
|
756
|
+
return [Request.from_row(row) for row in rows]
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
@init_db_async
|
|
760
|
+
@metrics_lib.time_me_async
|
|
761
|
+
@asyncio_utils.shield
|
|
762
|
+
async def get_requests_async_with_prefix(
|
|
763
|
+
request_id_prefix: str,
|
|
764
|
+
fields: Optional[List[str]] = None) -> Optional[List[Request]]:
|
|
765
|
+
"""Async version of get_request_with_prefix."""
|
|
766
|
+
assert _DB is not None
|
|
767
|
+
if fields:
|
|
768
|
+
columns_str = ', '.join(fields)
|
|
769
|
+
else:
|
|
770
|
+
columns_str = ', '.join(REQUEST_COLUMNS)
|
|
771
|
+
async with _DB.execute_fetchall_async(
|
|
772
|
+
(f'SELECT {columns_str} FROM {REQUEST_TABLE} '
|
|
773
|
+
'WHERE request_id LIKE ?'), (request_id_prefix + '%',)) as rows:
|
|
774
|
+
if not rows:
|
|
775
|
+
return None
|
|
776
|
+
if fields:
|
|
777
|
+
rows = [_update_request_row_fields(row, fields) for row in rows]
|
|
778
|
+
return [Request.from_row(row) for row in rows]
|
|
779
|
+
|
|
780
|
+
|
|
718
781
|
class StatusWithMsg(NamedTuple):
|
|
719
782
|
status: RequestStatus
|
|
720
783
|
status_msg: Optional[str] = None
|
|
@@ -56,10 +56,16 @@ def decode_status(
|
|
|
56
56
|
clusters = return_value
|
|
57
57
|
response = []
|
|
58
58
|
for cluster in clusters:
|
|
59
|
-
|
|
59
|
+
# handle may not always be present in the response.
|
|
60
|
+
if 'handle' in cluster and cluster['handle'] is not None:
|
|
61
|
+
cluster['handle'] = decode_and_unpickle(cluster['handle'])
|
|
60
62
|
cluster['status'] = status_lib.ClusterStatus(cluster['status'])
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
# this field is to be deprecated in the future.
|
|
64
|
+
# do not decode this field if it is not present.
|
|
65
|
+
if ('storage_mounts_metadata' in cluster and
|
|
66
|
+
cluster['storage_mounts_metadata'] is not None):
|
|
67
|
+
cluster['storage_mounts_metadata'] = decode_and_unpickle(
|
|
68
|
+
cluster['storage_mounts_metadata'])
|
|
63
69
|
if 'is_managed' not in cluster:
|
|
64
70
|
cluster['is_managed'] = False
|
|
65
71
|
response.append(responses.StatusResponse.model_validate(cluster))
|
sky/server/server.py
CHANGED
|
@@ -1497,10 +1497,27 @@ async def local_down(request: fastapi.Request,
|
|
|
1497
1497
|
)
|
|
1498
1498
|
|
|
1499
1499
|
|
|
1500
|
+
async def get_expanded_request_id(request_id: str) -> str:
|
|
1501
|
+
"""Gets the expanded request ID for a given request ID prefix."""
|
|
1502
|
+
request_tasks = await requests_lib.get_requests_async_with_prefix(
|
|
1503
|
+
request_id, fields=['request_id'])
|
|
1504
|
+
if request_tasks is None:
|
|
1505
|
+
raise fastapi.HTTPException(status_code=404,
|
|
1506
|
+
detail=f'Request {request_id!r} not found')
|
|
1507
|
+
if len(request_tasks) > 1:
|
|
1508
|
+
raise fastapi.HTTPException(status_code=400,
|
|
1509
|
+
detail=('Multiple requests found for '
|
|
1510
|
+
f'request ID prefix: {request_id}'))
|
|
1511
|
+
return request_tasks[0].request_id
|
|
1512
|
+
|
|
1513
|
+
|
|
1500
1514
|
# === API server related APIs ===
|
|
1501
1515
|
@app.get('/api/get')
|
|
1502
1516
|
async def api_get(request_id: str) -> payloads.RequestPayload:
|
|
1503
1517
|
"""Gets a request with a given request ID prefix."""
|
|
1518
|
+
# Validate request_id prefix matches a single request.
|
|
1519
|
+
request_id = await get_expanded_request_id(request_id)
|
|
1520
|
+
|
|
1504
1521
|
while True:
|
|
1505
1522
|
req_status = await requests_lib.get_request_status_async(request_id)
|
|
1506
1523
|
if req_status is None:
|
|
@@ -1560,11 +1577,16 @@ async def stream(
|
|
|
1560
1577
|
clients, console for CLI/API clients), 'plain' (force plain text),
|
|
1561
1578
|
'html' (force HTML), or 'console' (force console)
|
|
1562
1579
|
"""
|
|
1580
|
+
# We need to save the user-supplied request ID for the response header.
|
|
1581
|
+
user_supplied_request_id = request_id
|
|
1563
1582
|
if request_id is not None and log_path is not None:
|
|
1564
1583
|
raise fastapi.HTTPException(
|
|
1565
1584
|
status_code=400,
|
|
1566
1585
|
detail='Only one of request_id and log_path can be provided')
|
|
1567
1586
|
|
|
1587
|
+
if request_id is not None:
|
|
1588
|
+
request_id = await get_expanded_request_id(request_id)
|
|
1589
|
+
|
|
1568
1590
|
if request_id is None and log_path is None:
|
|
1569
1591
|
request_id = await requests_lib.get_latest_request_id_async()
|
|
1570
1592
|
if request_id is None:
|
|
@@ -1654,7 +1676,9 @@ async def stream(
|
|
|
1654
1676
|
'Transfer-Encoding': 'chunked'
|
|
1655
1677
|
}
|
|
1656
1678
|
if request_id is not None:
|
|
1657
|
-
headers[server_constants.STREAM_REQUEST_HEADER] =
|
|
1679
|
+
headers[server_constants.STREAM_REQUEST_HEADER] = (
|
|
1680
|
+
user_supplied_request_id
|
|
1681
|
+
if user_supplied_request_id else request_id)
|
|
1658
1682
|
|
|
1659
1683
|
return fastapi.responses.StreamingResponse(
|
|
1660
1684
|
content=stream_utils.log_streamer(request_id,
|
|
@@ -1676,7 +1700,7 @@ async def api_cancel(request: fastapi.Request,
|
|
|
1676
1700
|
request_id=request.state.request_id,
|
|
1677
1701
|
request_name='api_cancel',
|
|
1678
1702
|
request_body=request_cancel_body,
|
|
1679
|
-
func=requests_lib.
|
|
1703
|
+
func=requests_lib.kill_requests_with_prefix,
|
|
1680
1704
|
schedule_type=requests_lib.ScheduleType.SHORT,
|
|
1681
1705
|
)
|
|
1682
1706
|
|
|
@@ -1684,7 +1708,7 @@ async def api_cancel(request: fastapi.Request,
|
|
|
1684
1708
|
@app.get('/api/status')
|
|
1685
1709
|
async def api_status(
|
|
1686
1710
|
request_ids: Optional[List[str]] = fastapi.Query(
|
|
1687
|
-
None, description='Request
|
|
1711
|
+
None, description='Request ID prefixes to get status for.'),
|
|
1688
1712
|
all_status: bool = fastapi.Query(
|
|
1689
1713
|
False, description='Get finished requests as well.'),
|
|
1690
1714
|
limit: Optional[int] = fastapi.Query(
|
|
@@ -1711,10 +1735,12 @@ async def api_status(
|
|
|
1711
1735
|
else:
|
|
1712
1736
|
encoded_request_tasks = []
|
|
1713
1737
|
for request_id in request_ids:
|
|
1714
|
-
|
|
1715
|
-
|
|
1738
|
+
request_tasks = await requests_lib.get_requests_async_with_prefix(
|
|
1739
|
+
request_id)
|
|
1740
|
+
if request_tasks is None:
|
|
1716
1741
|
continue
|
|
1717
|
-
|
|
1742
|
+
for request_task in request_tasks:
|
|
1743
|
+
encoded_request_tasks.append(request_task.readable_encode())
|
|
1718
1744
|
return encoded_request_tasks
|
|
1719
1745
|
|
|
1720
1746
|
|
sky/utils/command_runner.py
CHANGED
|
@@ -964,8 +964,16 @@ class KubernetesCommandRunner(CommandRunner):
|
|
|
964
964
|
kubectl_args = [
|
|
965
965
|
'--pod-running-timeout', f'{connect_timeout}s', '-n', self.namespace
|
|
966
966
|
]
|
|
967
|
+
# The same logic to either set `--context` to the k8s context where
|
|
968
|
+
# the sky cluster is hosted, or `--kubeconfig` to /dev/null for
|
|
969
|
+
# in-cluster k8s is used below in the `run()` method.
|
|
967
970
|
if self.context:
|
|
968
971
|
kubectl_args += ['--context', self.context]
|
|
972
|
+
# If context is none, it means the cluster is hosted on in-cluster k8s.
|
|
973
|
+
# In this case, we need to set KUBECONFIG to /dev/null to avoid looking
|
|
974
|
+
# for the cluster in whatever active context is set in the kubeconfig.
|
|
975
|
+
else:
|
|
976
|
+
kubectl_args += ['--kubeconfig', '/dev/null']
|
|
969
977
|
local_port, remote_port = port_forward[0]
|
|
970
978
|
local_port_str = f'{local_port}' if local_port is not None else ''
|
|
971
979
|
|
|
@@ -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.dev20251027
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -371,51 +371,51 @@ Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "shadeform"
|
|
|
371
371
|
Requires-Dist: aiosqlite; extra == "shadeform"
|
|
372
372
|
Requires-Dist: greenlet; extra == "shadeform"
|
|
373
373
|
Provides-Extra: all
|
|
374
|
-
Requires-Dist:
|
|
374
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
375
|
+
Requires-Dist: azure-common; extra == "all"
|
|
376
|
+
Requires-Dist: oci; extra == "all"
|
|
377
|
+
Requires-Dist: anyio; extra == "all"
|
|
378
|
+
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
379
|
+
Requires-Dist: msgraph-sdk; extra == "all"
|
|
380
|
+
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
381
|
+
Requires-Dist: pyjwt; extra == "all"
|
|
382
|
+
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
383
|
+
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
384
|
+
Requires-Dist: python-dateutil; extra == "all"
|
|
375
385
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
376
|
-
Requires-Dist:
|
|
386
|
+
Requires-Dist: aiosqlite; extra == "all"
|
|
387
|
+
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
388
|
+
Requires-Dist: passlib; extra == "all"
|
|
389
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
390
|
+
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
377
391
|
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
378
|
-
Requires-Dist:
|
|
379
|
-
Requires-Dist:
|
|
380
|
-
Requires-Dist:
|
|
392
|
+
Requires-Dist: websockets; extra == "all"
|
|
393
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
394
|
+
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
381
395
|
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
382
|
-
Requires-Dist:
|
|
383
|
-
Requires-Dist:
|
|
384
|
-
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
385
|
-
Requires-Dist: anyio; extra == "all"
|
|
386
|
-
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
396
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
397
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
387
398
|
Requires-Dist: msrestazure; extra == "all"
|
|
388
|
-
Requires-Dist:
|
|
389
|
-
Requires-Dist:
|
|
390
|
-
Requires-Dist:
|
|
391
|
-
Requires-Dist:
|
|
392
|
-
Requires-Dist:
|
|
393
|
-
Requires-Dist:
|
|
399
|
+
Requires-Dist: casbin; extra == "all"
|
|
400
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
401
|
+
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
402
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
403
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
404
|
+
Requires-Dist: docker; extra == "all"
|
|
394
405
|
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
406
|
+
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
407
|
+
Requires-Dist: tomli; python_version < "3.11" and extra == "all"
|
|
408
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
395
409
|
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
410
|
+
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
396
411
|
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
397
|
-
Requires-Dist: casbin; extra == "all"
|
|
398
|
-
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
399
|
-
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
400
|
-
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
401
|
-
Requires-Dist: python-dateutil; extra == "all"
|
|
402
|
-
Requires-Dist: oci; extra == "all"
|
|
403
|
-
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
404
|
-
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
405
|
-
Requires-Dist: ibm-vpc; extra == "all"
|
|
406
|
-
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
407
|
-
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
408
412
|
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
409
|
-
Requires-Dist:
|
|
410
|
-
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
411
|
-
Requires-Dist: msgraph-sdk; extra == "all"
|
|
412
|
-
Requires-Dist: docker; extra == "all"
|
|
413
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
413
414
|
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
414
|
-
Requires-Dist: pyjwt; extra == "all"
|
|
415
415
|
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
416
|
-
Requires-Dist:
|
|
417
|
-
Requires-Dist:
|
|
418
|
-
Requires-Dist:
|
|
416
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
417
|
+
Requires-Dist: greenlet; extra == "all"
|
|
418
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
419
419
|
Provides-Extra: remote
|
|
420
420
|
Requires-Dist: grpcio>=1.63.0; extra == "remote"
|
|
421
421
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "remote"
|
|
@@ -479,7 +479,7 @@ Dynamic: summary
|
|
|
479
479
|
----
|
|
480
480
|
|
|
481
481
|
:fire: *News* :fire:
|
|
482
|
-
- [
|
|
482
|
+
- [Oct 2025] Run **RL training for LLMs** with SkyRL on your Kubernetes or clouds: [**example**](./llm/skyrl/)
|
|
483
483
|
- [Oct 2025] Train and serve [Andrej Karpathy's](https://x.com/karpathy/status/1977755427569111362) **nanochat** - the best ChatGPT that $100 can buy: [**example**](./llm/nanochat)
|
|
484
484
|
- [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./examples/training/torchtitan)
|
|
485
485
|
- [Sep 2025] Scaling AI infrastructure at Abridge - **10x faster development** with SkyPilot: [**blog**](https://blog.skypilot.co/abridge/)
|
{skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/RECORD
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sky/__init__.py,sha256=
|
|
1
|
+
sky/__init__.py,sha256=qyk8gTSsQDufV8QIzuAfiHS1qtvirkfc5MwCk0VDe8E,6759
|
|
2
2
|
sky/admin_policy.py,sha256=XdcJnYqmude-LGGop-8U-FeiJcqtfYsYtIy4rmoCJnM,9799
|
|
3
3
|
sky/authentication.py,sha256=BK5Fkuk3EmS4DwCrxI_8a4SQHUNFYu9GztWSzPissSA,20123
|
|
4
4
|
sky/check.py,sha256=hBDTkiADC3HFfO6brZV819FVWcdOs3aiuhB6x6mY4Q4,29728
|
|
@@ -8,7 +8,7 @@ sky/core.py,sha256=VTHly9kJmwtmdiKwkrSrzuJ_8V8t-aI9weADd0SqDWA,58305
|
|
|
8
8
|
sky/dag.py,sha256=0ZpAEDXuIFo1SP7YJpF9vXiFxpRwqP8od-UXMg95td8,3929
|
|
9
9
|
sky/exceptions.py,sha256=DTQN5db2N6FntRRw0rRLyQG2q7HDvnylpvjkRF8wYBk,20830
|
|
10
10
|
sky/execution.py,sha256=klMjceOMCMDzyYczazrT-kiS6kGqfyBO_9KvlZzyTUw,35849
|
|
11
|
-
sky/global_user_state.py,sha256
|
|
11
|
+
sky/global_user_state.py,sha256=OUz-_fi5mF2E2_6l2sPpyX2HF5Cl3FOU3iVsPOt0sCc,106411
|
|
12
12
|
sky/models.py,sha256=ZKisLai7vqUr6_BPev6Oziu5N23WLzTh9nRtHSlRchw,3999
|
|
13
13
|
sky/optimizer.py,sha256=iR57bL_8BeG6bh1sH3J6n6i65EBFjmyftezYM4nnDZA,64150
|
|
14
14
|
sky/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -86,11 +86,11 @@ sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg
|
|
|
86
86
|
sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
|
|
87
87
|
sky/client/common.py,sha256=j8ENgeRN3KdKBf0-pi1K9w1HtkqrkBR12QtF_wGWG8M,16950
|
|
88
88
|
sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
|
|
89
|
-
sky/client/sdk.py,sha256=
|
|
89
|
+
sky/client/sdk.py,sha256=fiNkg_CtoNDzqCPM-i230c4W_4IIa7WlDp9ga8TMa2Y,109351
|
|
90
90
|
sky/client/sdk_async.py,sha256=8G_E9Dn4d80rV-wxRH4zZUXZGAm6rLw3C8PI07fXwwQ,31106
|
|
91
91
|
sky/client/service_account_auth.py,sha256=5jXk0G6ufuW-SHCO7BEHQeTO0_2a8KfFmA63auXFRj4,1529
|
|
92
92
|
sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
sky/client/cli/command.py,sha256=
|
|
93
|
+
sky/client/cli/command.py,sha256=Co4Wy6_XJAKuWmeoO9915tCAZ0lCZaTuKeicj9ngJlk,258214
|
|
94
94
|
sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
|
|
95
95
|
sky/client/cli/flags.py,sha256=hwQ4Y9lwTbfqYoINWUTqRMGBoXxBy4_E5hqtXbBcEeg,12219
|
|
96
96
|
sky/client/cli/table_utils.py,sha256=2aFdevW6B18mztZdhynP4ptgKW4Yp7bYC9B_ZWmzjiw,10215
|
|
@@ -123,19 +123,19 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
|
123
123
|
sky/clouds/utils/gcp_utils.py,sha256=09MF4Vx0EW7S-GXGpyxpl2aQlHrqeu9ioV0nyionAyk,9890
|
|
124
124
|
sky/clouds/utils/oci_utils.py,sha256=TFqAqRLggg4Z0bhxrrq8nouSSomZy-ub1frHXEkud2M,7302
|
|
125
125
|
sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
|
|
126
|
-
sky/dashboard/out/404.html,sha256=
|
|
127
|
-
sky/dashboard/out/clusters.html,sha256=
|
|
128
|
-
sky/dashboard/out/config.html,sha256=
|
|
126
|
+
sky/dashboard/out/404.html,sha256=s51nc6hpRgqZOHwFszG6RUSFc00OWrnFUxkLPynl9Vk,1423
|
|
127
|
+
sky/dashboard/out/clusters.html,sha256=kmiiuuKWcCYzb7yO2CMpWw82PkdRnFmhw1pfcnZ6teY,1418
|
|
128
|
+
sky/dashboard/out/config.html,sha256=zVDSgjFF2JNnjkRH2dVuvkvvWhn9VaE-3R-ZGQcT3bY,1414
|
|
129
129
|
sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
|
|
130
|
-
sky/dashboard/out/index.html,sha256=
|
|
131
|
-
sky/dashboard/out/infra.html,sha256=
|
|
132
|
-
sky/dashboard/out/jobs.html,sha256=
|
|
130
|
+
sky/dashboard/out/index.html,sha256=79gWwhQhNa_PtWa7n2Q9r_Al2sscLvY8lup86ucDsIs,1407
|
|
131
|
+
sky/dashboard/out/infra.html,sha256=9QSZdps85Y7x1ab_zWNslN32htlNrTj_NJQbN0yhYDw,1412
|
|
132
|
+
sky/dashboard/out/jobs.html,sha256=xxrB8bVqFuOBArIKI9dtKs8JqTEhro8jjD0C2MkBDFg,1410
|
|
133
133
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
|
134
|
-
sky/dashboard/out/users.html,sha256=
|
|
135
|
-
sky/dashboard/out/volumes.html,sha256=
|
|
136
|
-
sky/dashboard/out/workspaces.html,sha256=
|
|
137
|
-
sky/dashboard/out/_next/static/
|
|
138
|
-
sky/dashboard/out/_next/static/
|
|
134
|
+
sky/dashboard/out/users.html,sha256=KW22aEvwOiHrwXExS7usmOVebxyUt0xzP6eLZbj4jIk,1412
|
|
135
|
+
sky/dashboard/out/volumes.html,sha256=zTA_UcK8xhmwUg_40vsxNK2cXQH_2klJe3zb-_u-F0A,1416
|
|
136
|
+
sky/dashboard/out/workspaces.html,sha256=Cy75Bd0iO7fak3rc-Kt0Qp_qKfRt1UP_n8H-KXp2jiw,1422
|
|
137
|
+
sky/dashboard/out/_next/static/YP5Vc3ROcDnTGta0XAhcs/_buildManifest.js,sha256=pcTTNeaVLZXGS_0UuCzilwp8ChtVTb39zKQMiVKQiEo,2394
|
|
138
|
+
sky/dashboard/out/_next/static/YP5Vc3ROcDnTGta0XAhcs/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
139
139
|
sky/dashboard/out/_next/static/chunks/1141-d5204f35a3388bf4.js,sha256=wcoMAJpyDTuT3Ve9XpIiPfL38HRBNw3AUbPThspHasY,18362
|
|
140
140
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
|
141
141
|
sky/dashboard/out/_next/static/chunks/1871-81adbc5f25dff78f.js,sha256=-JlmbDZU15pEAv54lv5-4j7UziaKTaYyF9FSwRdB-wM,20697
|
|
@@ -171,7 +171,7 @@ sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js,sha256=_Qbam
|
|
|
171
171
|
sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js,sha256=t7glRfataAjNw691Wni-ZU4a3BsygRzPKoI8NOm-lsY,116244
|
|
172
172
|
sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js,sha256=jxOPLDVX3rkMc_jvGx2a-N2v6mvfOa8O6V0o-sLT0tI,110208
|
|
173
173
|
sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
|
174
|
-
sky/dashboard/out/_next/static/chunks/webpack-
|
|
174
|
+
sky/dashboard/out/_next/static/chunks/webpack-585d805f693dbceb.js,sha256=s38mdbJnuFZSiIbkIaYe8pbqlM2V2VNV_ThO-g8PfoU,4770
|
|
175
175
|
sky/dashboard/out/_next/static/chunks/pages/_app-513d332313670f2a.js,sha256=ZLZluABDOfg5D5yPS3kly42sCQTmBuI20Tcisv_Sr9A,95518
|
|
176
176
|
sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
|
177
177
|
sky/dashboard/out/_next/static/chunks/pages/clusters-9e0df5442b04f7d0.js,sha256=vJs6GPARm5X6JFKdkQGZgnnuZR9tzqKhFGutKDJp0_8,869
|
|
@@ -190,14 +190,14 @@ sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-e020fd69dbe76cea.j
|
|
|
190
190
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js,sha256=83s5N5CZwIaRcmYMfqn2we60n2VRmgFw6Tbx18b8-e0,762
|
|
191
191
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-fb1b4d3bfb047cad.js,sha256=8d90rL6ABuvlRe-J58wHh9XtYBBlXEejefIx5LAnOyo,1495
|
|
192
192
|
sky/dashboard/out/_next/static/css/4c052b4444e52a58.css,sha256=gAtDLtuMJE6i17ji-bzO8sL_ZQHavpYIjy6FSXLgBiA,56527
|
|
193
|
-
sky/dashboard/out/clusters/[cluster].html,sha256=
|
|
194
|
-
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=
|
|
195
|
-
sky/dashboard/out/infra/[context].html,sha256=
|
|
196
|
-
sky/dashboard/out/jobs/[job].html,sha256=
|
|
197
|
-
sky/dashboard/out/jobs/pools/[pool].html,sha256=
|
|
193
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=XoZqbyhgm2n0zLgqjXjiWFOLULvow6pPizhOjMRvbTI,2937
|
|
194
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=KYS-j33L2f6DnLup-C9oewQFFvX3huwZN56HQSAI1YA,2073
|
|
195
|
+
sky/dashboard/out/infra/[context].html,sha256=j8sr1IfZyDaAVC4cwbKnzoUCLRHpoX_wNnytQpLF__k,1436
|
|
196
|
+
sky/dashboard/out/jobs/[job].html,sha256=PcHQ-7zEVY62UuqseYwNS3GQBEBT-tNDuC0k96JuPXg,2305
|
|
197
|
+
sky/dashboard/out/jobs/pools/[pool].html,sha256=sxN6ShJApEt1aFNkwMz8Q2YkWbiTuWfEEP9NTgyqe0E,2143
|
|
198
198
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
|
199
|
-
sky/dashboard/out/workspace/new.html,sha256=
|
|
200
|
-
sky/dashboard/out/workspaces/[name].html,sha256=
|
|
199
|
+
sky/dashboard/out/workspace/new.html,sha256=xop9VfKcZ0Ysmya8_3f73FUZLSSzIl-J5v4c-fT2riU,1428
|
|
200
|
+
sky/dashboard/out/workspaces/[name].html,sha256=JZMwzruwj8RNPr5JJ6zGVnT94yKNvK5AW0WFVGcFa1k,2759
|
|
201
201
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
|
202
202
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
|
203
203
|
sky/data/data_utils.py,sha256=AjEA_JRjo9NBMlv-Lq5iV4lBED_YZ1VqBR9pG6fGVWE,35179
|
|
@@ -397,7 +397,7 @@ sky/server/constants.py,sha256=54w38B5AsRVCMCPP_iN7YoaApxbcttt3pue0VEP9DWg,2615
|
|
|
397
397
|
sky/server/daemons.py,sha256=pEmLE0JsR6C8ZSxt8sr4ncPfZcDYvXqDCycU0IDcQ8U,9238
|
|
398
398
|
sky/server/metrics.py,sha256=8mTyD-zo2gyAJSPJyCtTR8oImeFJ2K-sAdlje5Bf5U4,5781
|
|
399
399
|
sky/server/rest.py,sha256=XDvKhVY9br9zt4TNbygUH_XDbH_wugzxKNYlbqVHJjY,16045
|
|
400
|
-
sky/server/server.py,sha256=
|
|
400
|
+
sky/server/server.py,sha256=Q2BxY1z9rA0rUgzQu0j53nRuU1MC1IwQ9QT1bPN4wE8,89335
|
|
401
401
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
|
402
402
|
sky/server/stream_utils.py,sha256=9yHkB5Gkpago3WgR_sKBK5nJTpUYlBcYgTGVqMPYm9k,16750
|
|
403
403
|
sky/server/uvicorn.py,sha256=etFyJP9Kz5uRhM619VrQMiVhJKWPxTqbaz9H1wW1EWs,11955
|
|
@@ -414,13 +414,13 @@ sky/server/requests/executor.py,sha256=quK4m2OVY_7uFASLAo-P8mzTu2i820y5hQWU8tyLb
|
|
|
414
414
|
sky/server/requests/payloads.py,sha256=MUHuj4CaxrpI_52K76gLDEtPmsrc2WZFt2cBKL0UFus,28286
|
|
415
415
|
sky/server/requests/preconditions.py,sha256=L_4ow2Twl0h2sk2P4waL2e1WVfYm4p4DFwmR6Nip8Bw,7486
|
|
416
416
|
sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
|
|
417
|
-
sky/server/requests/requests.py,sha256=
|
|
417
|
+
sky/server/requests/requests.py,sha256=JFEDPdvpI6RW3gleoQp6SYomXFa4F7FwzgEHItiSybA,43157
|
|
418
418
|
sky/server/requests/threads.py,sha256=AwzbcoeLDz5RnSi0jJSD3u4lGDiYkCaa1qDvPkUqeMI,4131
|
|
419
419
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
420
420
|
sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
|
|
421
421
|
sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
|
|
422
422
|
sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
423
|
-
sky/server/requests/serializers/decoders.py,sha256=
|
|
423
|
+
sky/server/requests/serializers/decoders.py,sha256=QBOlOw1fe436_CIh6PPrYPlnfrkowpwMcYFstZ7zQPU,9206
|
|
424
424
|
sky/server/requests/serializers/encoders.py,sha256=POKopCYRFnk546wOZE8DbAKrmmFawCfaW34wyckhcxk,8457
|
|
425
425
|
sky/setup_files/MANIFEST.in,sha256=4gbgHHwSdP6BbMJv5XOt-2K6wUVWF_T9CGsdESvh918,776
|
|
426
426
|
sky/setup_files/alembic.ini,sha256=d85kX5QMzCHxrgOct7StGixQEkaO7LKGKjSXLIwBRZI,5201
|
|
@@ -509,7 +509,7 @@ sky/utils/atomic.py,sha256=vrw-7XCnckF0xCx-ttamao7evPdGtVsnjaTtgMlBXIE,1280
|
|
|
509
509
|
sky/utils/auth_utils.py,sha256=1ugVMGEglEyTsvtZJtv06eNewGudvaWd152cShkUyuI,6238
|
|
510
510
|
sky/utils/benchmark_utils.py,sha256=vBqvgS-7XBat9N4UvtmxXS70i2EQUa4BUv4fsF8g58A,1635
|
|
511
511
|
sky/utils/cluster_utils.py,sha256=PxVIVCBPA8qKkKvrF7bImDC1jhUZeJDADYtV-ELTZXE,15527
|
|
512
|
-
sky/utils/command_runner.py,sha256=
|
|
512
|
+
sky/utils/command_runner.py,sha256=2m9jGetmzqaR1UdtXixEAiaDAX8vOFkzYt8kHDxLLoQ,51925
|
|
513
513
|
sky/utils/command_runner.pyi,sha256=FE8lFyxsh6528uSeSS38yk9Yu9HSJ8LFJT0ylMWNR6k,10618
|
|
514
514
|
sky/utils/common.py,sha256=SS-NXSqMD34GeUSxMJuZ-Kce_2yPxiPdXhQoNQR5Lho,2834
|
|
515
515
|
sky/utils/common_utils.py,sha256=3p-x8pU5tAFxJ95eW-KpY-aRPTGqL6ZvMbUO_iSiPVM,39147
|
|
@@ -579,9 +579,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
579
579
|
sky/workspaces/core.py,sha256=kRrdh-8MhX1953pML1B_DoStnDuNrsmHcZlnWoAxVo0,27218
|
|
580
580
|
sky/workspaces/server.py,sha256=T1K52wR88nARVMUBf2cpIP3VURjDNQTcN6HIp7prghE,3511
|
|
581
581
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
|
582
|
-
skypilot_nightly-1.0.0.
|
|
583
|
-
skypilot_nightly-1.0.0.
|
|
584
|
-
skypilot_nightly-1.0.0.
|
|
585
|
-
skypilot_nightly-1.0.0.
|
|
586
|
-
skypilot_nightly-1.0.0.
|
|
587
|
-
skypilot_nightly-1.0.0.
|
|
582
|
+
skypilot_nightly-1.0.0.dev20251027.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
|
583
|
+
skypilot_nightly-1.0.0.dev20251027.dist-info/METADATA,sha256=6G2DGcSkF1izGm6UWNYX2p9Sk2Acnz9tklgBx7DRs48,31328
|
|
584
|
+
skypilot_nightly-1.0.0.dev20251027.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
585
|
+
skypilot_nightly-1.0.0.dev20251027.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
|
586
|
+
skypilot_nightly-1.0.0.dev20251027.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
|
587
|
+
skypilot_nightly-1.0.0.dev20251027.dist-info/RECORD,,
|
/sky/dashboard/out/_next/static/{WfMolkH3tkVNEHhHaH9uk → YP5Vc3ROcDnTGta0XAhcs}/_buildManifest.js
RENAMED
|
File without changes
|
/sky/dashboard/out/_next/static/{WfMolkH3tkVNEHhHaH9uk → YP5Vc3ROcDnTGta0XAhcs}/_ssgManifest.js
RENAMED
|
File without changes
|
{skypilot_nightly-1.0.0.dev20251025.dist-info → skypilot_nightly-1.0.0.dev20251027.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|