code: def _test_master_restart_reattach_recover_experiment(
      restartable_managed_cluster: Cluster, downtime: int
  ) -> None:
      try:
          exp_id = exp.create_experiment(
              conf.fixtures_path("no_op/single-medium-train-step.yaml"),
              conf.fixtures_path("no_op"),
              None,
          )
  
          # TODO(ilia): don't wait for progress.
          exp.wait_for_experiment_workload_progress(exp_id)
  
          if downtime >= 0:
              restartable_managed_cluster.kill_master()
              time.sleep(downtime)
              restartable_managed_cluster.restart_master()
  
          exp.wait_for_experiment_state(
              exp_id, EXP_STATE.COMPLETED, max_wait_secs=downtime + 60
          )
          trials = exp.experiment_trials(exp_id)
  
          assert len(trials) == 1
          train_wls = exp.workloads_with_training(trials[0].workloads)
          assert len(train_wls) == 5
      except Exception:
          restartable_managed_cluster.restart_master()
          restartable_managed_cluster.restart_agent()
          raise
  
imports: import logging
  import subprocess
  import time
  import docker
  import pytest
  import requests
  from determined.common import constants
  from determined.common.api import authentication, task_is_ready, task_logs
  from determined.common.api.bindings import experimentv1State
  from tests import api_utils
  from tests import command
  from tests import config
  from tests import experiment
  from tests.cluster.test_users import det_spawn
  from .abstract_cluster import Cluster
  from .managed_cluster import ManagedCluster, get_agent_data
  from .managed_cluster_k8s import ManagedK8sCluster
  from .test_groups import det_cmd, det_cmd_json
  from .utils import assert_command_succeeded, run_command, wait_for_command_state, wait_for_task_state
label_desc: Use image node_id 6 for calling a global function with example usage: _test_master_restart_reattach_recover_experiment(restartable_managed_cluster, downtime) without return types