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.
Files changed (38) hide show
  1. sky/__init__.py +2 -2
  2. sky/backends/cloud_vm_ray_backend.py +6 -21
  3. sky/backends/wheel_utils.py +5 -1
  4. sky/cli.py +25 -1
  5. sky/clouds/oci.py +11 -21
  6. sky/clouds/service_catalog/oci_catalog.py +1 -1
  7. sky/clouds/utils/oci_utils.py +16 -2
  8. sky/core.py +3 -2
  9. sky/dag.py +20 -15
  10. sky/data/mounting_utils.py +4 -16
  11. sky/exceptions.py +4 -1
  12. sky/execution.py +10 -8
  13. sky/jobs/core.py +3 -1
  14. sky/provision/__init__.py +1 -0
  15. sky/provision/aws/config.py +25 -5
  16. sky/provision/oci/__init__.py +15 -0
  17. sky/provision/oci/config.py +51 -0
  18. sky/provision/oci/instance.py +430 -0
  19. sky/{skylet/providers/oci/query_helper.py → provision/oci/query_utils.py} +148 -59
  20. sky/serve/core.py +11 -1
  21. sky/setup_files/MANIFEST.in +0 -1
  22. sky/skylet/constants.py +1 -1
  23. sky/skylet/job_lib.py +39 -20
  24. sky/skylet/log_lib.py +77 -8
  25. sky/templates/kubernetes-ray.yml.j2 +3 -1
  26. sky/templates/oci-ray.yml.j2 +3 -53
  27. sky/utils/admin_policy_utils.py +1 -0
  28. sky/utils/command_runner.py +14 -2
  29. sky/utils/control_master_utils.py +49 -0
  30. {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/METADATA +1 -1
  31. {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/RECORD +35 -34
  32. sky/skylet/providers/oci/__init__.py +0 -2
  33. sky/skylet/providers/oci/node_provider.py +0 -488
  34. sky/skylet/providers/oci/utils.py +0 -21
  35. {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/LICENSE +0 -0
  36. {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/WHEEL +0 -0
  37. {skypilot_nightly-1.0.0.dev20241108.dist-info → skypilot_nightly-1.0.0.dev20241110.dist-info}/entry_points.txt +0 -0
  38. {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, Tuple, Union
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) -> None:
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
- start_stream = False
450
- with open(log_path, 'r', encoding='utf-8') as f:
451
- for line in f.readlines():
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
- start_stream = True
454
- if start_stream:
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 [ $(lsof -w $file | wc -l) -lt 3 ]; then
338
+ if [ $(mylsof $file | wc -l) -lt 2 ]; then
337
339
  kill $TAIL_PID
338
340
  break
339
341
  fi
@@ -7,7 +7,7 @@ idle_timeout_minutes: 60
7
7
 
8
8
  provider:
9
9
  type: external
10
- module: sky.skylet.providers.oci.OCINodeProvider
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 on the head node. You don't need to change this.
117
- # NOTE: these are very performance-sensitive. Each new item opens/closes an SSH
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
@@ -142,4 +142,5 @@ def apply(
142
142
  importlib.reload(skypilot_config)
143
143
 
144
144
  logger.debug(f'Mutated user request: {mutated_user_request}')
145
+ mutated_dag.policy_applied = True
145
146
  return mutated_dag, mutated_config
@@ -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 = 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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241108
3
+ Version: 1.0.0.dev20241110
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -1,13 +1,13 @@
1
- sky/__init__.py,sha256=3bl83kLcrLpOZrRBB4ZOcINvEGjYSmx_kP8Aypn8fbc,5882
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=STcQ0jaLicXahQOCruebuRrRa94KouQPF_P_EVP1CjI,211212
5
+ sky/cli.py,sha256=jEjXs5Z0u263eJIsTHoKyG9oOY6giqw19s2di9kEv1s,212088
6
6
  sky/cloud_stores.py,sha256=RjFgmRhUh1Kk__f6g3KxzLp9s7dA0pFK4W1AukEuUaw,21153
7
- sky/core.py,sha256=DW9OGE2kS2CmsvQ1grrpRnNFS3woMGWSHu5GE99e-I4,38190
8
- sky/dag.py,sha256=WLFWr5hfrwjd31uYlNvI-zWUk7tLaT_gzJn4LzbVtkE,2780
9
- sky/exceptions.py,sha256=KBIEJHgrw6OMBL8H65o-Gk6qYQEV1SR9gBwMjnMnxxg,8858
10
- sky/execution.py,sha256=HF76sz-gCEZPGkuL48jJaLOTqjuHg0KysgKaPw-hn84,25997
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=yxsyqzA_jubsWhpFUmeTowxUPUj20M6jo9kkBI1Tbw4,232913
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=3QS4T_Ydvo4DbYhogtyADyNBEf04I6jUCL71M285shQ,7963
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=sHJrVhUhOKvJ-skbd2ZJ82IR63OXp43krmyPpM8BZqw,27084
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=DQaP0iQlxZEHWJs862ilynUfUEQDIjCGltS7kSadgYo,8572
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=t-5QEQEs8swN683AAp-oDD6yQJOQqVBbsVcHkNyqnbU,4968
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=44YkYIIgArEkyvxCtfmXXumybrU8bmn1TfLXWv_eldI,11480
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=w7PancHi8_-afLKZQ3HHMD1sEDoepm1vEMxyDlXdo64,17155
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=UhYsGRribEyK1--PPT0Dom9051jlpdn8UCNhO8qpPOc,6262
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=ApEh63RR_KyCp9nPXX35z6jBREoulJPQ5st8K9Jlclo,23385
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=jwrgglvtFqbD9Y4pzXmuso5hKc0OQcTWJ-AkvypiQII,30986
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=CXz8lIJMgWlH9TvYgzIL3vPFtSDoQq-UMfD9K62rtH4,590
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=TL-O0ZoxA1ZeNvKXzzA_UyIMXsma7flbsDZ1N_o9dKg,14468
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=-SCbpJRiWMSwvhDjUwfwnvBap7Y5B3ol1l_PDPra3XI,36860
196
- sky/skylet/log_lib.py,sha256=Jyj3h2yMBlheFX53AabXEiPaKyCbu06hLEhay5_ZRN0,18734
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=Wq9luXc6-t141uyHbtOy1IDmLMM0PBbePTZfZEtAKw0,18160
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=E-xnadts-x88vYRI1QGFzgfGGKFospmo2N9d_0cPN5I,7144
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=zFCu1OFIrZRfQNY0JFRO1502WFfdqZhwAU_QgM4fO9U,5943
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=seU7uX9CrxiC8WOWBKHW94m67-V6DYghqRXhYdUIdQI,35756
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.dev20241108.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
278
- skypilot_nightly-1.0.0.dev20241108.dist-info/METADATA,sha256=5DHqRTobJ2Irrs9uV-6ixI4dUDQFGvFRVnp3KCDT9pc,19708
279
- skypilot_nightly-1.0.0.dev20241108.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
280
- skypilot_nightly-1.0.0.dev20241108.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
281
- skypilot_nightly-1.0.0.dev20241108.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
282
- skypilot_nightly-1.0.0.dev20241108.dist-info/RECORD,,
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,,
@@ -1,2 +0,0 @@
1
- """OCI node provider"""
2
- from sky.skylet.providers.oci.node_provider import OCINodeProvider