code: def run_and_wait(
      self,
      cmd_to_run,
      env_vars,
      working_dir: Optional[str] = None,
      timeout: int = 120,
  ) -> Tuple[int, float]:
      cid = self._run_job(cmd_to_run, env_vars, working_dir=working_dir)
      return self._wait_job(cid, timeout)
  
file_path: ray/release/ray_release/job_manager/job_manager.py
imports: import os
  import time
  from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple
  from ray_release.cluster_manager.cluster_manager import ClusterManager
  from ray_release.exception import CommandTimeout
  from ray_release.logger import logger
  from ray_release.util import ANYSCALE_HOST, exponential_backoff_retry
label_desc: Use image node_id 6 for calling the JobManager obj's underlying member method code with example usage: obj.run_and_wait(cmd_to_run, env_vars, working_dir, timeout) and returns: self