code: def _local_environment_information(
      result: Result,
      cluster_manager: ClusterManager,
      command_runner: CommandRunner,
      build_timeout: int,
      cluster_timeout: int,
      no_terminate: bool,
      cluster_id: Optional[str],
      cluster_env_id: Optional[str],
  ) -> None:
      if isinstance(cluster_manager, FullClusterManager):
          if not no_terminate:
              register_handler(
                  lambda sig, frame: cluster_manager.terminate_cluster(
                      wait=True
                  )
              )
  
      # Start cluster
      if cluster_id:
          buildkite_group(":rocket: Using existing cluster")
          # Re-use existing cluster ID for development
          cluster_manager.cluster_id = cluster_id
          cluster_manager.cluster_name = get_cluster_name(cluster_id)
      else:
          buildkite_group(":gear: Building cluster environment")
  
          if cluster_env_id:
              cluster_manager.cluster_env_id = cluster_env_id
  
          cluster_manager.build_configs(timeout=build_timeout)
  
          if isinstance(cluster_manager, FullClusterManager):
              buildkite_group(":rocket: Starting up cluster")
              cluster_manager.start_cluster(timeout=cluster_timeout)
          elif isinstance(command_runner, AnyscaleJobRunner):
              command_runner.job_manager.cluster_startup_timeout = (
                  cluster_timeout
              )
  
      result.cluster_url = cluster_manager.get_cluster_url()
      result.cluster_id = cluster_manager.cluster_id
  
imports: import os
  import time
  import traceback
  from typing import Optional, List, Tuple
  from ray_release.alerts.handle import handle_result, require_result
  from ray_release.anyscale_util import get_cluster_name
  from ray_release.buildkite.output import buildkite_group, buildkite_open_last
  from ray_release.cluster_manager.cluster_manager import ClusterManager
  from ray_release.cluster_manager.full import FullClusterManager
  from ray_release.cluster_manager.minimal import MinimalClusterManager
  from ray_release.command_runner.job_runner import JobRunner
  from ray_release.command_runner.command_runner import CommandRunner
  from ray_release.command_runner.anyscale_job_runner import AnyscaleJobRunner
  from ray_release.test import Test
  from ray_release.config import DEFAULT_BUILD_TIMEOUT, DEFAULT_CLUSTER_TIMEOUT, DEFAULT_COMMAND_TIMEOUT, DEFAULT_WAIT_FOR_NODES_TIMEOUT, RELEASE_PACKAGE_DIR, DEFAULT_AUTOSUSPEND_MINS
  from ray_release.template import load_test_cluster_compute
  from ray_release.exception import ReleaseTestConfigError, ReleaseTestSetupError, CommandError, PrepareCommandError, CommandTimeout, PrepareCommandTimeout, TestCommandError, TestCommandTimeout, ClusterEnvCreateError
  from ray_release.file_manager.job_file_manager import JobFileManager
  from ray_release.logger import logger
  from ray_release.reporter.reporter import Reporter
  from ray_release.result import Result, ResultStatus, handle_exception
  from ray_release.signal_handling import setup_signal_handling, reset_signal_handling, register_handler
label_desc: Use image node_id 4 for calling a global function with example usage: _local_environment_information(result, cluster_manager, command_runner, build_timeout, cluster_timeout, no_terminate, cluster_id, cluster_env_id) without return types