code: def _validate_cooldown_range(cooldown_range):
      cooldown_lower_limit, cooldown_upper_limit = cooldown_range
  
      if cooldown_lower_limit < DEFAULT_COOLDOWN_LOWER_LIMIT_SECONDS:
          raise ValueError(
              f"Provided cooldown lower limit: {cooldown_lower_limit} \
                               cannot be lower than default cooldown lower limit: {DEFAULT_COOLDOWN_LOWER_LIMIT_SECONDS}"
          )
  
      if cooldown_upper_limit > DEFAULT_COOLDOWN_UPPER_LIMIT_SECONDS:
          raise ValueError(
              f"Provided cooldown upper limit: {cooldown_upper_limit} \
                               cannot be higher than default cooldown upper limit: {DEFAULT_COOLDOWN_UPPER_LIMIT_SECONDS}"
          )
  
imports: import io
  import logging
  import random
  import threading
  import time
  from collections import defaultdict
  from horovod.runner.common.util import safe_shell_exec
  from horovod.runner.elastic.worker import HostUpdateResult
label_desc: Use image node_id 2 for calling the HostState obj's underlying member method code with example usage: obj._validate_cooldown_range(cooldown_range) without return types