code: def setNNIManagerIp(experiment_config, port, config_file_name):
      '''set nniManagerIp'''
      if experiment_config.get('nniManagerIp') is None:
          return True, None
      ip_config_dict = dict()
      ip_config_dict['nni_manager_ip'] = { 'nniManagerIp' : experiment_config['nniManagerIp'] }
      response = rest_put(cluster_metadata_url(port), json.dumps(ip_config_dict), REST_TIME_OUT)
      err_message = None
      if not response or not response.status_code == 200:
          if response is not None:
              err_message = response.text
              _, stderr_full_path = get_log_path(config_file_name)
              with open(stderr_full_path, 'a+') as fout:
                  fout.write(json.dumps(json.loads(err_message), indent=4, sort_keys=True, separators=(',', ':')))
          return False, err_message
      return True, Nonf setNNIManagerIp(experiment_config, port, config_file_name):
      '''set nniManagerIp'''
      if experiment_config.get('nniManagerIp') is None:
          return True, None
      ip_config_dict = dict()
      ip_config_dict['nni_manager_ip'] = { 'nniManagerIp' : experiment_config['nniManagerIp'] }
      response = rest_put(cluster_metadata_url(port), json.dumps(ip_config_dict), REST_TIME_OUT)
      err_message = None
      if not response or not response.status_code == 200:
          if response is not None:
              err_message = response.text
              _, stderr_full_path = get_log_path(config_file_name)
              with open(stderr_full_path, 'a+') as fout:
                  fout.write(json.dumps(json.loads(err_message), indent=4, sort_keys=True, separators=(',', ':')))
          return False, err_message
      return True, None
docs: set nniManagerIp