skypilot-nightly 1.0.0.dev20241108__py3-none-any.whl → 1.0.0.dev20241110__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/backends/cloud_vm_ray_backend.py +6 -21
- sky/backends/wheel_utils.py +5 -1
- sky/cli.py +25 -1
- sky/clouds/oci.py +11 -21
- sky/clouds/service_catalog/oci_catalog.py +1 -1
- sky/clouds/utils/oci_utils.py +16 -2
- sky/core.py +3 -2
- sky/dag.py +20 -15
- sky/data/mounting_utils.py +4 -16
- sky/exceptions.py +4 -1
- sky/execution.py +10 -8
- sky/jobs/core.py +3 -1
- sky/provision/__init__.py +1 -0
- sky/provision/aws/config.py +25 -5
- sky/provision/oci/__init__.py +15 -0
- sky/provision/oci/config.py +51 -0
- sky/provision/oci/instance.py +430 -0
- sky/{skylet/providers/oci/query_helper.py → provision/oci/query_utils.py} +148 -59
- sky/serve/core.py +11 -1
- sky/setup_files/MANIFEST.in +0 -1
- sky/skylet/constants.py +1 -1
- sky/skylet/job_lib.py +39 -20
- sky/skylet/log_lib.py +77 -8
- sky/templates/kubernetes-ray.yml.j2 +3 -1
- sky/templates/oci-ray.yml.j2 +3 -53
- sky/utils/admin_policy_utils.py +1 -0
- sky/utils/command_runner.py +14 -2
- sky/utils/control_master_utils.py +49 -0
- {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/RECORD +35 -34
- sky/skylet/providers/oci/__init__.py +0 -2
- sky/skylet/providers/oci/node_provider.py +0 -488
- sky/skylet/providers/oci/utils.py +0 -21
- {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/top_level.txt +0 -0
sky/skylet/log_lib.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
This is a remote utility module that provides logging functionality.
|
4
4
|
"""
|
5
|
+
import collections
|
5
6
|
import copy
|
6
7
|
import io
|
7
8
|
import multiprocessing.pool
|
@@ -12,7 +13,8 @@ import sys
|
|
12
13
|
import tempfile
|
13
14
|
import textwrap
|
14
15
|
import time
|
15
|
-
from typing import Dict, Iterator, List, Optional,
|
16
|
+
from typing import (Deque, Dict, Iterable, Iterator, List, Optional, TextIO,
|
17
|
+
Tuple, Union)
|
16
18
|
|
17
19
|
import colorama
|
18
20
|
|
@@ -26,6 +28,9 @@ from sky.utils import ux_utils
|
|
26
28
|
_SKY_LOG_WAITING_GAP_SECONDS = 1
|
27
29
|
_SKY_LOG_WAITING_MAX_RETRY = 5
|
28
30
|
_SKY_LOG_TAILING_GAP_SECONDS = 0.2
|
31
|
+
# Peek the head of the lines to check if we need to start
|
32
|
+
# streaming when tail > 0.
|
33
|
+
PEEK_HEAD_LINES_FOR_START_STREAM = 20
|
29
34
|
|
30
35
|
logger = sky_logging.init_logger(__name__)
|
31
36
|
|
@@ -330,6 +335,7 @@ def run_bash_command_with_log(bash_command: str,
|
|
330
335
|
|
331
336
|
def _follow_job_logs(file,
|
332
337
|
job_id: int,
|
338
|
+
start_streaming: bool,
|
333
339
|
start_streaming_at: str = '') -> Iterator[str]:
|
334
340
|
"""Yield each line from a file as they are written.
|
335
341
|
|
@@ -338,7 +344,6 @@ def _follow_job_logs(file,
|
|
338
344
|
# No need to lock the status here, as the while loop can handle
|
339
345
|
# the older status.
|
340
346
|
status = job_lib.get_status_no_lock(job_id)
|
341
|
-
start_streaming = False
|
342
347
|
wait_last_logs = True
|
343
348
|
while True:
|
344
349
|
tmp = file.readline()
|
@@ -378,10 +383,45 @@ def _follow_job_logs(file,
|
|
378
383
|
status = job_lib.get_status_no_lock(job_id)
|
379
384
|
|
380
385
|
|
386
|
+
def _peek_head_lines(log_file: TextIO) -> List[str]:
|
387
|
+
"""Peek the head of the file."""
|
388
|
+
lines = [
|
389
|
+
log_file.readline() for _ in range(PEEK_HEAD_LINES_FOR_START_STREAM)
|
390
|
+
]
|
391
|
+
# Reset the file pointer to the beginning
|
392
|
+
log_file.seek(0, os.SEEK_SET)
|
393
|
+
return [line for line in lines if line]
|
394
|
+
|
395
|
+
|
396
|
+
def _should_stream_the_whole_tail_lines(head_lines_of_log_file: List[str],
|
397
|
+
tail_lines: Deque[str],
|
398
|
+
start_stream_at: str) -> bool:
|
399
|
+
"""Check if the entire tail lines should be streamed."""
|
400
|
+
# See comment:
|
401
|
+
# https://github.com/skypilot-org/skypilot/pull/4241#discussion_r1833611567
|
402
|
+
# for more details.
|
403
|
+
# Case 1: If start_stream_at is found at the head of the tail lines,
|
404
|
+
# we should not stream the whole tail lines.
|
405
|
+
for index, line in enumerate(tail_lines):
|
406
|
+
if index >= PEEK_HEAD_LINES_FOR_START_STREAM:
|
407
|
+
break
|
408
|
+
if start_stream_at in line:
|
409
|
+
return False
|
410
|
+
# Case 2: If start_stream_at is found at the head of log file, but not at
|
411
|
+
# the tail lines, we need to stream the whole tail lines.
|
412
|
+
for line in head_lines_of_log_file:
|
413
|
+
if start_stream_at in line:
|
414
|
+
return True
|
415
|
+
# Case 3: If start_stream_at is not at the head, and not found at the tail
|
416
|
+
# lines, we should not stream the whole tail lines.
|
417
|
+
return False
|
418
|
+
|
419
|
+
|
381
420
|
def tail_logs(job_id: Optional[int],
|
382
421
|
log_dir: Optional[str],
|
383
422
|
managed_job_id: Optional[int] = None,
|
384
|
-
follow: bool = True
|
423
|
+
follow: bool = True,
|
424
|
+
tail: int = 0) -> None:
|
385
425
|
"""Tail the logs of a job.
|
386
426
|
|
387
427
|
Args:
|
@@ -390,6 +430,8 @@ def tail_logs(job_id: Optional[int],
|
|
390
430
|
managed_job_id: The managed job id (for logging info only to avoid
|
391
431
|
confusion).
|
392
432
|
follow: Whether to follow the logs or print the logs so far and exit.
|
433
|
+
tail: The number of lines to display from the end of the log file,
|
434
|
+
if 0, print all lines.
|
393
435
|
"""
|
394
436
|
if job_id is None:
|
395
437
|
# This only happens when job_lib.get_latest_job_id() returns None,
|
@@ -430,6 +472,8 @@ def tail_logs(job_id: Optional[int],
|
|
430
472
|
status = job_lib.update_job_status([job_id], silent=True)[0]
|
431
473
|
|
432
474
|
start_stream_at = 'Waiting for task resources on '
|
475
|
+
# Explicitly declare the type to avoid mypy warning.
|
476
|
+
lines: Iterable[str] = []
|
433
477
|
if follow and status in [
|
434
478
|
job_lib.JobStatus.SETTING_UP,
|
435
479
|
job_lib.JobStatus.PENDING,
|
@@ -440,18 +484,43 @@ def tail_logs(job_id: Optional[int],
|
|
440
484
|
with open(log_path, 'r', newline='', encoding='utf-8') as log_file:
|
441
485
|
# Using `_follow` instead of `tail -f` to streaming the whole
|
442
486
|
# log and creating a new process for tail.
|
487
|
+
start_streaming = False
|
488
|
+
if tail > 0:
|
489
|
+
head_lines_of_log_file = _peek_head_lines(log_file)
|
490
|
+
lines = collections.deque(log_file, maxlen=tail)
|
491
|
+
start_streaming = _should_stream_the_whole_tail_lines(
|
492
|
+
head_lines_of_log_file, lines, start_stream_at)
|
493
|
+
for line in lines:
|
494
|
+
if start_stream_at in line:
|
495
|
+
start_streaming = True
|
496
|
+
if start_streaming:
|
497
|
+
print(line, end='')
|
498
|
+
# Flush the last n lines
|
499
|
+
print(end='', flush=True)
|
500
|
+
# Now, the cursor is at the end of the last lines
|
501
|
+
# if tail > 0
|
443
502
|
for line in _follow_job_logs(log_file,
|
444
503
|
job_id=job_id,
|
504
|
+
start_streaming=start_streaming,
|
445
505
|
start_streaming_at=start_stream_at):
|
446
506
|
print(line, end='', flush=True)
|
447
507
|
else:
|
448
508
|
try:
|
449
|
-
|
450
|
-
with open(log_path, 'r', encoding='utf-8') as
|
451
|
-
|
509
|
+
start_streaming = False
|
510
|
+
with open(log_path, 'r', encoding='utf-8') as log_file:
|
511
|
+
if tail > 0:
|
512
|
+
# If tail > 0, we need to read the last n lines.
|
513
|
+
# We use double ended queue to rotate the last n lines.
|
514
|
+
head_lines_of_log_file = _peek_head_lines(log_file)
|
515
|
+
lines = collections.deque(log_file, maxlen=tail)
|
516
|
+
start_streaming = _should_stream_the_whole_tail_lines(
|
517
|
+
head_lines_of_log_file, lines, start_stream_at)
|
518
|
+
else:
|
519
|
+
lines = log_file
|
520
|
+
for line in lines:
|
452
521
|
if start_stream_at in line:
|
453
|
-
|
454
|
-
if
|
522
|
+
start_streaming = True
|
523
|
+
if start_streaming:
|
455
524
|
print(line, end='', flush=True)
|
456
525
|
except FileNotFoundError:
|
457
526
|
print(f'{colorama.Fore.RED}ERROR: Logs for job {job_id} (status:'
|
@@ -324,6 +324,8 @@ available_node_types:
|
|
324
324
|
command: ["/bin/bash", "-c", "--"]
|
325
325
|
args:
|
326
326
|
- |
|
327
|
+
function mylsof { p=$(for pid in /proc/{0..9}*; do i=$(basename "$pid"); for file in "$pid"/fd/*; do link=$(readlink -e "$file"); if [ "$link" = "$1" ]; then echo "$i"; fi; done; done); echo "$p"; };
|
328
|
+
|
327
329
|
# Tails file and checks every 5 sec for
|
328
330
|
# open file handlers with write access
|
329
331
|
# closes if none exist
|
@@ -333,7 +335,7 @@ available_node_types:
|
|
333
335
|
while kill -0 $TAIL_PID 2> /dev/null; do
|
334
336
|
# only two PIDs should be accessing the file
|
335
337
|
# the log appender and log tailer
|
336
|
-
if [ $(
|
338
|
+
if [ $(mylsof $file | wc -l) -lt 2 ]; then
|
337
339
|
kill $TAIL_PID
|
338
340
|
break
|
339
341
|
fi
|
sky/templates/oci-ray.yml.j2
CHANGED
@@ -7,7 +7,7 @@ idle_timeout_minutes: 60
|
|
7
7
|
|
8
8
|
provider:
|
9
9
|
type: external
|
10
|
-
module: sky.
|
10
|
+
module: sky.provision.oci
|
11
11
|
region: {{region}}
|
12
12
|
cache_stopped_nodes: True
|
13
13
|
# Disable launch config check for worker nodes as it can cause resource leakage.
|
@@ -39,25 +39,6 @@ available_node_types:
|
|
39
39
|
Preemptible: {{use_spot}}
|
40
40
|
AuthorizedKey: |
|
41
41
|
skypilot:ssh_public_key_content
|
42
|
-
{% if num_nodes > 1 %}
|
43
|
-
ray_worker_default:
|
44
|
-
min_workers: {{num_nodes - 1}}
|
45
|
-
max_workers: {{num_nodes - 1}}
|
46
|
-
resources: {}
|
47
|
-
node_config:
|
48
|
-
InstanceType: {{instance_type}}
|
49
|
-
VCPUs: {{cpus}}
|
50
|
-
MemoryInGbs: {{memory}}
|
51
|
-
BootVolumeSize: {{disk_size}}
|
52
|
-
BootVolumePerf: {{vpu}}
|
53
|
-
AvailabilityDomain: {{zone}}
|
54
|
-
ImageId: {{image}}
|
55
|
-
AppCatalogListingId: {{app_catalog_listing_id}}
|
56
|
-
ResourceVersion: {{resource_version}}
|
57
|
-
Preemptible: {{use_spot}}
|
58
|
-
AuthorizedKey: |
|
59
|
-
skypilot:ssh_public_key_content
|
60
|
-
{%- endif %}
|
61
42
|
|
62
43
|
head_node_type: ray_head_default
|
63
44
|
|
@@ -70,9 +51,6 @@ file_mounts: {
|
|
70
51
|
{%- endfor %}
|
71
52
|
}
|
72
53
|
|
73
|
-
rsync_exclude: []
|
74
|
-
|
75
|
-
initialization_commands: []
|
76
54
|
|
77
55
|
# List of shell commands to run to set up nodes.
|
78
56
|
# NOTE: these are very performance-sensitive. Each new item opens/closes an SSH
|
@@ -113,34 +91,6 @@ setup_commands:
|
|
113
91
|
[ -f /etc/fuse.conf ] && sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf || (sudo sh -c 'echo "user_allow_other" > /etc/fuse.conf');
|
114
92
|
sudo iptables -I INPUT -i ens3 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT;
|
115
93
|
|
116
|
-
# Command to start ray
|
117
|
-
#
|
118
|
-
# connection, which is expensive. Try your best to co-locate commands into fewer
|
119
|
-
# items! The same comment applies for worker_start_ray_commands.
|
120
|
-
#
|
121
|
-
# Increment the following for catching performance bugs easier:
|
122
|
-
# current num items (num SSH connections): 2
|
123
|
-
head_start_ray_commands:
|
124
|
-
# NOTE: --disable-usage-stats in `ray start` saves 10 seconds of idle wait.
|
125
|
-
# Line "which prlimit ..": increase the limit of the number of open files for the raylet process, as the `ulimit` may not take effect at this point, because it requires
|
126
|
-
# all the sessions to be reloaded. This is a workaround.
|
127
|
-
- {{ sky_activate_python_env }}; {{ sky_ray_cmd }} stop; RAY_SCHEDULER_EVENTS=0 RAY_DEDUP_LOGS=0 {{ sky_ray_cmd }} start --disable-usage-stats --head --port={{ray_port}} --dashboard-port={{ray_dashboard_port}} --object-manager-port=8076 --autoscaling-config=~/ray_bootstrap_config.yaml {{"--resources='%s'" % custom_resources if custom_resources}} --temp-dir {{ray_temp_dir}} || exit 1;
|
128
|
-
which prlimit && for id in $(pgrep -f raylet/raylet); do sudo prlimit --nofile=1048576:1048576 --pid=$id || true; done;
|
129
|
-
{{dump_port_command}}; {{ray_head_wait_initialized_command}}
|
130
|
-
|
131
|
-
{%- if num_nodes > 1 %}
|
132
|
-
worker_start_ray_commands:
|
133
|
-
- {{ sky_activate_python_env }}; {{ sky_ray_cmd }} stop; RAY_SCHEDULER_EVENTS=0 RAY_DEDUP_LOGS=0 {{ sky_ray_cmd }} start --disable-usage-stats --address=$RAY_HEAD_IP:{{ray_port}} --object-manager-port=8076 {{"--resources='%s'" % custom_resources if custom_resources}} --temp-dir {{ray_temp_dir}} || exit 1;
|
134
|
-
which prlimit && for id in $(pgrep -f raylet/raylet); do sudo prlimit --nofile=1048576:1048576 --pid=$id || true; done;
|
135
|
-
{%- else %}
|
136
|
-
worker_start_ray_commands: []
|
137
|
-
{%- endif %}
|
138
|
-
|
139
|
-
head_node: {}
|
140
|
-
worker_nodes: {}
|
94
|
+
# Command to start ray clusters are now placed in `sky.provision.instance_setup`.
|
95
|
+
# We do not need to list it here anymore.
|
141
96
|
|
142
|
-
# These fields are required for external cloud providers.
|
143
|
-
head_setup_commands: []
|
144
|
-
worker_setup_commands: []
|
145
|
-
cluster_synced_files: []
|
146
|
-
file_mounts_sync_continuously: False
|
sky/utils/admin_policy_utils.py
CHANGED
sky/utils/command_runner.py
CHANGED
@@ -11,6 +11,7 @@ from sky import sky_logging
|
|
11
11
|
from sky.skylet import constants
|
12
12
|
from sky.skylet import log_lib
|
13
13
|
from sky.utils import common_utils
|
14
|
+
from sky.utils import control_master_utils
|
14
15
|
from sky.utils import subprocess_utils
|
15
16
|
from sky.utils import timeline
|
16
17
|
|
@@ -104,13 +105,22 @@ def ssh_options_list(
|
|
104
105
|
}
|
105
106
|
# SSH Control will have a severe delay when using docker_ssh_proxy_command.
|
106
107
|
# TODO(tian): Investigate why.
|
108
|
+
#
|
109
|
+
# We disable ControlMaster when ssh_proxy_command is used, because the
|
110
|
+
# master connection will be idle although the connection might be shared
|
111
|
+
# by other ssh commands that is not idle. In that case, user's custom proxy
|
112
|
+
# command may drop the connection due to idle timeout, since it will only
|
113
|
+
# see the idle master connection. It is an issue even with the
|
114
|
+
# ServerAliveInterval set, since the keepalive message may not be recognized
|
115
|
+
# by the custom proxy command, such as AWS SSM Session Manager.
|
116
|
+
#
|
107
117
|
# We also do not use ControlMaster when we use `kubectl port-forward`
|
108
118
|
# to access Kubernetes pods over SSH+Proxycommand. This is because the
|
109
119
|
# process running ProxyCommand is kept running as long as the ssh session
|
110
120
|
# is running and the ControlMaster keeps the session, which results in
|
111
121
|
# 'ControlPersist' number of seconds delay per ssh commands ran.
|
112
122
|
if (ssh_control_name is not None and docker_ssh_proxy_command is None and
|
113
|
-
not disable_control_master):
|
123
|
+
ssh_proxy_command is None and not disable_control_master):
|
114
124
|
arg_dict.update({
|
115
125
|
# Control path: important optimization as we do multiple ssh in one
|
116
126
|
# sky.launch().
|
@@ -459,7 +469,9 @@ class SSHCommandRunner(CommandRunner):
|
|
459
469
|
None if ssh_control_name is None else hashlib.md5(
|
460
470
|
ssh_control_name.encode()).hexdigest()[:_HASH_MAX_LENGTH])
|
461
471
|
self._ssh_proxy_command = ssh_proxy_command
|
462
|
-
self.disable_control_master =
|
472
|
+
self.disable_control_master = (
|
473
|
+
disable_control_master or
|
474
|
+
control_master_utils.should_disable_control_master())
|
463
475
|
if docker_user is not None:
|
464
476
|
assert port is None or port == 22, (
|
465
477
|
f'port must be None or 22 for docker_user, got {port}.')
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"""Utils to check if the ssh control master should be disabled."""
|
2
|
+
|
3
|
+
import functools
|
4
|
+
|
5
|
+
from sky import sky_logging
|
6
|
+
from sky.utils import subprocess_utils
|
7
|
+
|
8
|
+
logger = sky_logging.init_logger(__name__)
|
9
|
+
|
10
|
+
|
11
|
+
def is_tmp_9p_filesystem() -> bool:
|
12
|
+
"""Check if the /tmp filesystem is 9p.
|
13
|
+
|
14
|
+
Returns:
|
15
|
+
bool: True if the /tmp filesystem is 9p, False otherwise.
|
16
|
+
"""
|
17
|
+
|
18
|
+
result = subprocess_utils.run(['df', '-T', '/tmp'],
|
19
|
+
capture_output=True,
|
20
|
+
text=True,
|
21
|
+
shell=None,
|
22
|
+
check=False,
|
23
|
+
executable=None)
|
24
|
+
|
25
|
+
if result.returncode != 0:
|
26
|
+
return False
|
27
|
+
|
28
|
+
filesystem_infos = result.stdout.strip().split('\n')
|
29
|
+
if len(filesystem_infos) < 2:
|
30
|
+
return False
|
31
|
+
filesystem_types = filesystem_infos[1].split()
|
32
|
+
if len(filesystem_types) < 2:
|
33
|
+
return False
|
34
|
+
return filesystem_types[1].lower() == '9p'
|
35
|
+
|
36
|
+
|
37
|
+
@functools.lru_cache
|
38
|
+
def should_disable_control_master() -> bool:
|
39
|
+
"""Whether disable ssh control master based on file system.
|
40
|
+
|
41
|
+
Returns:
|
42
|
+
bool: True if the ssh control master should be disabled,
|
43
|
+
False otherwise.
|
44
|
+
"""
|
45
|
+
if is_tmp_9p_filesystem():
|
46
|
+
return True
|
47
|
+
# there may be additional criteria to disable ssh control master
|
48
|
+
# in the future. They should be checked here
|
49
|
+
return False
|
{skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/RECORD
RENAMED
@@ -1,13 +1,13 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=j3vy9X4XOYIefQk15d_c6Q_mpDjII9Nltso4xgrFI1o,5882
|
2
2
|
sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
|
3
3
|
sky/authentication.py,sha256=pAdCT60OxxiXI9KXDyP2lQ9u9vMc6aMtq5Xi2h_hbdw,20984
|
4
4
|
sky/check.py,sha256=D3Y3saIFAYVvPxuBHnVgJEO0fUVDxgjwuMBaO-D778k,9472
|
5
|
-
sky/cli.py,sha256=
|
5
|
+
sky/cli.py,sha256=jEjXs5Z0u263eJIsTHoKyG9oOY6giqw19s2di9kEv1s,212088
|
6
6
|
sky/cloud_stores.py,sha256=RjFgmRhUh1Kk__f6g3KxzLp9s7dA0pFK4W1AukEuUaw,21153
|
7
|
-
sky/core.py,sha256=
|
8
|
-
sky/dag.py,sha256=
|
9
|
-
sky/exceptions.py,sha256=
|
10
|
-
sky/execution.py,sha256=
|
7
|
+
sky/core.py,sha256=0-4W_DKJZgbwXuzNZKQ2R_qJxqxbqqNfyi0U0PQBKvQ,38230
|
8
|
+
sky/dag.py,sha256=f3sJlkH4bE6Uuz3ozNtsMhcBpRx7KmC9Sa4seDKt4hU,3104
|
9
|
+
sky/exceptions.py,sha256=E3C2Ejcc8RUDAUQn7ar_Jr97C_AxD2rKKMmJOfLJ9d0,8965
|
10
|
+
sky/execution.py,sha256=TwcorzFxR_0m8uazPdeKltU3g3ikgUSqqzcSBrHp7K4,26070
|
11
11
|
sky/global_user_state.py,sha256=PywEmUutF97XBgRMClR6IS5_KM8JJC0oA1LsPUZebp0,28681
|
12
12
|
sky/optimizer.py,sha256=tXGrFpc6xNtKH34qjBAMd4jTuWcDZTPnGFwEtuCQFmk,59702
|
13
13
|
sky/resources.py,sha256=Zt8mCCmdvZ5ZCqY-l3KXlx_lkUesAopRtaEcEsrRFZo,68465
|
@@ -31,10 +31,10 @@ sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
|
|
31
31
|
sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
|
32
32
|
sky/backends/backend.py,sha256=wwfbrxPhjMPs6PSyy3tAHI8WJhl-xhgzWBsAZjmJJ6g,6249
|
33
33
|
sky/backends/backend_utils.py,sha256=2myfryj1zG9xxPaX6XYYJruxAOGNGbpsy2ckT4A77sE,121813
|
34
|
-
sky/backends/cloud_vm_ray_backend.py,sha256=
|
34
|
+
sky/backends/cloud_vm_ray_backend.py,sha256=cL-IDyk9AOmHTAiQbXVwEr4dX6KPx4M-GiVEXxUYPWQ,232147
|
35
35
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
36
36
|
sky/backends/local_docker_backend.py,sha256=0JL5m0YUgOmOL4aWEUe4tmt89dsxjk4_WXkPwgEKEis,16801
|
37
|
-
sky/backends/wheel_utils.py,sha256=
|
37
|
+
sky/backends/wheel_utils.py,sha256=CUVOwlBtQjOMv-RSDGx2jMQ0M1D0w9ZPm0TDafJwBDI,8180
|
38
38
|
sky/backends/monkey_patches/monkey_patch_ray_up.py,sha256=76-y2fCaE3JINj8lEwHT1eirYzCbpD8O1ySsysuGu8o,3450
|
39
39
|
sky/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
40
|
sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG2yg,8723
|
@@ -50,7 +50,7 @@ sky/clouds/gcp.py,sha256=BjCehW3s0IYkRDdEEDm0vYWXQDpOV8KU98OMVRPnQNg,54676
|
|
50
50
|
sky/clouds/ibm.py,sha256=w8bo1EIY_YWYNu0fy-OpAyr6DZviU0tpIXUsiV01rVE,21423
|
51
51
|
sky/clouds/kubernetes.py,sha256=tYjQFatOQmgtRzMt3J54CxM0w2ZPQwAo5SyyYkBcW9Y,28657
|
52
52
|
sky/clouds/lambda_cloud.py,sha256=ExL_uixdFrF9qSL5JYXpaOXCZ9_eOA2q444kcmBHBXQ,12644
|
53
|
-
sky/clouds/oci.py,sha256=
|
53
|
+
sky/clouds/oci.py,sha256=NOH-yYi1fbMkjqoz39zVXUEexE9MjE1c7YTvGtUgKzQ,26663
|
54
54
|
sky/clouds/paperspace.py,sha256=4cjNua6jpuxmfidvLY4tSRX1oj_QaaHDinPMunGplyU,10868
|
55
55
|
sky/clouds/runpod.py,sha256=_4myVdGIvQshkka8fn6mBXHgz5TZqhrNhAEM2_HrCT8,11487
|
56
56
|
sky/clouds/scp.py,sha256=NivPvzQxA90R37QR3fgTup8ScGfxKsXAhH0xklAj5QU,15817
|
@@ -67,7 +67,7 @@ sky/clouds/service_catalog/gcp_catalog.py,sha256=v_5fsB3dB9oD8U7lBKnCe5ii6AUWEOi
|
|
67
67
|
sky/clouds/service_catalog/ibm_catalog.py,sha256=1iK0KvbI82U7sySb7chr-qm_16x3tTnZ6nIo7o76ouc,4493
|
68
68
|
sky/clouds/service_catalog/kubernetes_catalog.py,sha256=5ilQ-JK1ZS2EZp8GpCKok0H3S1fdI_aAznzIDWCY1NY,9110
|
69
69
|
sky/clouds/service_catalog/lambda_catalog.py,sha256=2R-ccu63BbdvO6X80MtxiniA-jLewXb6I0Ye1rYD9fY,5302
|
70
|
-
sky/clouds/service_catalog/oci_catalog.py,sha256=
|
70
|
+
sky/clouds/service_catalog/oci_catalog.py,sha256=cyA6ZqwHGOKuPxUl_dKmFGdeWdQGMrvl_-o2MtyF998,8580
|
71
71
|
sky/clouds/service_catalog/paperspace_catalog.py,sha256=MOlfoGRChjEwMzu4nRAho8DrIwwUJ3QlRzrMA1RLqvE,3789
|
72
72
|
sky/clouds/service_catalog/runpod_catalog.py,sha256=oWYVgSMiK3DxBE5AgROyExIq9kCTaOr3hDLSc31kqTU,4205
|
73
73
|
sky/clouds/service_catalog/scp_catalog.py,sha256=nrtD0hAZd1rUDsFuHI1hrBgAVSE5YprdWoYSXQooIqU,5195
|
@@ -85,25 +85,25 @@ sky/clouds/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
85
85
|
sky/clouds/utils/aws_utils.py,sha256=W5BRC-2F_VY4BymRA1kS6-MufsI3V8cfY_hv--4gJBU,1986
|
86
86
|
sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4t8,3555
|
87
87
|
sky/clouds/utils/gcp_utils.py,sha256=QejfgXOIVRv5-fv3Soi96VeVNVyquwVwy3M58N3YfNs,6633
|
88
|
-
sky/clouds/utils/oci_utils.py,sha256=
|
88
|
+
sky/clouds/utils/oci_utils.py,sha256=LILpS38_exeMjmJdNpzwDR8hfGSpWjaRKl1CWKA-zHs,5579
|
89
89
|
sky/clouds/utils/scp_utils.py,sha256=RUp7NwyhKygOoVOwvdAOGdoQNSJjryOG6WSExCf-yas,15812
|
90
90
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
91
91
|
sky/data/data_transfer.py,sha256=MBmjey9_p2L3IKNKTi8um09SlZe32n4wK3CkVnlTVvo,7346
|
92
92
|
sky/data/data_utils.py,sha256=-P5GsDH_m4slrCz4vHdgiFezIys8ufzvhEKePJwfjFc,28597
|
93
|
-
sky/data/mounting_utils.py,sha256=
|
93
|
+
sky/data/mounting_utils.py,sha256=HwBGg1NmX-2IJZV_6h2r1U3ajTGOyfmA3MqboA7znqU,11004
|
94
94
|
sky/data/storage.py,sha256=OQ_kznF-P50Jq0feO5FBqm97QGhfbsZ2dX-Ar3sVWr4,163903
|
95
95
|
sky/data/storage_utils.py,sha256=cM3kxlffYE7PnJySDu8huyUsMX_JYsf9uer8r5OYsjo,9556
|
96
96
|
sky/jobs/__init__.py,sha256=yucibSB_ZimtJMvOhMxn6ZqwBIYNfcwmc6pSXtCqmNQ,1483
|
97
97
|
sky/jobs/constants.py,sha256=YLgcCg_RHSYr_rfsI_4UIdXk78KKKOK29Oem88t5j8I,1350
|
98
98
|
sky/jobs/controller.py,sha256=sirpi730_GfKfPZeZ2PvCXnJWger0r6AyLSOx2sLd6A,27368
|
99
|
-
sky/jobs/core.py,sha256=
|
99
|
+
sky/jobs/core.py,sha256=Lk_zKizc9a7O-8WHhh4-VXBS5kT0jRpwmNNA7S4ueIo,17347
|
100
100
|
sky/jobs/recovery_strategy.py,sha256=O_DouAfWx8FNdQxXsr2msMwlKCIodS99cW6V4Lf1vMo,27219
|
101
101
|
sky/jobs/state.py,sha256=DE02bCZc9bPbbuayb3Zml553mb4pEV7Z8t1pt8IGbYM,25252
|
102
102
|
sky/jobs/utils.py,sha256=Ff3TttIEdVeM1_kOVkviqIDjeVfBPIXVE8i-yP1VDM8,37976
|
103
103
|
sky/jobs/dashboard/dashboard.py,sha256=KMSarpVcfnc-ELPFvy1M9_I1k4kSeXubTk3ibQC67Tg,3219
|
104
104
|
sky/jobs/dashboard/static/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
|
105
105
|
sky/jobs/dashboard/templates/index.html,sha256=su1tqgcsXNl1lGl9hfIR6ig1f531OO57x1Tc2mNDK7U,11139
|
106
|
-
sky/provision/__init__.py,sha256=
|
106
|
+
sky/provision/__init__.py,sha256=llAtnAAzx0TKT17B0JL_2ZiKea9RRQRxSzkWHQYqWTo,6292
|
107
107
|
sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
|
108
108
|
sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
|
109
109
|
sky/provision/docker_utils.py,sha256=cKYasCwbMf6C2_0vTxg2GvbrnhFvko-xDl1frfm7wxc,19199
|
@@ -112,7 +112,7 @@ sky/provision/logging.py,sha256=yZWgejrFBhhRjAtvFu5N5bRXIMK5TuwNjp1vKQqz2pw,2103
|
|
112
112
|
sky/provision/metadata_utils.py,sha256=LrxeV4wD2QPzNdXV_npj8q-pr35FatxBBjF_jSbpOT0,4013
|
113
113
|
sky/provision/provisioner.py,sha256=mTvtBjS-Xz64LJcyeHx_-wdM8Gin8D49YRaV_TADaz4,25334
|
114
114
|
sky/provision/aws/__init__.py,sha256=mxq8PeWJqUtalDozTNpbtENErRZ1ktEs8uf2aG9UUgU,731
|
115
|
-
sky/provision/aws/config.py,sha256=
|
115
|
+
sky/provision/aws/config.py,sha256=dbwulPxXGIJjKJddv85PbtlXOjwLemaD65j3DISNsK0,24214
|
116
116
|
sky/provision/aws/instance.py,sha256=eCslJ2XfJo_pkQMnKFQqhGnUIRvwKiT12oxBY5-klss,40750
|
117
117
|
sky/provision/aws/utils.py,sha256=m49pS-SHGW7Au3bhDeTPsL8N5iRzbwOXzyEWRCc1Vho,3238
|
118
118
|
sky/provision/azure/__init__.py,sha256=87cgk1_Ws7n9rqaDDPv-HpfrkVeSQMdFQnhnXwyx9g4,548
|
@@ -147,6 +147,10 @@ sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X
|
|
147
147
|
sky/provision/lambda_cloud/config.py,sha256=jq1iLzp4Up61r4JGxvtpVbJlgXnea3LHYQhCQyyl7ik,272
|
148
148
|
sky/provision/lambda_cloud/instance.py,sha256=5-XuX-KwlRq8y62NXNzY_p6aJs4iCPGBf5U4pIR4liI,8975
|
149
149
|
sky/provision/lambda_cloud/lambda_utils.py,sha256=wIXV1Qe362f8Q9u8DSx2e9IJs4CF03Jr3idHCzhlRz4,9879
|
150
|
+
sky/provision/oci/__init__.py,sha256=5E6EUtTK3mqGVREw5TuVl5DxteBYTZigIii7c8gHExU,612
|
151
|
+
sky/provision/oci/config.py,sha256=diSDTyHLokcuXGB2XgZCHFvsXa8bah1PP2XuMouW_UU,1650
|
152
|
+
sky/provision/oci/instance.py,sha256=Y7z7N8sTpnzznL_GAtBeErzrF7r-zd9BZ7ZnC9DjFQg,16649
|
153
|
+
sky/provision/oci/query_utils.py,sha256=SUVOVRawFslEfkIRPqe8_pLYJRiGQvKpQ77-LRf9kgI,20304
|
150
154
|
sky/provision/paperspace/__init__.py,sha256=1nbUPWio7UA5gCQkO_rfEDfgXT17u5OtuByxQx4Ez6g,598
|
151
155
|
sky/provision/paperspace/config.py,sha256=oNmffSt-V466pE0DmML8hOCX1CiA24jAqE5JEKuqpyI,1541
|
152
156
|
sky/provision/paperspace/constants.py,sha256=NcLJGivJxshJwhR28yVHysWQ2gtMAkTVmHC91d3kyKM,957
|
@@ -175,7 +179,7 @@ sky/serve/__init__.py,sha256=gFZt7W3UPMi4qvYe2xgkHg1VxbR1WGavKyWLBUD3mpg,1731
|
|
175
179
|
sky/serve/autoscalers.py,sha256=khY1oZ22PRaUQNsLCoNKH178X_NiJw0LSLOKr7_LNgY,30275
|
176
180
|
sky/serve/constants.py,sha256=7MflfgTHO9gDSux93U4BmNeEMWXxZB4q7I54KUwgp-s,4651
|
177
181
|
sky/serve/controller.py,sha256=R5iIEGEEFtbm_6MvSGelYZP-vSmW0cSFuy64OexUc4g,11719
|
178
|
-
sky/serve/core.py,sha256=
|
182
|
+
sky/serve/core.py,sha256=hszs95BwtC4wIJujGNokvFC46VjojgRz1BbYOIIPh6k,31601
|
179
183
|
sky/serve/load_balancer.py,sha256=aUfDsgUT_fYrchCwJCeunMPXmAkwJAY58BEu-IN2FaA,11571
|
180
184
|
sky/serve/load_balancing_policies.py,sha256=ExdwH_pxPYpJ6CkoTQCOPSa4lzwbq1LFFMKzmIu8ryk,2331
|
181
185
|
sky/serve/replica_managers.py,sha256=1xYDK9Te5wFEF5hUK0gyNIUib0MY-HScLHUBDlTSl-k,57774
|
@@ -183,17 +187,17 @@ sky/serve/serve_state.py,sha256=Q7De4GoBEPxlN_t1Lpn-Y1fd94SeHZ3E-94f1OTuhpc,1908
|
|
183
187
|
sky/serve/serve_utils.py,sha256=wqBxChpJylZ_qHWyFmMBJqrG8_7xTIOr9nlOeyHs9P8,39431
|
184
188
|
sky/serve/service.py,sha256=fkfJvNJ2BO6rfV0TblZG-QkOXaCyZlpkwbGgrsTzf2w,11872
|
185
189
|
sky/serve/service_spec.py,sha256=1aS6b-ku7W4CjyekXKDxjZsDdt-O8ygos-jFeXu31cA,13766
|
186
|
-
sky/setup_files/MANIFEST.in,sha256=
|
190
|
+
sky/setup_files/MANIFEST.in,sha256=WF0T89NLichHxZDDSQzvSpiONtAEFyur2MPmGczgTIo,555
|
187
191
|
sky/setup_files/setup.py,sha256=G767GNB-jXqyC8MR-IdiojnnI2E6tP4gMYenKU14ZGA,12156
|
188
192
|
sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
|
189
193
|
sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
190
194
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
191
195
|
sky/skylet/autostop_lib.py,sha256=JPDHmByuhoNYXSUHl-OnyeJUkOFWn7gDM1FrS7Kr3E8,4478
|
192
196
|
sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
|
193
|
-
sky/skylet/constants.py,sha256=
|
197
|
+
sky/skylet/constants.py,sha256=w05Enrg9RhGp99P1WDYMKK_ki0M-e0bS8Wr-VZR0Vn8,14468
|
194
198
|
sky/skylet/events.py,sha256=A09E7LmmwzcGrSG0n8K7d3EZ1ZJr1mmmzoGyhnArYJA,12303
|
195
|
-
sky/skylet/job_lib.py,sha256
|
196
|
-
sky/skylet/log_lib.py,sha256=
|
199
|
+
sky/skylet/job_lib.py,sha256=aY2qqZGA59hVTp6FtP3N_Wkrl8wzO8XFOOjhODpQGZg,37737
|
200
|
+
sky/skylet/log_lib.py,sha256=BmhAgcLvlin3szhj33IH0kbdCALacVisF2x61BQpZdY,21888
|
197
201
|
sky/skylet/log_lib.pyi,sha256=AHMkW2DGK2erFovb3ToZWxRiYaATlzkxKb5J9pkgF2Y,4295
|
198
202
|
sky/skylet/skylet.py,sha256=U9plr5hmhD9-Nyy0LMCymlE8DWtRXTFXQvfbFsS746Y,1153
|
199
203
|
sky/skylet/subprocess_daemon.py,sha256=IJwGAzOdERrhWJS7VYKAUByNsLyIkKkB0w5nk06okG8,2818
|
@@ -203,10 +207,6 @@ sky/skylet/providers/ibm/__init__.py,sha256=GXo5F9ztvs0qMDI_G9wM5KvzySfYugslJMHH
|
|
203
207
|
sky/skylet/providers/ibm/node_provider.py,sha256=olNtCoCxjXTT-C_youwdQ9UF1DPgO8OVwDueotGFaJI,38280
|
204
208
|
sky/skylet/providers/ibm/utils.py,sha256=63vhKqLLOhAZdibSp8VWWONeyCER9F6U2VLrSpzlizk,1292
|
205
209
|
sky/skylet/providers/ibm/vpc_provider.py,sha256=GiOGlWYqqeBETfAeKqVj2-9shsMSP7z1WnO8UP5JTNo,34630
|
206
|
-
sky/skylet/providers/oci/__init__.py,sha256=LRMTj6OhQoxiFJw4uNxG8cn6PllP8A-lGJL3Cs5DJok,91
|
207
|
-
sky/skylet/providers/oci/node_provider.py,sha256=YPqiRag_cysvYMIMDGbMn6lOumvHad6FLJB5DGPr00Q,20492
|
208
|
-
sky/skylet/providers/oci/query_helper.py,sha256=dUsvPGzWPNF5O2NjQvuC8tkilT4H11gMj6R7Qel2fDc,17202
|
209
|
-
sky/skylet/providers/oci/utils.py,sha256=lCpdklxgSwK-hqErTicpIe_xkpSlIc8u943C-9_MJfU,508
|
210
210
|
sky/skylet/providers/scp/__init__.py,sha256=15SiAh1YphXkZsHySaw_CeAmXRdoM4JtNIAt7SLbUvg,91
|
211
211
|
sky/skylet/providers/scp/config.py,sha256=lhMXyG9btMlg59nmvtnMdIDN07jBbQOheAx-bHbGbhw,5077
|
212
212
|
sky/skylet/providers/scp/node_provider.py,sha256=W5J-170JVIpwT9Fv20fJ_PpdAVsqx9pigE-RkkG_kQE,22459
|
@@ -228,11 +228,11 @@ sky/templates/jobs-controller.yaml.j2,sha256=Gu3ogFxFYr09VEXP-6zEbrCUOFo1aYxWEjA
|
|
228
228
|
sky/templates/kubernetes-ingress.yml.j2,sha256=73iDklVDWBMbItg0IexCa6_ClXPJOxw7PWz3leku4nE,1340
|
229
229
|
sky/templates/kubernetes-loadbalancer.yml.j2,sha256=IxrNYM366N01bbkJEbZ_UPYxUP8wyVEbRNFHRsBuLsw,626
|
230
230
|
sky/templates/kubernetes-port-forward-proxy-command.sh,sha256=HlG7CPBBedCVBlL9qv0erW_eKm6Irj0LFyaAWuJW_lc,3148
|
231
|
-
sky/templates/kubernetes-ray.yml.j2,sha256=
|
231
|
+
sky/templates/kubernetes-ray.yml.j2,sha256=dsWlkX-0b1igeZI4c0u0Jzia5I_9gezCiewR6pX1LlY,18374
|
232
232
|
sky/templates/kubernetes-ssh-jump.yml.j2,sha256=k5W5sOIMppU7dDkJMwPlqsUcb92y7L5_TVG3hkgMy8M,2747
|
233
233
|
sky/templates/lambda-ray.yml.j2,sha256=HyvO_tX2vxwSsc4IFVSqGuIbjLMk0bevP9bcxb8ZQII,4498
|
234
234
|
sky/templates/local-ray.yml.j2,sha256=FNHeyHF6nW9nU9QLIZceUWfvrFTTcO51KqhTnYCEFaA,1185
|
235
|
-
sky/templates/oci-ray.yml.j2,sha256=
|
235
|
+
sky/templates/oci-ray.yml.j2,sha256=92dvXGaUd2Kwep9fgTjOsAPJiBLr8GQTjy7pFvuPAyE,4562
|
236
236
|
sky/templates/paperspace-ray.yml.j2,sha256=HQjZNamrB_a4fOMCxQXSVdV5JIHtbGtAE0JzEO8uuVQ,4021
|
237
237
|
sky/templates/runpod-ray.yml.j2,sha256=p3BtYBHzROtNJqnjEo1xCmGSJQfCZYdarWszhDYyl0Q,3697
|
238
238
|
sky/templates/scp-ray.yml.j2,sha256=I9u8Ax-lit-d6UrCC9BVU8avst8w1cwK6TrzZBcz_JM,5608
|
@@ -243,11 +243,12 @@ sky/usage/constants.py,sha256=8xpg9vhDU9A3eObtpkNFjwa42oCazqGEv4yw_vJSO7U,590
|
|
243
243
|
sky/usage/usage_lib.py,sha256=mxsbwUMEQjesUOIv4Yne-Ze7rVxSQYr3_wBXruifGRA,17898
|
244
244
|
sky/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
245
245
|
sky/utils/accelerator_registry.py,sha256=BO4iYH5bV80Xyp4EPfO0n1D3LL0FvESCy7xm59Je3_o,3798
|
246
|
-
sky/utils/admin_policy_utils.py,sha256=
|
246
|
+
sky/utils/admin_policy_utils.py,sha256=_Vt_jTTYCXmMdryj0vrrumFPewa93qHnzUqBDXjAhRU,5981
|
247
247
|
sky/utils/cluster_yaml_utils.py,sha256=1wRRYqI1kI-eFs1pMW4r_FFjHJ0zamq6v2RRI-Gtx5E,849
|
248
|
-
sky/utils/command_runner.py,sha256=
|
248
|
+
sky/utils/command_runner.py,sha256=GHTZxoJQ3V8WVSRAaOA4JpRTxtCtuq36H9U8kOfWUwc,36450
|
249
249
|
sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
|
250
250
|
sky/utils/common_utils.py,sha256=Qy25LuIoTT0qg391EWyT9i5D6fwk1S4OdFwRpCTZ9Vk,24657
|
251
|
+
sky/utils/control_master_utils.py,sha256=90hnxiAUP20gbJ9e3MERh7rb04ZO_I3LsljNjR26H5I,1416
|
251
252
|
sky/utils/controller_utils.py,sha256=wF4_y1PCsLAWoo3XEtECwkNYTN6hO3vn_cxGxgQYcd8,43268
|
252
253
|
sky/utils/dag_utils.py,sha256=pVX3lGDDcYTcGoH_1jEWzl9767Y4mwlIEYIzoyHO6gM,6105
|
253
254
|
sky/utils/db_utils.py,sha256=AOvMmBEN9cF4I7CoXihPCtus4mU2VDGjBQSVMMgzKlA,2786
|
@@ -274,9 +275,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7Z
|
|
274
275
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
275
276
|
sky/utils/kubernetes/rsync_helper.sh,sha256=hyYDaYSNxYaNvzUQBzC8AidB7nDeojizjkzc_CTxycY,1077
|
276
277
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=RFLJ3k7MR5UN4SKHykQ0lV9SgXumoULpKYIAt1vh-HU,6560
|
277
|
-
skypilot_nightly-1.0.0.
|
278
|
-
skypilot_nightly-1.0.0.
|
279
|
-
skypilot_nightly-1.0.0.
|
280
|
-
skypilot_nightly-1.0.0.
|
281
|
-
skypilot_nightly-1.0.0.
|
282
|
-
skypilot_nightly-1.0.0.
|
278
|
+
skypilot_nightly-1.0.0.dev20241110.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
279
|
+
skypilot_nightly-1.0.0.dev20241110.dist-info/METADATA,sha256=4ar4pUczmGqsEHMG-85ANcAB_ifYgIDJRr0BJfypruA,19708
|
280
|
+
skypilot_nightly-1.0.0.dev20241110.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
281
|
+
skypilot_nightly-1.0.0.dev20241110.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
282
|
+
skypilot_nightly-1.0.0.dev20241110.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
283
|
+
skypilot_nightly-1.0.0.dev20241110.dist-info/RECORD,,
|