From 48bc1af2da0a328e08f76304c9a2f3773d504b55 Mon Sep 17 00:00:00 2001 From: Edward Oakes Date: Mon, 15 Nov 2021 16:57:32 -0800 Subject: [PATCH] [job submission] Remove DOES_NOT_EXIST status (#20354) --- dashboard/modules/job/common.py | 5 ++--- dashboard/modules/job/job_head.py | 4 ++-- dashboard/modules/job/job_manager.py | 5 ++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/dashboard/modules/job/common.py b/dashboard/modules/job/common.py index 6ed25753f..01d01c0df 100644 --- a/dashboard/modules/job/common.py +++ b/dashboard/modules/job/common.py @@ -20,7 +20,6 @@ class JobStatus(str, Enum): def __str__(self): return f"{self.value}" - DOES_NOT_EXIST = "DOES_NOT_EXIST" PENDING = "PENDING" RUNNING = "RUNNING" STOPPED = "STOPPED" @@ -44,12 +43,12 @@ class JobStatusStorageClient: pickle.dumps(status), namespace=ray_constants.KV_NAMESPACE_JOB) - def get_status(self, job_id: str) -> JobStatus: + def get_status(self, job_id: str) -> Optional[JobStatus]: pickled_status = _internal_kv_get( self.JOB_STATUS_KEY.format(job_id=job_id), namespace=ray_constants.KV_NAMESPACE_JOB) if pickled_status is None: - return JobStatus.DOES_NOT_EXIST + return None else: return pickle.loads(pickled_status) diff --git a/dashboard/modules/job/job_head.py b/dashboard/modules/job/job_head.py index 6692af53c..0772c7233 100644 --- a/dashboard/modules/job/job_head.py +++ b/dashboard/modules/job/job_head.py @@ -66,8 +66,8 @@ class JobHead(dashboard_utils.DashboardHeadModule): status=aiohttp.web.HTTPBadRequest.status_code) def job_exists(self, job_id: str) -> bool: - status: JobStatus = self._job_manager.get_job_status(job_id) - return status != JobStatus.DOES_NOT_EXIST + status = self._job_manager.get_job_status(job_id) + return status is not None @routes.get("/api/packages/{protocol}/{package_name}") @_init_ray_and_catch_exceptions diff --git a/dashboard/modules/job/job_manager.py b/dashboard/modules/job/job_manager.py index 7f90fa3e1..ce2952932 100644 --- a/dashboard/modules/job/job_manager.py +++ b/dashboard/modules/job/job_manager.py @@ -207,7 +207,7 @@ class JobSupervisor: # clean up actor after tasks are finished ray.actor.exit_actor() - def _get_status(self) -> JobStatus: + def _get_status(self) -> Optional[JobStatus]: return self._status_client.get_status(self._job_id) def stop(self): @@ -290,8 +290,7 @@ class JobManager: """ if job_id is None: job_id = str(uuid4()) - elif self._status_client.get_status( - job_id) != JobStatus.DOES_NOT_EXIST: + elif self._status_client.get_status(job_id) is not None: raise RuntimeError(f"Job {job_id} already exists.") self._status_client.put_status(job_id, JobStatus.PENDING)