code: def get_instance_state(
      self, instance_id: str, region: str
  ) -> InstanceState:
      instance = self.api_client.client.instances.get_by_id(instance_id)
  
      # TODO 404 NOT_FOUND = "not_found"
      # TODO other statuses
  
      state_map = {
          "provisioning": InstanceState.PROVISIONING,
          "running": InstanceState.RUNNING,
          "offline": InstanceState.STOPPED,
          "discontinued": InstanceState.TERMINATED,
      }
      status = state_map.get(instance.status, InstanceState.NOT_FOUND)
      return status
  
file_path: dstack/src/dstack/_internal/core/backends/datacrunch/compute.py
imports: from typing import Dict, List, Optional
  from dstack._internal.core.backends.base import Compute
  from dstack._internal.core.backends.base.compute import get_shim_commands
  from dstack._internal.core.backends.base.offers import get_catalog_offers
  from dstack._internal.core.backends.datacrunch.api_client import DataCrunchAPIClient
  from dstack._internal.core.backends.datacrunch.config import DataCrunchConfig
  from dstack._internal.core.errors import BackendError
  from dstack._internal.core.models.backends.base import BackendType
  from dstack._internal.core.models.instances import InstanceAvailability, InstanceOffer, InstanceOfferWithAvailability, InstanceState, LaunchedInstanceInfo
  from dstack._internal.core.models.runs import Job, Requirements, Run
label_desc: Use image node_id 4 for calling the DataCrunchCompute obj's underlying member method code with example usage: obj.get_instance_state(instance_id, region) and returns: status