code: def _terminate_job(self, raise_exceptions: bool = False):
      if not self.in_progress:
          return
      logger.info(f"Terminating job {self.job_id}...")
      try:
          self.sdk.terminate_job(self.job_id)
          logger.info(f"Job {self.job_id} terminated!")
      except Exception:
          msg = f"Couldn't terminate job {self.job_id}!"
          if raise_exceptions:
              logger.error(msg)
              raise
          else:
              logger.exception(msg)
  
imports: import os
  import time
  import subprocess
  import tempfile
  from collections import deque
  from contextlib import contextmanager
  from typing import Any, Dict, Optional, Tuple, List
  from anyscale.sdk.anyscale_client.models import CreateProductionJob, HaJobStates
  from ray_release.anyscale_util import LAST_LOGS_LENGTH, get_cluster_name
  from ray_release.cluster_manager.cluster_manager import ClusterManager
  from ray_release.exception import CommandTimeout, JobStartupTimeout, JobStartupFailed
  from ray_release.logger import logger
  from ray_release.signal_handling import register_handler, unregister_handler
  from ray_release.util import ANYSCALE_HOST, ERROR_LOG_PATTERNS, exponential_backoff_retry, anyscale_job_url, format_link
label_desc: Use image node_id 11 for calling the AnyscaleJobManager obj's underlying member method code with example usage: obj._terminate_job(raise_exceptions) without return types