def _run_rename_benchmark()

in perfmetrics/scripts/hns_rename_folders_metrics/renaming_benchmark.py [0:0]


def _run_rename_benchmark(test_type,dir_config,num_samples,upload_gs):
  with open(os.path.abspath(dir_config)) as file:
    dir_str = json.load(file)

  exit_code = _check_for_config_file_inconsistency(dir_str)
  if exit_code != 0:
    log.error('Exited with code {}'.format(exit_code))
    sys.exit(1)

  # Check if test data exists.
  dir_structure_present = _check_if_dir_structure_exists(dir_str)
  if not dir_structure_present:
    log.error("Test data does not exist.To create test data, run : \
        python3 generate_folders_and_files.py {} ".format(dir_config))
    sys.exit(1)

  # Getting latency related metrics
  results,time_intervals=_perform_testing(dir_str, test_type, num_samples)
  parsed_metrics = _parse_results(dir_str, results, num_samples)
  upload_values = _get_values_to_export(dir_str, parsed_metrics,
                                             test_type)

  print('Waiting for 360 seconds for metrics to be updated on VM...')
  # It takes up to 240 seconds for sampled data to be visible on the VM metrics graph
  # So, waiting for 360 seconds to ensure the returned metrics are not empty.
  # Intermittently custom metrics are not available after 240 seconds, hence
  # waiting for 360 secs instead of 240 secs
  time.sleep(360)

  # Getting VM related metrics
  folders_list=[]
  for folder in dir_str["folders"]["folder_structure"]:
    folders_list.append(folder["name"])
  folders_list.append(dir_str["nested_folders"]["folder_name"])

  vm_metrics_data= _extract_vm_metrics(time_intervals,folders_list)
  upload_values_vm_metrics= _get_upload_value_for_vm_metrics(vm_metrics_data)

  if upload_gs:
    log.info('Uploading files to the Google Sheet\n')
    if test_type == "flat":
      worksheet= WORKSHEET_NAME_FLAT
      vm_worksheet= WORKSHEET_VM_METRICS_FLAT
    else:
      worksheet= WORKSHEET_NAME_HNS
      vm_worksheet= WORKSHEET_VM_METRICS_HNS

    exit_code = _upload_to_gsheet(worksheet, upload_values, SPREADSHEET_ID)
    if exit_code != 0 :
      log.error("Upload to gsheet failed!")

    exit_code = _upload_to_gsheet(vm_worksheet, upload_values_vm_metrics, SPREADSHEET_ID)
    if exit_code != 0 :
      log.error("Upload to gsheet failed!")
  else:
    print('Latency related metrics: {}'.format(upload_values))
    print('VM metrics: {}'.format(upload_values_vm_metrics))