def evaluate_check_shard_result()

in ambari-infra-solr-client/src/main/python/migrationHelper.py [0:0]


def evaluate_check_shard_result(collection, result, skip_index_size = False):
  evaluate_result = {}
  active_shards = result['active_shards']
  all_shards = result['all_shards']
  warnings = 0
  print(30 * "-")
  print("Number of shards: {0}".format(str(len(all_shards))))
  for shard in all_shards:
    if shard in active_shards:
      print("{0}OK{1}: Found active leader replica for {2}" \
        .format(colors.OKGREEN, colors.ENDC, shard))
    else:
      warnings=warnings+1
      print("{0}WARNING{1}: Not found any active leader replicas for {2}, migration will probably fail, fix or delete the shard if it is possible." \
        .format(colors.WARNING, colors.ENDC, shard))

  if not skip_index_size:
    index_size_map = result['index_size_map']
    host_index_size_map = result['host_index_size_map']
    if index_size_map:
      print("Index size per shard for {0}:".format(collection))
      for shard in index_size_map:
        print(" - {0}: {1}".format(shard, human_size(index_size_map[shard])))
    if host_index_size_map:
      print("Index size per host for {0} (consider this for backup): ".format(collection))
      for host in host_index_size_map:
        print(" - {0}: {1}".format(host, human_size(host_index_size_map[host])))
      evaluate_result['host_index_size_map'] = host_index_size_map
  print(30 * "-")
  evaluate_result['warnings'] = warnings
  return evaluate_result