skypilot-nightly 1.0.0.dev20250611__py3-none-any.whl → 1.0.0.dev20250613__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.
- sky/__init__.py +2 -2
- sky/adaptors/kubernetes.py +3 -2
- sky/backends/backend_utils.py +8 -2
- sky/benchmark/benchmark_state.py +2 -1
- sky/catalog/data_fetchers/fetch_aws.py +1 -1
- sky/catalog/data_fetchers/fetch_vast.py +1 -1
- sky/check.py +43 -3
- sky/cli.py +1 -1
- sky/client/cli.py +1 -1
- sky/clouds/cloud.py +1 -1
- sky/clouds/gcp.py +1 -1
- sky/clouds/kubernetes.py +9 -3
- sky/clouds/ssh.py +7 -3
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/{webpack-208a9812ab4f61c9.js → webpack-5c3e6471d04780c6.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.html +1 -1
- sky/dashboard/out/users.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/data/storage.py +2 -2
- sky/global_user_state.py +38 -0
- sky/jobs/server/core.py +1 -68
- sky/jobs/state.py +43 -44
- sky/provision/common.py +1 -1
- sky/provision/gcp/config.py +1 -1
- sky/provision/kubernetes/instance.py +2 -1
- sky/provision/kubernetes/utils.py +60 -13
- sky/resources.py +2 -2
- sky/serve/serve_state.py +81 -15
- sky/server/requests/preconditions.py +1 -1
- sky/server/requests/requests.py +11 -6
- sky/skylet/configs.py +26 -19
- sky/skylet/job_lib.py +3 -5
- sky/task.py +1 -1
- sky/templates/jobs-controller.yaml.j2 +0 -23
- sky/templates/kubernetes-ray.yml.j2 +1 -1
- sky/utils/common_utils.py +6 -0
- sky/utils/context.py +1 -1
- sky/utils/controller_utils.py +10 -0
- sky/utils/infra_utils.py +1 -1
- sky/utils/kubernetes/generate_kubeconfig.sh +1 -1
- {skypilot_nightly-1.0.0.dev20250611.dist-info → skypilot_nightly-1.0.0.dev20250613.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250611.dist-info → skypilot_nightly-1.0.0.dev20250613.dist-info}/RECORD +58 -62
- sky/jobs/dashboard/dashboard.py +0 -223
- sky/jobs/dashboard/static/favicon.ico +0 -0
- sky/jobs/dashboard/templates/index.html +0 -831
- sky/jobs/server/dashboard_utils.py +0 -69
- /sky/dashboard/out/_next/static/{zJqasksBQ3HcqMpA2wTUZ → UdgJCk2sZFLJgFJW_qiWG}/_buildManifest.js +0 -0
- /sky/dashboard/out/_next/static/{zJqasksBQ3HcqMpA2wTUZ → UdgJCk2sZFLJgFJW_qiWG}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611.dist-info → skypilot_nightly-1.0.0.dev20250613.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250611.dist-info → skypilot_nightly-1.0.0.dev20250613.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250611.dist-info → skypilot_nightly-1.0.0.dev20250613.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250611.dist-info → skypilot_nightly-1.0.0.dev20250613.dist-info}/top_level.txt +0 -0
sky/__init__.py
CHANGED
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = '4dfa63417c4dc57a5a9fc52c9936a8dd52194d8e'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250613'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
sky/adaptors/kubernetes.py
CHANGED
@@ -93,12 +93,13 @@ def _load_config(context: Optional[str] = None):
|
|
93
93
|
context_name = '(current-context)' if context is None else context
|
94
94
|
is_ssh_node_pool = False
|
95
95
|
if context_name.startswith('ssh-'):
|
96
|
-
context_name =
|
96
|
+
context_name = common_utils.removeprefix(context_name, 'ssh-')
|
97
97
|
is_ssh_node_pool = True
|
98
98
|
# Check if exception was due to no current-context
|
99
99
|
if 'Expected key current-context' in str(e):
|
100
100
|
if is_ssh_node_pool:
|
101
|
-
context_name =
|
101
|
+
context_name = common_utils.removeprefix(
|
102
|
+
context_name, 'ssh-')
|
102
103
|
err_str = ('Failed to load SSH Node Pool configuration for '
|
103
104
|
f'{context_name!r}.\n'
|
104
105
|
' Run `sky ssh up --infra {context_name}` to '
|
sky/backends/backend_utils.py
CHANGED
@@ -126,7 +126,7 @@ _ENDPOINTS_RETRY_MESSAGE = ('If the cluster was recently started, '
|
|
126
126
|
'please retry after a while.')
|
127
127
|
|
128
128
|
# If a cluster is less than LAUNCH_DOUBLE_CHECK_WINDOW seconds old, and we don't
|
129
|
-
# see any instances in the cloud, the instances might be in the
|
129
|
+
# see any instances in the cloud, the instances might be in the process of
|
130
130
|
# being created. We will wait LAUNCH_DOUBLE_CHECK_DELAY seconds and then double
|
131
131
|
# check to make sure there are still no instances. LAUNCH_DOUBLE_CHECK_DELAY
|
132
132
|
# should be set longer than the delay between (sending the create instance
|
@@ -341,7 +341,13 @@ def path_size_megabytes(path: str) -> int:
|
|
341
341
|
f'{git_exclude_filter} --dry-run {path!r}')
|
342
342
|
rsync_output = ''
|
343
343
|
try:
|
344
|
-
|
344
|
+
# rsync sometimes fails `--dry-run` for MacOS' rsync build, however this function is only used to display
|
345
|
+
# a warning message to the user if the size of a file/directory is too
|
346
|
+
# large, so we can safely ignore the error.
|
347
|
+
rsync_output = str(
|
348
|
+
subprocess.check_output(rsync_command,
|
349
|
+
shell=True,
|
350
|
+
stderr=subprocess.DEVNULL))
|
345
351
|
except subprocess.CalledProcessError:
|
346
352
|
logger.debug('Command failed, proceeding without estimating size: '
|
347
353
|
f'{rsync_command}')
|
sky/benchmark/benchmark_state.py
CHANGED
@@ -17,7 +17,6 @@ _BENCHMARK_BUCKET_NAME_KEY = 'bucket_name'
|
|
17
17
|
_BENCHMARK_BUCKET_TYPE_KEY = 'bucket_type'
|
18
18
|
|
19
19
|
_BENCHMARK_DB_PATH = os.path.expanduser('~/.sky/benchmark.db')
|
20
|
-
os.makedirs(pathlib.Path(_BENCHMARK_DB_PATH).parents[0], exist_ok=True)
|
21
20
|
|
22
21
|
|
23
22
|
class _BenchmarkSQLiteConn(threading.local):
|
@@ -80,6 +79,8 @@ def _init_db(func):
|
|
80
79
|
return func(*args, **kwargs)
|
81
80
|
with _benchmark_db_init_lock:
|
82
81
|
if not _BENCHMARK_DB:
|
82
|
+
os.makedirs(pathlib.Path(_BENCHMARK_DB_PATH).parents[0],
|
83
|
+
exist_ok=True)
|
83
84
|
_BENCHMARK_DB = _BenchmarkSQLiteConn()
|
84
85
|
return func(*args, **kwargs)
|
85
86
|
|
@@ -277,7 +277,7 @@ def _get_instance_types_df(region: str) -> Union[str, 'pd.DataFrame']:
|
|
277
277
|
try:
|
278
278
|
return float(row['VCpuInfo']['DefaultVCpus'])
|
279
279
|
except Exception as e: # pylint: disable=broad-except
|
280
|
-
print('Error
|
280
|
+
print('Error occurred for row:', row)
|
281
281
|
print('Error:', e)
|
282
282
|
raise
|
283
283
|
|
sky/check.py
CHANGED
@@ -11,10 +11,12 @@ import colorama
|
|
11
11
|
from sky import clouds as sky_clouds
|
12
12
|
from sky import exceptions
|
13
13
|
from sky import global_user_state
|
14
|
+
from sky import sky_logging
|
14
15
|
from sky import skypilot_config
|
15
16
|
from sky.adaptors import cloudflare
|
16
17
|
from sky.clouds import cloud as sky_cloud
|
17
18
|
from sky.skylet import constants
|
19
|
+
from sky.utils import common_utils
|
18
20
|
from sky.utils import registry
|
19
21
|
from sky.utils import rich_utils
|
20
22
|
from sky.utils import subprocess_utils
|
@@ -23,6 +25,30 @@ from sky.utils import ux_utils
|
|
23
25
|
CHECK_MARK_EMOJI = '\U00002714' # Heavy check mark unicode
|
24
26
|
PARTY_POPPER_EMOJI = '\U0001F389' # Party popper unicode
|
25
27
|
|
28
|
+
logger = sky_logging.init_logger(__name__)
|
29
|
+
|
30
|
+
|
31
|
+
def _get_workspace_allowed_clouds(workspace: str) -> List[str]:
|
32
|
+
# Use allowed_clouds from config if it exists, otherwise check all
|
33
|
+
# clouds. Also validate names with get_cloud_tuple.
|
34
|
+
config_allowed_cloud_names = skypilot_config.get_nested(
|
35
|
+
('allowed_clouds',),
|
36
|
+
[repr(c) for c in registry.CLOUD_REGISTRY.values()] + [cloudflare.NAME])
|
37
|
+
# filter out the clouds that are disabled in the workspace config
|
38
|
+
workspace_disabled_clouds = []
|
39
|
+
for cloud in config_allowed_cloud_names:
|
40
|
+
cloud_config = skypilot_config.get_workspace_cloud(cloud.lower(),
|
41
|
+
workspace=workspace)
|
42
|
+
cloud_disabled = cloud_config.get('disabled', False)
|
43
|
+
if cloud_disabled:
|
44
|
+
workspace_disabled_clouds.append(cloud.lower())
|
45
|
+
|
46
|
+
config_allowed_cloud_names = [
|
47
|
+
c for c in config_allowed_cloud_names
|
48
|
+
if c.lower() not in workspace_disabled_clouds
|
49
|
+
]
|
50
|
+
return config_allowed_cloud_names
|
51
|
+
|
26
52
|
|
27
53
|
def check_capabilities(
|
28
54
|
quiet: bool = False,
|
@@ -132,6 +158,8 @@ def check_capabilities(
|
|
132
158
|
c for c in config_allowed_cloud_names
|
133
159
|
if c not in workspace_disabled_clouds
|
134
160
|
]
|
161
|
+
global_user_state.set_allowed_clouds(
|
162
|
+
[c for c in config_allowed_cloud_names], current_workspace_name)
|
135
163
|
|
136
164
|
# Use disallowed_cloud_names for logging the clouds that will be
|
137
165
|
# disabled because they are not included in allowed_clouds in
|
@@ -341,11 +369,22 @@ def get_cached_enabled_clouds_or_refresh(
|
|
341
369
|
raise_if_no_cloud_access is set to True.
|
342
370
|
"""
|
343
371
|
active_workspace = skypilot_config.get_active_workspace()
|
372
|
+
allowed_clouds_changed = False
|
373
|
+
cached_allowed_clouds = global_user_state.get_allowed_clouds(
|
374
|
+
active_workspace)
|
375
|
+
skypilot_config_allowed_clouds = _get_workspace_allowed_clouds(
|
376
|
+
active_workspace)
|
377
|
+
if sorted(cached_allowed_clouds) != sorted(skypilot_config_allowed_clouds):
|
378
|
+
allowed_clouds_changed = True
|
379
|
+
|
344
380
|
cached_enabled_clouds = global_user_state.get_cached_enabled_clouds(
|
345
381
|
capability, active_workspace)
|
346
|
-
if not cached_enabled_clouds:
|
382
|
+
if not cached_enabled_clouds or allowed_clouds_changed:
|
347
383
|
try:
|
348
384
|
check_capability(capability, quiet=True, workspace=active_workspace)
|
385
|
+
if allowed_clouds_changed:
|
386
|
+
global_user_state.set_allowed_clouds(
|
387
|
+
skypilot_config_allowed_clouds, active_workspace)
|
349
388
|
except SystemExit:
|
350
389
|
# If no cloud is enabled, check() will raise SystemExit.
|
351
390
|
# Here we catch it and raise the exception later only if
|
@@ -382,7 +421,8 @@ def get_cloud_credential_file_mounts(
|
|
382
421
|
cloud_file_mounts = cloud.get_credential_file_mounts()
|
383
422
|
for remote_path, local_path in cloud_file_mounts.items():
|
384
423
|
if os.path.exists(os.path.expanduser(local_path)):
|
385
|
-
file_mounts[remote_path] =
|
424
|
+
file_mounts[remote_path] = os.path.realpath(
|
425
|
+
os.path.expanduser(local_path))
|
386
426
|
# Currently, get_cached_enabled_clouds_or_refresh() does not support r2 as
|
387
427
|
# only clouds with computing instances are marked as enabled by skypilot.
|
388
428
|
# This will be removed when cloudflare/r2 is added as a 'cloud'.
|
@@ -522,7 +562,7 @@ def _format_context_details(cloud: Union[str, sky_clouds.Cloud],
|
|
522
562
|
# TODO: This is a hack to remove the 'ssh-' prefix from the
|
523
563
|
# context name. Once we have a separate kubeconfig for SSH,
|
524
564
|
# this will not be required.
|
525
|
-
cleaned_context =
|
565
|
+
cleaned_context = common_utils.removeprefix(context, 'ssh-')
|
526
566
|
else:
|
527
567
|
cleaned_context = context
|
528
568
|
symbol = (ux_utils.INDENT_LAST_SYMBOL if i == len(filtered_contexts) -
|
sky/cli.py
CHANGED
sky/client/cli.py
CHANGED
sky/clouds/cloud.py
CHANGED
@@ -631,7 +631,7 @@ class Cloud:
|
|
631
631
|
|
632
632
|
def need_cleanup_after_preemption_or_failure(
|
633
633
|
self, resources: 'resources_lib.Resources') -> bool:
|
634
|
-
"""Whether a resource needs cleanup after
|
634
|
+
"""Whether a resource needs cleanup after preemption or failure.
|
635
635
|
|
636
636
|
In most cases, spot resources do not need cleanup after preemption,
|
637
637
|
as long as the cluster can be relaunched with the same name and tag,
|
sky/clouds/gcp.py
CHANGED
@@ -1062,7 +1062,7 @@ class GCP(clouds.Cloud):
|
|
1062
1062
|
|
1063
1063
|
def need_cleanup_after_preemption_or_failure(
|
1064
1064
|
self, resources: 'resources.Resources') -> bool:
|
1065
|
-
"""Whether a resource needs cleanup after
|
1065
|
+
"""Whether a resource needs cleanup after preemption or failure."""
|
1066
1066
|
# Spot TPU VMs require manual cleanup after preemption.
|
1067
1067
|
# "If your Cloud TPU is preempted,
|
1068
1068
|
# you must delete it and create a new one ..."
|
sky/clouds/kubernetes.py
CHANGED
@@ -17,6 +17,8 @@ from sky.adaptors import kubernetes
|
|
17
17
|
from sky.provision import instance_setup
|
18
18
|
from sky.provision.kubernetes import network_utils
|
19
19
|
from sky.provision.kubernetes import utils as kubernetes_utils
|
20
|
+
from sky.provision.kubernetes.utils import is_tpu_on_gke
|
21
|
+
from sky.provision.kubernetes.utils import normalize_tpu_accelerator_name
|
20
22
|
from sky.skylet import constants
|
21
23
|
from sky.utils import annotations
|
22
24
|
from sky.utils import common_utils
|
@@ -440,8 +442,12 @@ class Kubernetes(clouds.Cloud):
|
|
440
442
|
cpus = k.cpus
|
441
443
|
mem = k.memory
|
442
444
|
# Optionally populate accelerator information.
|
443
|
-
|
444
|
-
|
445
|
+
acc_type = k.accelerator_type
|
446
|
+
acc_count = k.accelerator_count
|
447
|
+
if acc_type is not None and is_tpu_on_gke(acc_type):
|
448
|
+
acc_type, acc_count = normalize_tpu_accelerator_name(acc_type)
|
449
|
+
else:
|
450
|
+
acc_count = acc_count or 0
|
445
451
|
|
446
452
|
def _get_image_id(resources: 'resources_lib.Resources') -> str:
|
447
453
|
image_id_dict = resources.image_id
|
@@ -772,7 +778,7 @@ class Kubernetes(clouds.Cloud):
|
|
772
778
|
"""Checks if the user has access credentials to
|
773
779
|
Kubernetes."""
|
774
780
|
# Check for port forward dependencies
|
775
|
-
logger.
|
781
|
+
logger.debug(f'Checking compute credentials for {cls.canonical_name()}')
|
776
782
|
reasons = kubernetes_utils.check_port_forward_mode_dependencies(False)
|
777
783
|
if reasons is not None:
|
778
784
|
formatted = '\n'.join(
|
sky/clouds/ssh.py
CHANGED
@@ -12,6 +12,7 @@ from sky.adaptors import kubernetes as kubernetes_adaptor
|
|
12
12
|
from sky.clouds import kubernetes
|
13
13
|
from sky.provision.kubernetes import utils as kubernetes_utils
|
14
14
|
from sky.utils import annotations
|
15
|
+
from sky.utils import common_utils
|
15
16
|
from sky.utils import registry
|
16
17
|
|
17
18
|
if typing.TYPE_CHECKING:
|
@@ -88,8 +89,10 @@ class SSH(kubernetes.Kubernetes):
|
|
88
89
|
all_contexts = self.existing_allowed_contexts()
|
89
90
|
|
90
91
|
if region is not None and region not in all_contexts:
|
91
|
-
region_name =
|
92
|
-
available_contexts = [
|
92
|
+
region_name = common_utils.removeprefix(region, 'ssh-')
|
93
|
+
available_contexts = [
|
94
|
+
common_utils.removeprefix(c, 'ssh-') for c in all_contexts
|
95
|
+
]
|
93
96
|
err_str = (f'SSH Node Pool {region_name!r} is not set up. '
|
94
97
|
'Run `sky check` for more details. ')
|
95
98
|
if available_contexts:
|
@@ -155,7 +158,8 @@ class SSH(kubernetes.Kubernetes):
|
|
155
158
|
if allowed_node_pools is None:
|
156
159
|
return ctxs
|
157
160
|
return [
|
158
|
-
ctx for ctx in ctxs
|
161
|
+
ctx for ctx in ctxs
|
162
|
+
if common_utils.removeprefix(ctx, 'ssh-') in allowed_node_pools
|
159
163
|
]
|
160
164
|
|
161
165
|
if all_node_pool_contexts:
|
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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_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":"UdgJCk2sZFLJgFJW_qiWG","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/_next/static/chunks/{webpack-208a9812ab4f61c9.js → webpack-5c3e6471d04780c6.js}
RENAMED
@@ -1 +1 @@
|
|
1
|
-
!function(){"use strict";var e,t,n,r,c,o,u,a,i,f={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{f[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=f,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],a=!0,i=0;i<n.length;i++)u>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(a=!1,c<u&&(u=c));if(a){e.splice(o--,1);var f=r();void 0!==f&&(t=f)}}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 350===e?"static/chunks/350.9e123a4551f68b0d.js":491===e?"static/chunks/491.b3d264269613fe09.js":937===e?"static/chunks/937.3759f538f11a0953.js":42===e?"static/chunks/42.d39e24467181b06b.js":682===e?"static/chunks/682.4dd5dc116f740b5f.js":211===e?"static/chunks/211.692afc57e812ae1a.js":
|
1
|
+
!function(){"use strict";var e,t,n,r,c,o,u,a,i,f={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{f[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=f,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],a=!0,i=0;i<n.length;i++)u>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(a=!1,c<u&&(u=c));if(a){e.splice(o--,1);var f=r();void 0!==f&&(t=f)}}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 350===e?"static/chunks/350.9e123a4551f68b0d.js":491===e?"static/chunks/491.b3d264269613fe09.js":937===e?"static/chunks/937.3759f538f11a0953.js":42===e?"static/chunks/42.d39e24467181b06b.js":682===e?"static/chunks/682.4dd5dc116f740b5f.js":211===e?"static/chunks/211.692afc57e812ae1a.js":513===e?"static/chunks/513.211357a2914a34b2.js":600===e?"static/chunks/600.15a0009177e86b86.js":443===e?"static/chunks/443.b2242d0efcdf5f47.js":"static/chunks/"+e+"-"+({37:"d8aebf1683522a0b",470:"4d1a5dbe58a8a2b9",616:"d6128fa9e7cae6e6",664:"047bc03493fda379",760:"a89d354797ce7af5",798:"c0525dc3f21e488d",799:"3625946b2ec2eb30",804:"4c9fc53aa74bc191",843:"6fcc4bf91ac45b39",856:"0776dc6ed6000c39",901:"b424d293275e1fd7",938:"ab185187a63f9cdb",947:"6620842ef80ae879",969:"20d54a9d998dc102",973:"c807fc34f09c7df3"})[e]+".js"},d.miniCssF=function(e){},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,a,i=document.getElementsByTagName("script"),f=0;f<i.length;f++){var s=i[f];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){u=s;break}}u||(a=!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 l=function(t,n){u.onerror=u.onload=null,clearTimeout(b);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)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=l.bind(null,u.onerror),u.onload=l.bind(null,u.onload),a&&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={272: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(272!=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]},a=function(e,t){var n,r,c=t[0],o=t[1],a=t[2],i=0;if(c.some(function(e){return 0!==u[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(a)var f=a(d)}for(e&&e(t);i<c.length;i++)r=c[i],d.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return d.O(f)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),i.push=a.bind(null,i.push.bind(i)),d.nc=void 0}();
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-89216c616dbaa9c5.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_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":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-0776dc6ed6000c39.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-c807fc34f09c7df3.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-ab185187a63f9cdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d8aebf1683522a0b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-451a14e7e755ebbc.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-e56b17fd85d0ba58.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-497a35a7ed49734a.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-6b0d9e5031b70c58.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-d2910be98e9227cb.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-780860bcc1103945.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-b3dbf38b51cb29be.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-fe233baf3d073491.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-c69ffcab9d6e5269.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-0776dc6ed6000c39.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-c807fc34f09c7df3.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-ab185187a63f9cdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/843-6fcc4bf91ac45b39.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-c8c2191328532b7d.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-5c3e6471d04780c6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-82e6601baa5dd280.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/UdgJCk2sZFLJgFJW_qiWG/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"UdgJCk2sZFLJgFJW_qiWG","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/data/storage.py
CHANGED
@@ -3257,7 +3257,7 @@ class AzureBlobStore(AbstractStore):
|
|
3257
3257
|
with rich_utils.safe_status(
|
3258
3258
|
ux_utils.spinner_message(
|
3259
3259
|
f'Deleting Azure container {container_name}')):
|
3260
|
-
# Check for the
|
3260
|
+
# Check for the existence of the container before deletion.
|
3261
3261
|
self.storage_client.blob_containers.get(
|
3262
3262
|
self.resource_group_name,
|
3263
3263
|
self.storage_account_name,
|
@@ -3734,7 +3734,7 @@ class R2Store(AbstractStore):
|
|
3734
3734
|
Raises:
|
3735
3735
|
StorageBucketDeleteError: If deleting the bucket fails.
|
3736
3736
|
"""
|
3737
|
-
# Deleting objects is very slow
|
3737
|
+
# Deleting objects is very slow programmatically
|
3738
3738
|
# (i.e. bucket.objects.all().delete() is slow).
|
3739
3739
|
# In addition, standard delete operations (i.e. via `aws s3 rm`)
|
3740
3740
|
# are slow, since AWS puts deletion markers.
|