code: def status(self):
      if not self.is_done:
          if bool(self._job["status"].get("active")):
              if self._pod:
                  msg = (
                      "Pod is %s"
                      % self._pod.get("status", {})
                      .get("phase", "uninitialized")
                      .lower()
                  )
                  # TODO (savin): parse Pod conditions
                  container_status = (
                      self._pod["status"].get("container_statuses")
                      or [None]
                  )[0]
                  if container_status:
                      # We have a single container inside the pod
                      status = {"status": "waiting"}
                      for k, v in container_status["state"].items():
                          if v is not None:
                              status["status"] = k
                              status.update(v)
                      msg += (
                          ", Container is %s" % status["status"].lower()
                      )
                      reason = ""
                      if status.get("reason"):
                          pass
                          reason = status["reason"]
                      if status.get("message"):
                          reason += " - %s" % status["message"]
                      if reason:
                          msg += " - %s" % reason
                  return msg
              return "Job is active"
          return "Job status is unknown"
      return "Job is done"
  
imports: import json
  import math
  import random
  import time
  from metaflow.tracing import inject_tracing_vars
  from metaflow.exception import MetaflowException
  from metaflow.metaflow_config import KUBERNETES_SECRETS
label_desc: Use image node_id 8 for calling the RunningJob obj's underlying member method code with example usage: obj.status() and returns: str, str, str, msg