Skip to content

Commit c6de33c

Browse files
aslonnie400Ping
authored andcommitted
[release test] remove sdk property in AnyscaleJobManager (ray-project#60277)
just save the sdk as a private member instead Signed-off-by: Lonnie Liu <95255098+aslonnie@users.noreply.github.com> Signed-off-by: 400Ping <jiekaichang@apache.org>
1 parent d2382a7 commit c6de33c

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

release/ray_release/job_manager/anyscale_job_manager.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def __init__(self, cluster_manager: ClusterManager):
3838
self.start_time = None
3939
self.counter = 0
4040
self.cluster_manager = cluster_manager
41+
self._sdk = cluster_manager.sdk
4142
self._last_job_result = None
4243
self._last_logs = None
4344
self.cluster_startup_timeout = 600
@@ -59,8 +60,6 @@ def _run_job(
5960
f"Executing {cmd_to_run} with {env_vars_for_job} via Anyscale job submit"
6061
)
6162

62-
anyscale_client = self.sdk
63-
6463
runtime_env = {
6564
"env_vars": env_vars_for_job,
6665
}
@@ -82,7 +81,7 @@ def _run_job(
8281
max_retries=0,
8382
),
8483
)
85-
job_response = anyscale_client.create_job(job_request)
84+
job_response = self._sdk.create_job(job_request)
8685
except Exception as e:
8786
raise JobStartupFailed(
8887
"Error starting job with name "
@@ -96,10 +95,6 @@ def _run_job(
9695
logger.info(f"Link to job: " f"{format_link(self.job_url)}")
9796
return
9897

99-
@property
100-
def sdk(self):
101-
return self.cluster_manager.sdk
102-
10398
@property
10499
def last_job_result(self):
105100
return self._last_job_result
@@ -131,9 +126,8 @@ def in_progress(self) -> bool:
131126
return self.last_job_result and self.last_job_status not in terminal_state
132127

133128
def _get_job_status_with_retry(self):
134-
anyscale_client = self.cluster_manager.sdk
135129
return exponential_backoff_retry(
136-
lambda: anyscale_client.get_production_job(self.job_id),
130+
lambda: self._sdk.get_production_job(self.job_id),
137131
retry_exceptions=Exception,
138132
initial_retry_delay_s=1,
139133
max_retries=3,
@@ -144,7 +138,7 @@ def _terminate_job(self, raise_exceptions: bool = False):
144138
return
145139
logger.info(f"Terminating job {self.job_id}...")
146140
try:
147-
self.sdk.terminate_job(self.job_id)
141+
self._sdk.terminate_job(self.job_id)
148142
logger.info(f"Job {self.job_id} terminated!")
149143
except Exception:
150144
msg = f"Couldn't terminate job {self.job_id}!"

release/ray_release/tests/test_anyscale_job_manager.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,34 @@
22

33
import pytest
44

5+
from ray_release.anyscale_util import Anyscale
6+
from ray_release.cluster_manager.cluster_manager import ClusterManager
57
from ray_release.job_manager.anyscale_job_manager import AnyscaleJobManager
8+
from ray_release.test import Test
69

710

811
class FakeJobResult:
912
def __init__(self, _id: str):
1013
self.id = _id
1114

1215

16+
class FakeSDK(Anyscale):
17+
def project_name_by_id(self, project_id: str) -> str:
18+
return "fake_project_name"
19+
20+
1321
def test_get_last_logs_long_running_job():
1422
"""Test calling get_last_logs() on long-running jobs.
1523
1624
When the job is running longer than 4 hours, get_last_logs() should skip
1725
downloading the logs and return None.
1826
"""
19-
anyscale_job_manager = AnyscaleJobManager(cluster_manager=None)
27+
fake_test = Test(name="fake_test")
28+
fake_sdk = FakeSDK()
29+
cluster_manager = ClusterManager(
30+
test=fake_test, project_id="fake_project_id", sdk=fake_sdk
31+
)
32+
anyscale_job_manager = AnyscaleJobManager(cluster_manager=cluster_manager)
2033
anyscale_job_manager._duration = 4 * 3_600 + 1
2134
anyscale_job_manager._last_job_result = FakeJobResult(_id="foo")
2235
assert anyscale_job_manager.get_last_logs() is None

0 commit comments

Comments
 (0)