skypilot-nightly 1.0.0.dev20241028__py3-none-any.whl → 1.0.0.dev20241030__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/azure.py +3 -0
- sky/backends/backend_utils.py +10 -133
- sky/backends/cloud_vm_ray_backend.py +17 -105
- sky/clouds/azure.py +10 -1
- sky/execution.py +5 -4
- sky/jobs/controller.py +38 -22
- sky/jobs/recovery_strategy.py +30 -5
- sky/jobs/state.py +33 -5
- sky/jobs/utils.py +28 -4
- sky/optimizer.py +11 -7
- sky/provision/azure/azure-config-template.json +7 -1
- sky/provision/azure/config.py +65 -45
- sky/provision/azure/instance.py +275 -70
- sky/provision/constants.py +7 -0
- sky/provision/gcp/instance.py +0 -7
- sky/resources.py +25 -8
- sky/serve/core.py +0 -2
- sky/serve/serve_state.py +3 -7
- sky/serve/serve_utils.py +2 -14
- sky/serve/service_spec.py +0 -28
- sky/setup_files/setup.py +4 -3
- sky/skylet/job_lib.py +37 -53
- sky/skylet/log_lib.py +5 -14
- sky/templates/azure-ray.yml.j2 +1 -0
- sky/utils/dag_utils.py +14 -4
- sky/utils/schemas.py +25 -15
- {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/METADATA +13 -11
- {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/RECORD +33 -33
- {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/WHEEL +1 -1
- {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/top_level.txt +0 -0
sky/skylet/job_lib.py
CHANGED
@@ -512,16 +512,13 @@ def _get_jobs_by_ids(job_ids: List[int]) -> List[Dict[str, Any]]:
|
|
512
512
|
return records
|
513
513
|
|
514
514
|
|
515
|
-
def
|
516
|
-
rows = _CURSOR.execute(
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
'submit': submit
|
523
|
-
} for job_id, created_time, submit in rows
|
524
|
-
}
|
515
|
+
def _get_pending_job(job_id: int) -> Optional[Dict[str, Any]]:
|
516
|
+
rows = _CURSOR.execute('SELECT created_time, submit FROM pending_jobs '
|
517
|
+
f'WHERE job_id={job_id!r}')
|
518
|
+
for row in rows:
|
519
|
+
created_time, submit = row
|
520
|
+
return {'created_time': created_time, 'submit': submit}
|
521
|
+
return None
|
525
522
|
|
526
523
|
|
527
524
|
def update_job_status(job_ids: List[int],
|
@@ -535,7 +532,7 @@ def update_job_status(job_ids: List[int],
|
|
535
532
|
during job cancelling, we still need this to handle the staleness problem,
|
536
533
|
caused by instance restarting and other corner cases (if any).
|
537
534
|
|
538
|
-
This function should only be run on the remote instance with ray
|
535
|
+
This function should only be run on the remote instance with ray>=2.4.0.
|
539
536
|
"""
|
540
537
|
if len(job_ids) == 0:
|
541
538
|
return []
|
@@ -547,50 +544,45 @@ def update_job_status(job_ids: List[int],
|
|
547
544
|
|
548
545
|
# In ray 2.4.0, job_client.list_jobs returns a list of JobDetails,
|
549
546
|
# which contains the job status (str) and submission_id (str).
|
547
|
+
ray_job_query_time = time.time()
|
550
548
|
job_detail_lists: List['ray_pydantic.JobDetails'] = job_client.list_jobs()
|
551
549
|
|
552
|
-
pending_jobs = _get_pending_jobs()
|
553
550
|
job_details = {}
|
554
551
|
ray_job_ids_set = set(ray_job_ids)
|
555
552
|
for job_detail in job_detail_lists:
|
556
553
|
if job_detail.submission_id in ray_job_ids_set:
|
557
554
|
job_details[job_detail.submission_id] = job_detail
|
558
|
-
job_statuses: List[Optional[JobStatus]] = [None] * len(ray_job_ids)
|
559
|
-
for i, ray_job_id in enumerate(ray_job_ids):
|
560
|
-
job_id = job_ids[i]
|
561
|
-
if ray_job_id in job_details:
|
562
|
-
ray_status = job_details[ray_job_id].status
|
563
|
-
job_statuses[i] = _RAY_TO_JOB_STATUS_MAP[ray_status]
|
564
|
-
if job_id in pending_jobs:
|
565
|
-
if pending_jobs[job_id]['created_time'] < psutil.boot_time():
|
566
|
-
logger.info(
|
567
|
-
f'Job {job_id} is stale, setting to FAILED: '
|
568
|
-
f'created_time={pending_jobs[job_id]["created_time"]}, '
|
569
|
-
f'boot_time={psutil.boot_time()}')
|
570
|
-
# The job is stale as it is created before the instance
|
571
|
-
# is booted, e.g. the instance is rebooted.
|
572
|
-
job_statuses[i] = JobStatus.FAILED
|
573
|
-
# Gives a 60 second grace period between job being submit from
|
574
|
-
# the pending table until appearing in ray jobs.
|
575
|
-
if (pending_jobs[job_id]['submit'] > 0 and
|
576
|
-
pending_jobs[job_id]['submit'] <
|
577
|
-
time.time() - _PENDING_SUBMIT_GRACE_PERIOD):
|
578
|
-
# For jobs submitted outside of the grace period, we will
|
579
|
-
# consider the ray job status.
|
580
|
-
continue
|
581
|
-
else:
|
582
|
-
# Reset the job status to PENDING even though it may not appear
|
583
|
-
# in the ray jobs, so that it will not be considered as stale.
|
584
|
-
job_statuses[i] = JobStatus.PENDING
|
585
|
-
|
586
|
-
assert len(job_statuses) == len(job_ids), (job_statuses, job_ids)
|
587
555
|
|
588
556
|
statuses = []
|
589
|
-
for job_id,
|
557
|
+
for job_id, ray_job_id in zip(job_ids, ray_job_ids):
|
590
558
|
# Per-job status lock is required because between the job status
|
591
559
|
# query and the job status update, the job status in the databse
|
592
560
|
# can be modified by the generated ray program.
|
593
561
|
with filelock.FileLock(_get_lock_path(job_id)):
|
562
|
+
status = None
|
563
|
+
if ray_job_id in job_details:
|
564
|
+
ray_status = job_details[ray_job_id].status
|
565
|
+
status = _RAY_TO_JOB_STATUS_MAP[ray_status]
|
566
|
+
pending_job = _get_pending_job(job_id)
|
567
|
+
if pending_job is not None:
|
568
|
+
if pending_job['created_time'] < psutil.boot_time():
|
569
|
+
logger.info(f'Job {job_id} is stale, setting to FAILED: '
|
570
|
+
f'created_time={pending_job["created_time"]}, '
|
571
|
+
f'boot_time={psutil.boot_time()}')
|
572
|
+
# The job is stale as it is created before the instance
|
573
|
+
# is booted, e.g. the instance is rebooted.
|
574
|
+
status = JobStatus.FAILED
|
575
|
+
# Gives a 60 second grace period between job being submit from
|
576
|
+
# the pending table until appearing in ray jobs. For jobs
|
577
|
+
# submitted outside of the grace period, we will consider the
|
578
|
+
# ray job status.
|
579
|
+
if not (pending_job['submit'] > 0 and pending_job['submit'] <
|
580
|
+
ray_job_query_time - _PENDING_SUBMIT_GRACE_PERIOD):
|
581
|
+
# Reset the job status to PENDING even though it may not
|
582
|
+
# appear in the ray jobs, so that it will not be considered
|
583
|
+
# as stale.
|
584
|
+
status = JobStatus.PENDING
|
585
|
+
|
594
586
|
original_status = get_status_no_lock(job_id)
|
595
587
|
assert original_status is not None, (job_id, status)
|
596
588
|
if status is None:
|
@@ -827,14 +819,6 @@ class JobLibCodeGen:
|
|
827
819
|
'import os',
|
828
820
|
'import getpass',
|
829
821
|
'from sky.skylet import job_lib, log_lib, constants',
|
830
|
-
# Backward compatibility for old skylet lib version on the remote
|
831
|
-
# machine. The `job_owner` argument was removed in #3037, and if the
|
832
|
-
# remote machine has an old SkyPilot version before that, we need to
|
833
|
-
# pass the `job_owner` argument to the job_lib functions.
|
834
|
-
# TODO(zhwu): Remove this in 0.7.0 release.
|
835
|
-
'job_owner_kwargs = {} '
|
836
|
-
'if getattr(constants, "SKYLET_LIB_VERSION", 0) >= 1 '
|
837
|
-
'else {"job_owner": getpass.getuser()}',
|
838
822
|
]
|
839
823
|
|
840
824
|
@classmethod
|
@@ -861,7 +845,7 @@ class JobLibCodeGen:
|
|
861
845
|
|
862
846
|
@classmethod
|
863
847
|
def update_status(cls) -> str:
|
864
|
-
code = ['job_lib.update_status(
|
848
|
+
code = ['job_lib.update_status()']
|
865
849
|
return cls._build(code)
|
866
850
|
|
867
851
|
@classmethod
|
@@ -879,7 +863,7 @@ class JobLibCodeGen:
|
|
879
863
|
"""See job_lib.cancel_jobs()."""
|
880
864
|
code = [
|
881
865
|
(f'cancelled = job_lib.cancel_jobs_encoded_results('
|
882
|
-
f' {job_ids!r}, {cancel_all}
|
866
|
+
f' {job_ids!r}, {cancel_all})'),
|
883
867
|
# Print cancelled IDs. Caller should parse by decoding.
|
884
868
|
'print(cancelled, flush=True)',
|
885
869
|
]
|
@@ -902,7 +886,7 @@ class JobLibCodeGen:
|
|
902
886
|
'run_timestamp = job_lib.get_run_timestamp(job_id)',
|
903
887
|
f'log_dir = None if run_timestamp is None else os.path.join({constants.SKY_LOGS_DIRECTORY!r}, run_timestamp)',
|
904
888
|
f'log_lib.tail_logs(job_id=job_id, log_dir=log_dir, '
|
905
|
-
f'managed_job_id={managed_job_id!r}, follow={follow}
|
889
|
+
f'managed_job_id={managed_job_id!r}, follow={follow})',
|
906
890
|
]
|
907
891
|
return cls._build(code)
|
908
892
|
|
sky/skylet/log_lib.py
CHANGED
@@ -186,20 +186,11 @@ def run_with_log(
|
|
186
186
|
daemon_script = os.path.join(
|
187
187
|
os.path.dirname(os.path.abspath(job_lib.__file__)),
|
188
188
|
'subprocess_daemon.py')
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
# not updated. We fallback to `python3` in this case.
|
195
|
-
# TODO(zhwu): remove this after 0.7.0.
|
196
|
-
python_path = 'python3'
|
197
|
-
else:
|
198
|
-
python_path = subprocess.check_output(
|
199
|
-
constants.SKY_GET_PYTHON_PATH_CMD,
|
200
|
-
shell=True,
|
201
|
-
stderr=subprocess.DEVNULL,
|
202
|
-
encoding='utf-8').strip()
|
189
|
+
python_path = subprocess.check_output(
|
190
|
+
constants.SKY_GET_PYTHON_PATH_CMD,
|
191
|
+
shell=True,
|
192
|
+
stderr=subprocess.DEVNULL,
|
193
|
+
encoding='utf-8').strip()
|
203
194
|
daemon_cmd = [
|
204
195
|
python_path,
|
205
196
|
daemon_script,
|
sky/templates/azure-ray.yml.j2
CHANGED
@@ -34,6 +34,7 @@ provider:
|
|
34
34
|
# instead of the cluster_name. This ensures that ray creates new instances
|
35
35
|
# for different cluster_name.
|
36
36
|
resource_group: {{resource_group}}
|
37
|
+
use_external_resource_group: {{use_external_resource_group}}
|
37
38
|
# Keep (otherwise cannot reuse when re-provisioning).
|
38
39
|
# teardown(terminate=True) will override this.
|
39
40
|
cache_stopped_nodes: True
|
sky/utils/dag_utils.py
CHANGED
@@ -143,11 +143,21 @@ def fill_default_config_in_dag_for_job_launch(dag: dag_lib.Dag) -> None:
|
|
143
143
|
for task_ in dag.tasks:
|
144
144
|
|
145
145
|
new_resources_list = []
|
146
|
+
default_strategy = jobs.DEFAULT_RECOVERY_STRATEGY
|
147
|
+
assert default_strategy is not None
|
146
148
|
for resources in list(task_.resources):
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
149
|
+
original_job_recovery = resources.job_recovery
|
150
|
+
job_recovery = {'strategy': default_strategy}
|
151
|
+
if isinstance(original_job_recovery, str):
|
152
|
+
job_recovery['strategy'] = original_job_recovery
|
153
|
+
elif isinstance(original_job_recovery, dict):
|
154
|
+
job_recovery.update(original_job_recovery)
|
155
|
+
strategy = job_recovery.get('strategy')
|
156
|
+
if strategy is None:
|
157
|
+
job_recovery['strategy'] = default_strategy
|
158
|
+
change_default_value: Dict[str, Any] = {
|
159
|
+
'job_recovery': job_recovery
|
160
|
+
}
|
151
161
|
|
152
162
|
new_resources = resources.copy(**change_default_value)
|
153
163
|
new_resources_list.append(new_resources)
|
sky/utils/schemas.py
CHANGED
@@ -92,7 +92,27 @@ def _get_single_resources_schema():
|
|
92
92
|
'type': 'string',
|
93
93
|
},
|
94
94
|
'job_recovery': {
|
95
|
-
|
95
|
+
# Either a string or a dict.
|
96
|
+
'anyOf': [{
|
97
|
+
'type': 'string',
|
98
|
+
}, {
|
99
|
+
'type': 'object',
|
100
|
+
'required': [],
|
101
|
+
'additionalProperties': False,
|
102
|
+
'properties': {
|
103
|
+
'strategy': {
|
104
|
+
'anyOf': [{
|
105
|
+
'type': 'string',
|
106
|
+
}, {
|
107
|
+
'type': 'null',
|
108
|
+
}],
|
109
|
+
},
|
110
|
+
'max_restarts_on_errors': {
|
111
|
+
'type': 'integer',
|
112
|
+
'minimum': 0,
|
113
|
+
},
|
114
|
+
}
|
115
|
+
}],
|
96
116
|
},
|
97
117
|
'disk_size': {
|
98
118
|
'type': 'integer',
|
@@ -357,19 +377,6 @@ def get_service_schema():
|
|
357
377
|
'downscale_delay_seconds': {
|
358
378
|
'type': 'number',
|
359
379
|
},
|
360
|
-
# TODO(MaoZiming): Fields `qps_upper_threshold`,
|
361
|
-
# `qps_lower_threshold` and `auto_restart` are deprecated.
|
362
|
-
# Temporarily keep these fields for backward compatibility.
|
363
|
-
# Remove after 2 minor release, i.e., 0.6.0.
|
364
|
-
'auto_restart': {
|
365
|
-
'type': 'boolean',
|
366
|
-
},
|
367
|
-
'qps_upper_threshold': {
|
368
|
-
'type': 'number',
|
369
|
-
},
|
370
|
-
'qps_lower_threshold': {
|
371
|
-
'type': 'number',
|
372
|
-
},
|
373
380
|
}
|
374
381
|
},
|
375
382
|
'replicas': {
|
@@ -595,7 +602,7 @@ _NETWORK_CONFIG_SCHEMA = {
|
|
595
602
|
|
596
603
|
_LABELS_SCHEMA = {
|
597
604
|
# Deprecated: 'instance_tags' is replaced by 'labels'. Keeping for backward
|
598
|
-
# compatibility. Will be removed after 0.
|
605
|
+
# compatibility. Will be removed after 0.8.0.
|
599
606
|
'instance_tags': {
|
600
607
|
'type': 'object',
|
601
608
|
'required': [],
|
@@ -771,6 +778,9 @@ def get_config_schema():
|
|
771
778
|
'storage_account': {
|
772
779
|
'type': 'string',
|
773
780
|
},
|
781
|
+
'resource_group_vm': {
|
782
|
+
'type': 'string',
|
783
|
+
},
|
774
784
|
}
|
775
785
|
},
|
776
786
|
'kubernetes': {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20241030
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -46,11 +46,12 @@ Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
46
46
|
Requires-Dist: botocore>=1.29.10; extra == "all"
|
47
47
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
48
48
|
Requires-Dist: colorama<0.4.5; extra == "all"
|
49
|
-
Requires-Dist: azure-cli>=2.
|
50
|
-
Requires-Dist: azure-core; extra == "all"
|
51
|
-
Requires-Dist: azure-identity>=1.
|
52
|
-
Requires-Dist: azure-mgmt-network; extra == "all"
|
53
|
-
Requires-Dist: azure-
|
49
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
50
|
+
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
51
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
52
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
53
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
54
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
54
55
|
Requires-Dist: msgraph-sdk; extra == "all"
|
55
56
|
Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
|
56
57
|
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
@@ -78,11 +79,12 @@ Requires-Dist: botocore>=1.29.10; extra == "aws"
|
|
78
79
|
Requires-Dist: boto3>=1.26.1; extra == "aws"
|
79
80
|
Requires-Dist: colorama<0.4.5; extra == "aws"
|
80
81
|
Provides-Extra: azure
|
81
|
-
Requires-Dist: azure-cli>=2.
|
82
|
-
Requires-Dist: azure-core; extra == "azure"
|
83
|
-
Requires-Dist: azure-identity>=1.
|
84
|
-
Requires-Dist: azure-mgmt-network; extra == "azure"
|
85
|
-
Requires-Dist: azure-
|
82
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "azure"
|
83
|
+
Requires-Dist: azure-core>=1.31.0; extra == "azure"
|
84
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "azure"
|
85
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "azure"
|
86
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "azure"
|
87
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "azure"
|
86
88
|
Requires-Dist: msgraph-sdk; extra == "azure"
|
87
89
|
Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "azure"
|
88
90
|
Provides-Extra: cloudflare
|
{skypilot_nightly-1.0.0.dev20241028.dist-info → skypilot_nightly-1.0.0.dev20241030.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=WwnJbF2ubaAJEJkUGPJ7jK5mh3QD1r487evpncErtC8,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
|
@@ -7,17 +7,17 @@ sky/cloud_stores.py,sha256=RjFgmRhUh1Kk__f6g3KxzLp9s7dA0pFK4W1AukEuUaw,21153
|
|
7
7
|
sky/core.py,sha256=DW9OGE2kS2CmsvQ1grrpRnNFS3woMGWSHu5GE99e-I4,38190
|
8
8
|
sky/dag.py,sha256=WLFWr5hfrwjd31uYlNvI-zWUk7tLaT_gzJn4LzbVtkE,2780
|
9
9
|
sky/exceptions.py,sha256=KBIEJHgrw6OMBL8H65o-Gk6qYQEV1SR9gBwMjnMnxxg,8858
|
10
|
-
sky/execution.py,sha256=
|
10
|
+
sky/execution.py,sha256=tDK6JhF_405cjqxRpbdLbHZyxrKTD5oa0UkKDvPJ_9Q,24751
|
11
11
|
sky/global_user_state.py,sha256=PywEmUutF97XBgRMClR6IS5_KM8JJC0oA1LsPUZebp0,28681
|
12
|
-
sky/optimizer.py,sha256=
|
13
|
-
sky/resources.py,sha256=
|
12
|
+
sky/optimizer.py,sha256=tXGrFpc6xNtKH34qjBAMd4jTuWcDZTPnGFwEtuCQFmk,59702
|
13
|
+
sky/resources.py,sha256=7kVpLRfy3DFFgmEji0_Xz6FbrvBDUSXC6K0bsRIK3hA,68290
|
14
14
|
sky/sky_logging.py,sha256=oLmTmwkuucIto3LHXLJfMcyRpYSkmZAZa5XzQPA5IHk,4434
|
15
15
|
sky/skypilot_config.py,sha256=E3g65cX3P3dT9b5N0GgFBG6yB0FXwIGpisKoozmJmWU,9094
|
16
16
|
sky/status_lib.py,sha256=J7Jb4_Dz0v2T64ttOdyUgpokvl4S0sBJrMfH7Fvo51A,1457
|
17
17
|
sky/task.py,sha256=KDsTBIxYpkCOPHv3_ei5H3LDMiGHvDeS9_2HeL6yyLA,49766
|
18
18
|
sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
sky/adaptors/aws.py,sha256=jz3E8YyeGscgLZvFE6A1SkxpH6o_inZ-0NiXdRnxSGA,6863
|
20
|
-
sky/adaptors/azure.py,sha256=
|
20
|
+
sky/adaptors/azure.py,sha256=yjM8nAPW-mlSXfmA8OmJNnSIrZ9lQx2-GxiI-TIVrwE,21910
|
21
21
|
sky/adaptors/cloudflare.py,sha256=0JA41HeZeYoqcJoEyol01caYgt8UrlpcZJJ6ToU-Fg8,7594
|
22
22
|
sky/adaptors/common.py,sha256=VhgAFPx-GmhXoob8B1YvqGC2BXs2HwtqoA8oFMaqkbc,2551
|
23
23
|
sky/adaptors/cudo.py,sha256=WGvIQrlzJkGDe02Ve7pygA56tHwUc4kwS3XHW8kMFAA,239
|
@@ -30,8 +30,8 @@ sky/adaptors/runpod.py,sha256=4Nt_BfZhJAKQNA3wO8cxvvNI8x4NsDGHu_4EhRDlGYQ,225
|
|
30
30
|
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
|
-
sky/backends/backend_utils.py,sha256=
|
34
|
-
sky/backends/cloud_vm_ray_backend.py,sha256=
|
33
|
+
sky/backends/backend_utils.py,sha256=LmLsaLiPuuUyGebOXykdvwZpUY-8sB7n4o2AnmwNmdQ,121714
|
34
|
+
sky/backends/cloud_vm_ray_backend.py,sha256=ZWAzdmKzSf3qalDoKfmLGaO3PywjLtIA5Q3AeeHhvHA,233158
|
35
35
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
36
36
|
sky/backends/local_docker_backend.py,sha256=0JL5m0YUgOmOL4aWEUe4tmt89dsxjk4_WXkPwgEKEis,16801
|
37
37
|
sky/backends/wheel_utils.py,sha256=3QS4T_Ydvo4DbYhogtyADyNBEf04I6jUCL71M285shQ,7963
|
@@ -41,7 +41,7 @@ sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG
|
|
41
41
|
sky/benchmark/benchmark_utils.py,sha256=eb-i6zYoo-Zkod-T9qtCu1FcYLw--Yyos1SyibUPZNE,26194
|
42
42
|
sky/clouds/__init__.py,sha256=WuNIJEnZmBO72tU5awgaaL3rdvFRSkgaYNNeuY68dXo,1356
|
43
43
|
sky/clouds/aws.py,sha256=dVZ8auaa2z2Ifl9iiRT06IeEFaNtZhANKtHVLT6Gcno,49474
|
44
|
-
sky/clouds/azure.py,sha256
|
44
|
+
sky/clouds/azure.py,sha256=-K-VPV2sYJJAfJbDcPAiNhNVhMQYkRBuYHQRb3-MGIQ,30598
|
45
45
|
sky/clouds/cloud.py,sha256=A5F4a71ciPyljWEs6vT-4RmdGT-AE9NkhS8gJ4Vgi_I,35165
|
46
46
|
sky/clouds/cloud_registry.py,sha256=oLoYFjm_SDTgdHokY7b6A5Utq80HXRQNxV0fLjDdVsQ,2361
|
47
47
|
sky/clouds/cudo.py,sha256=UiY273Sln7VOYDYx93yWiWH_RLlOKZ2cm7mA31ld4A8,13094
|
@@ -95,17 +95,17 @@ sky/data/storage.py,sha256=x8YYY4zVBdit_5oAR_MXV-TM9qDefV_ZV4z0irv6ZaU,163102
|
|
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
|
-
sky/jobs/controller.py,sha256=
|
98
|
+
sky/jobs/controller.py,sha256=sirpi730_GfKfPZeZ2PvCXnJWger0r6AyLSOx2sLd6A,27368
|
99
99
|
sky/jobs/core.py,sha256=RkBFaKDlovmdzqlOAgQ0xAimZFgo4pXq3qaQkAvGsGk,16908
|
100
|
-
sky/jobs/recovery_strategy.py,sha256=
|
101
|
-
sky/jobs/state.py,sha256=
|
102
|
-
sky/jobs/utils.py,sha256=
|
100
|
+
sky/jobs/recovery_strategy.py,sha256=FpPK6e2PT61cZPDUJqIfo6g53uSRTBh7dOTbfR1DLVE,26672
|
101
|
+
sky/jobs/state.py,sha256=TV1G12vEMQJRgwWXsAjb3lmkJqkZmAOUUOja2QQPrg8,24307
|
102
|
+
sky/jobs/utils.py,sha256=pF4Kyl4v1M_Bmm2jIRlXGTSdII5BJ3f4qwex_oCFgBk,37742
|
103
103
|
sky/jobs/dashboard/dashboard.py,sha256=HFShuaxKir97QTeK2x37h6bsY6ncaFaNEg1USZqJPdc,3050
|
104
104
|
sky/jobs/dashboard/static/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
|
105
105
|
sky/jobs/dashboard/templates/index.html,sha256=DBKMYEkkJ6sgLYod9ro7drgL8Y_neDsCx_WbwhWDsWM,9837
|
106
106
|
sky/provision/__init__.py,sha256=UhYsGRribEyK1--PPT0Dom9051jlpdn8UCNhO8qpPOc,6262
|
107
107
|
sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
|
108
|
-
sky/provision/constants.py,sha256=
|
108
|
+
sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
|
109
109
|
sky/provision/docker_utils.py,sha256=cKYasCwbMf6C2_0vTxg2GvbrnhFvko-xDl1frfm7wxc,19199
|
110
110
|
sky/provision/instance_setup.py,sha256=n1Px_KOYZl7Rf1WLXrfTTHyqxyA8_5QTN9BNLjQRkgc,22427
|
111
111
|
sky/provision/logging.py,sha256=yZWgejrFBhhRjAtvFu5N5bRXIMK5TuwNjp1vKQqz2pw,2103
|
@@ -116,9 +116,9 @@ sky/provision/aws/config.py,sha256=ApEh63RR_KyCp9nPXX35z6jBREoulJPQ5st8K9Jlclo,2
|
|
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
|
119
|
-
sky/provision/azure/azure-config-template.json,sha256=
|
120
|
-
sky/provision/azure/config.py,sha256=
|
121
|
-
sky/provision/azure/instance.py,sha256=
|
119
|
+
sky/provision/azure/azure-config-template.json,sha256=jrjAgOtpe0e6FSg3vsVqHKQqJe0w-HeWOFT1HuwzS2c,4712
|
120
|
+
sky/provision/azure/config.py,sha256=V5-0Zelt4Xo0vcqnD6PpsnaCS7vc3xosDelILDAKSW4,8885
|
121
|
+
sky/provision/azure/instance.py,sha256=dq67O6gwvNN0jrBklgJ8AnrNj784aqyLl7PHeB5xVQA,50088
|
122
122
|
sky/provision/cudo/__init__.py,sha256=KAEl26MVPsk7IoP9Gg-MOJJRIV6-X9B0fbyHdyJWdLo,741
|
123
123
|
sky/provision/cudo/config.py,sha256=RYOVkV0MoUqVBJRZiKhBZhjFygeyFs7eUdVMdPg1vds,327
|
124
124
|
sky/provision/cudo/cudo_machine_type.py,sha256=_VNXWPELmlFXbtdcnPvkuLuyE9CZ923BUCdiac-ClDY,696
|
@@ -132,7 +132,7 @@ sky/provision/fluidstack/instance.py,sha256=jZb_zJFkyCZw3QV3Dt-GbUxl_2HR1kxvOxS7
|
|
132
132
|
sky/provision/gcp/__init__.py,sha256=zlgjR2JoaGD7sStGStMRu9bJ62f-8NKEIyb-bFHBlzM,528
|
133
133
|
sky/provision/gcp/config.py,sha256=i0PhR1ybGErQiPT8cD6E5OFB7LD6sub4Rc-mhgTREVI,33340
|
134
134
|
sky/provision/gcp/constants.py,sha256=ojerfnNEeayJn-0aJq2Uq1iTchxOkpruKrPBbHmdiEw,7448
|
135
|
-
sky/provision/gcp/instance.py,sha256=
|
135
|
+
sky/provision/gcp/instance.py,sha256=8yjisiPqNBbhEiPBRogvhhgEpmmDplwTBQRgi17TR_I,24786
|
136
136
|
sky/provision/gcp/instance_utils.py,sha256=veRBr6Oziv0KaUdC4acuWeaOremNV0gMYCCHaSvY7c8,70943
|
137
137
|
sky/provision/gcp/mig_utils.py,sha256=oFpcFZoapHMILSE4iIm8V5bxP1RhbMHRF7cciqq8qAk,7883
|
138
138
|
sky/provision/kubernetes/__init__.py,sha256=y6yVfii81WYG3ROxv4hiIj-ydinS5-xGxLvXnARVQoI,719
|
@@ -175,16 +175,16 @@ sky/serve/__init__.py,sha256=gFZt7W3UPMi4qvYe2xgkHg1VxbR1WGavKyWLBUD3mpg,1731
|
|
175
175
|
sky/serve/autoscalers.py,sha256=khY1oZ22PRaUQNsLCoNKH178X_NiJw0LSLOKr7_LNgY,30275
|
176
176
|
sky/serve/constants.py,sha256=7MflfgTHO9gDSux93U4BmNeEMWXxZB4q7I54KUwgp-s,4651
|
177
177
|
sky/serve/controller.py,sha256=R5iIEGEEFtbm_6MvSGelYZP-vSmW0cSFuy64OexUc4g,11719
|
178
|
-
sky/serve/core.py,sha256=
|
178
|
+
sky/serve/core.py,sha256=jwrgglvtFqbD9Y4pzXmuso5hKc0OQcTWJ-AkvypiQII,30986
|
179
179
|
sky/serve/load_balancer.py,sha256=aUfDsgUT_fYrchCwJCeunMPXmAkwJAY58BEu-IN2FaA,11571
|
180
180
|
sky/serve/load_balancing_policies.py,sha256=ExdwH_pxPYpJ6CkoTQCOPSa4lzwbq1LFFMKzmIu8ryk,2331
|
181
181
|
sky/serve/replica_managers.py,sha256=1xYDK9Te5wFEF5hUK0gyNIUib0MY-HScLHUBDlTSl-k,57774
|
182
|
-
sky/serve/serve_state.py,sha256=
|
183
|
-
sky/serve/serve_utils.py,sha256=
|
182
|
+
sky/serve/serve_state.py,sha256=Q7De4GoBEPxlN_t1Lpn-Y1fd94SeHZ3E-94f1OTuhpc,19086
|
183
|
+
sky/serve/serve_utils.py,sha256=wqBxChpJylZ_qHWyFmMBJqrG8_7xTIOr9nlOeyHs9P8,39431
|
184
184
|
sky/serve/service.py,sha256=fkfJvNJ2BO6rfV0TblZG-QkOXaCyZlpkwbGgrsTzf2w,11872
|
185
|
-
sky/serve/service_spec.py,sha256=
|
185
|
+
sky/serve/service_spec.py,sha256=1aS6b-ku7W4CjyekXKDxjZsDdt-O8ygos-jFeXu31cA,13766
|
186
186
|
sky/setup_files/MANIFEST.in,sha256=CXz8lIJMgWlH9TvYgzIL3vPFtSDoQq-UMfD9K62rtH4,590
|
187
|
-
sky/setup_files/setup.py,sha256=
|
187
|
+
sky/setup_files/setup.py,sha256=G767GNB-jXqyC8MR-IdiojnnI2E6tP4gMYenKU14ZGA,12156
|
188
188
|
sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
|
189
189
|
sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
190
190
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
@@ -192,8 +192,8 @@ sky/skylet/autostop_lib.py,sha256=JPDHmByuhoNYXSUHl-OnyeJUkOFWn7gDM1FrS7Kr3E8,44
|
|
192
192
|
sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
|
193
193
|
sky/skylet/constants.py,sha256=OsuJcQp6UgkQ9Yfml6f_raXXbHS7-_h-v4QNv92y0Gw,14642
|
194
194
|
sky/skylet/events.py,sha256=A09E7LmmwzcGrSG0n8K7d3EZ1ZJr1mmmzoGyhnArYJA,12303
|
195
|
-
sky/skylet/job_lib.py,sha256=
|
196
|
-
sky/skylet/log_lib.py,sha256=
|
195
|
+
sky/skylet/job_lib.py,sha256=jqJ4D3UeG6fNMm8xPtdWclnrVHQb6WiRqb1nrBp8TPg,35200
|
196
|
+
sky/skylet/log_lib.py,sha256=Jyj3h2yMBlheFX53AabXEiPaKyCbu06hLEhay5_ZRN0,18734
|
197
197
|
sky/skylet/log_lib.pyi,sha256=AHMkW2DGK2erFovb3ToZWxRiYaATlzkxKb5J9pkgF2Y,4295
|
198
198
|
sky/skylet/skylet.py,sha256=U9plr5hmhD9-Nyy0LMCymlE8DWtRXTFXQvfbFsS746Y,1153
|
199
199
|
sky/skylet/subprocess_daemon.py,sha256=IJwGAzOdERrhWJS7VYKAUByNsLyIkKkB0w5nk06okG8,2818
|
@@ -219,7 +219,7 @@ sky/skylet/ray_patches/resource_demand_scheduler.py.patch,sha256=AVV-Hw-Rxw16aFm
|
|
219
219
|
sky/skylet/ray_patches/updater.py.patch,sha256=ZNMGVYICPBB44jLbEx2KvCgIY7BWYdDv3-2b2HJWmAQ,289
|
220
220
|
sky/skylet/ray_patches/worker.py.patch,sha256=_OBhibdr3xOy5Qje6Tt8D1eQVm_msi50TJbCJmOTxVU,565
|
221
221
|
sky/templates/aws-ray.yml.j2,sha256=K0rAuyf1XC_GPFp1BR9df42-Be12A6T2UF0BllVSpYg,8005
|
222
|
-
sky/templates/azure-ray.yml.j2,sha256=
|
222
|
+
sky/templates/azure-ray.yml.j2,sha256=l8zBUVfMPNRlKpn3l7_D3yXpdrUoSeykUuZRy0UoCLQ,6308
|
223
223
|
sky/templates/cudo-ray.yml.j2,sha256=SEHVY57iBauCOE2HYJtYVFEKlriAkdwQu_p86a1n_bA,3548
|
224
224
|
sky/templates/fluidstack-ray.yml.j2,sha256=t8TCULgiErCZdtFmBZVsA8ZdcqR7ccwsmQhuDFTBEAU,3541
|
225
225
|
sky/templates/gcp-ray.yml.j2,sha256=y95B-Nk6hFxm6vEIaxI1wFzAIcy_GcKC3XMYo9m-ThI,9662
|
@@ -249,14 +249,14 @@ sky/utils/command_runner.py,sha256=3CDcqRXEmoe3C-t2P58McgcRg6p9m5haUWYj1rOLuqM,3
|
|
249
249
|
sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
|
250
250
|
sky/utils/common_utils.py,sha256=Qy25LuIoTT0qg391EWyT9i5D6fwk1S4OdFwRpCTZ9Vk,24657
|
251
251
|
sky/utils/controller_utils.py,sha256=wF4_y1PCsLAWoo3XEtECwkNYTN6hO3vn_cxGxgQYcd8,43268
|
252
|
-
sky/utils/dag_utils.py,sha256=
|
252
|
+
sky/utils/dag_utils.py,sha256=pVX3lGDDcYTcGoH_1jEWzl9767Y4mwlIEYIzoyHO6gM,6105
|
253
253
|
sky/utils/db_utils.py,sha256=AOvMmBEN9cF4I7CoXihPCtus4mU2VDGjBQSVMMgzKlA,2786
|
254
254
|
sky/utils/env_options.py,sha256=3oAaUPxowL6vI2XmxXrH56V7Myj9IJWsL-MXFmRFVdI,1294
|
255
255
|
sky/utils/kubernetes_enums.py,sha256=imGqHSa8O07zD_6xH1SDMM7dBU5lF5fzFFlQuQy00QM,1384
|
256
256
|
sky/utils/log_utils.py,sha256=ptv2sbsiJSgk4NvdccrMsUR-MvOKnbu4BQiRSishgk0,12472
|
257
257
|
sky/utils/resources_utils.py,sha256=Xqi7gxPYw2y5wl5okUI5zx5LEij0hJF_V3Zi8q7TXYg,7890
|
258
258
|
sky/utils/rich_utils.py,sha256=hmnI1X5dKvRIQzB7EyNb34FT97qFNve-0QHqM5r0mVk,3066
|
259
|
-
sky/utils/schemas.py,sha256=
|
259
|
+
sky/utils/schemas.py,sha256=mogoStpQ77S936VfChinAW2I1DT4q2c5E7qY_qNiO0w,29094
|
260
260
|
sky/utils/subprocess_utils.py,sha256=3R54Elc2n8DQeO6Y8MCDJ6N6v27HDGpbNMIfCquqXYQ,6552
|
261
261
|
sky/utils/timeline.py,sha256=ao_nm0y52ZQILfL7Y92c3pSEFRyPm_ElORC3DrI5BwQ,3936
|
262
262
|
sky/utils/ux_utils.py,sha256=CqyIFGDuSE8fQasPkna_loZMwtboC9KedR09WEQ7qz0,6502
|
@@ -274,9 +274,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7Z
|
|
274
274
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
275
275
|
sky/utils/kubernetes/rsync_helper.sh,sha256=hyYDaYSNxYaNvzUQBzC8AidB7nDeojizjkzc_CTxycY,1077
|
276
276
|
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.
|
277
|
+
skypilot_nightly-1.0.0.dev20241030.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
278
|
+
skypilot_nightly-1.0.0.dev20241030.dist-info/METADATA,sha256=bwgfsg4Zzl63yZYrUfZIBNeMitC8bOcgqKucALPDnbk,19708
|
279
|
+
skypilot_nightly-1.0.0.dev20241030.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
280
|
+
skypilot_nightly-1.0.0.dev20241030.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
281
|
+
skypilot_nightly-1.0.0.dev20241030.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
282
|
+
skypilot_nightly-1.0.0.dev20241030.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|