def _upload_working_dir_if_needed(self, runtime_env: Dict[str, Any]): def _upload_fn(working_dir, excludes): self._upload_package_if_needed(working_dir, include_parent_dir=False, excludes=excludes) upload_working_dir_if_needed(runtime_env, upload_fn=_upload_fn)
def _server_init(self, job_config: JobConfig, ray_init_kwargs: Optional[Dict[str, Any]] = None): """Initialize the server""" if ray_init_kwargs is None: ray_init_kwargs = {} try: if job_config is None: serialized_job_config = None else: with tempfile.TemporaryDirectory() as tmp_dir: runtime_env = job_config.runtime_env or {} runtime_env = upload_py_modules_if_needed(runtime_env, tmp_dir, logger=logger) runtime_env = upload_working_dir_if_needed(runtime_env, tmp_dir, logger=logger) # Remove excludes, it isn't relevant after the upload step. runtime_env.pop("excludes", None) job_config.set_runtime_env(runtime_env) serialized_job_config = pickle.dumps(job_config) response = self.data_client.Init( ray_client_pb2.InitRequest( job_config=serialized_job_config, ray_init_kwargs=json.dumps(ray_init_kwargs), reconnect_grace_period=self._reconnect_grace_period)) if not response.ok: raise ConnectionAbortedError( f"Initialization failure from server:\n{response.msg}") except grpc.RpcError as e: raise decode_exception(e)