class_docstr: helm env class wrapper
class_docstr_tok: ["helm","env","class","wrapper"]
code: def start_up(self, helm_path, helm_install_params):
      if "namespace" in helm_install_params:
          self._name_space = helm_install_params["namespace"]
      server_name = helm_install_params["server_name"]
      server_tag = (
          helm_install_params["server_tag"]
          if "server_tag" in helm_install_params
          else None
      )
      server_config = (
          helm_install_params["server_config"]
          if "server_config" in helm_install_params
          else None
      )
      milvus_config = helm_install_params["milvus_config"]
      image_tag = helm_install_params["image_tag"]
      image_type = helm_install_params["image_type"]
  
      logger.debug(self.deploy_mode)
      server_config = helm_utils.update_server_config(
          server_name, server_tag, server_config
      )
      # update values
      values_file_path = helm_path + "/values.yaml"
      if not os.path.exists(values_file_path):
          raise Exception(
              "File {} not existed".format(values_file_path)
          )
      lock_file_path = helm_path + "/values.yaml.lock"
      start_time = time.time()
      while (
          os.path.exists(lock_file_path)
          and time.time() < start_time + TIMEOUT
      ):
          logger.debug("Waiting for the lock file to release")
          time.sleep(1)
      if not os.path.exists(lock_file_path):
          # generate lock file
          open(lock_file_path, "a").close()
      try:
          if milvus_config:
              helm_utils.update_values(
                  values_file_path,
                  self.deploy_mode,
                  server_name,
                  server_tag,
                  milvus_config,
                  server_config,
              )
              logger.debug(
                  "Config file has been updated, remove the lock file"
              )
          os.system("rm -rf %s" % lock_file_path)
          logger.debug("Start install server")
          hostname = helm_utils.helm_install_server(
              helm_path,
              self.deploy_mode,
              image_tag,
              image_type,
              self.name,
              self._name_space,
          )
          status_cmd = 'kubectl get pods -n milvus -l release=zong-standalone -o=jsonpath=\'{range .items[*]}{.metadata.name}{"\t"}{.status.phase}{"\n"}{end}\''
          if not hostname:
              logger.error("Helm install server failed")
              return False
          else:
              self.set_hostname(hostname)
              while not helm_utils.running_status(
                  self.name, self._name_space
              ):
                  pass
              else:
                  return hostname
      except Exception as e:
          os.system("rm -rf %s" % lock_file_path)
          logger.error("Helm install server failed: %s" % (str(e)))
          logger.error(traceback.format_exc())
          return False
  
file_path: milvus/tests/benchmark/milvus_benchmark/env/helm.py
imports: import os
  import time
  import pdb
  import logging
  import traceback
  from milvus_benchmark.env import helm_utils
  from milvus_benchmark.env.base import BaseEnv
  from milvus_benchmark import config
label_desc: Use image node_id 2 for calling the HelmEnv obj's underlying member method code with example usage: obj.start_up(helm_path, helm_install_params) and returns: False, False, hostname