code: def __init__(
      self,
      use_this_ip_addr=None,
      port=54321,
      capture_output=True,
      use_debugger=None,
      classpath=None,
      use_hdfs=False,
      use_maprfs=False,
      # hdfs_version="cdh4", hdfs_name_node="192.168.1.151",
      # hdfs_version="cdh3", hdfs_name_node="192.168.1.176",
      hdfs_version=None,
      hdfs_name_node=None,
      hdfs_config=None,
      aws_credentials=None,
      use_flatfile=False,
      java_heap_GB=None,
      java_heap_MB=None,
      java_extra_args=None,
      use_home_for_ice=False,
      node_id=None,
      username=None,
      random_udp_drop=False,
      redirect_import_folder_to_s3_path=None,
      redirect_import_folder_to_s3n_path=None,
      disable_h2o_log=False,
      enable_benchmark_log=False,
      h2o_remote_buckets_root=None,
      delete_keys_at_teardown=False,
      cloud_name=None,
  ):
      if use_hdfs:
          # see if we can touch a 0xdata machine
          try:
              # long timeout in ec2...bad
              a = requests.get("http://192.168.1.176:80", timeout=1)
              hdfs_0xdata_visible = True
          except:
              hdfs_0xdata_visible = False
  
          # different defaults, depending on where we're running
          if hdfs_name_node is None:
              if hdfs_0xdata_visible:
                  hdfs_name_node = "192.168.1.176"
              else:  # ec2
                  hdfs_name_node = "10.78.14.235:9000"
  
          if hdfs_version is None:
              if hdfs_0xdata_visible:
                  hdfs_version = "cdh3"
              else:  # ec2
                  hdfs_version = "0.20.2"
  
      self.redirect_import_folder_to_s3_path = (
          redirect_import_folder_to_s3_path
      )
      self.redirect_import_folder_to_s3n_path = (
          redirect_import_folder_to_s3n_path
      )
  
      self.aws_credentials = aws_credentials
      self.port = port
      # None is legal for self.addr.
      # means we won't give an ip to the jar when we start.
      # Or we can say use use_this_ip_addr=127.0.0.1, or the known address
      # if use_this_addr is None, use 127.0.0.1 for urls and json
      # Command line arg 'ipaddr_from_cmd_line' dominates:
      if H2O.ipaddr_from_cmd_line:
          self.addr = H2O.ipaddr_from_cmd_line
      else:
          self.addr = use_this_ip_addr
  
      if self.addr is not None:
          self.http_addr = self.addr
      else:
          self.http_addr = get_ip_address()
  
      # command line should always dominate for enabling
      if H2O.debugger:
          use_debugger = True
      self.use_debugger = use_debugger
  
      self.classpath = classpath
      self.capture_output = capture_output
  
      self.use_hdfs = use_hdfs
      self.use_maprfs = use_maprfs
      self.hdfs_name_node = hdfs_name_node
      self.hdfs_version = hdfs_version
      self.hdfs_config = hdfs_config
  
      self.use_flatfile = use_flatfile
      self.java_heap_GB = java_heap_GB
      self.java_heap_MB = java_heap_MB
      self.java_extra_args = java_extra_args
  
      self.use_home_for_ice = use_home_for_ice
      self.node_id = node_id
  
      if username:
          self.username = username
      else:
          self.username = getpass.getuser()
  
      # don't want multiple reports from tearDown and tearDownClass
      # have nodes[0] remember (0 always exists)
      self.sandbox_error_was_reported = False
      self.sandbox_ignore_errors = False
  
      self.random_udp_drop = random_udp_drop
      self.disable_h2o_log = disable_h2o_log
  
      # this dumps stats from tests, and perf stats while polling to benchmark.log
      self.enable_benchmark_log = enable_benchmark_log
      self.h2o_remote_buckets_root = h2o_remote_buckets_root
      self.delete_keys_at_teardown = delete_keys_at_teardown
  
      if cloud_name:
          self.cloud_name = cloud_name
      else:
          self.cloud_name = "pytest-%s-%s" % (
              getpass.getuser(),
              os.getpid(),
          )
  
imports: import sys, os, getpass, logging, time, inspect, requests, json, pprint
  import h2o_test_utils
  from h2o_test_utils import log, log_rest
  import h2o_print
label_desc: Use image node_id 1 to create a new H2O object from inherited base classes: object with example: obj = H2O(use_this_ip_addr, port, capture_output, use_debugger, classpath, use_hdfs, use_maprfs, hdfs_version, hdfs_name_node, hdfs_config, aws_credentials, use_flatfile, java_heap_GB, java_heap_MB, java_extra_args, use_home_for_ice, node_id, username, random_udp_drop, redirect_import_folder_to_s3_path, redirect_import_folder_to_s3n_path, disable_h2o_log, enable_benchmark_log, h2o_remote_buckets_root, delete_keys_at_teardown, cloud_name)