in ambari-infra-solr-client/src/main/python/migrationHelper.py [0:0]
def generate_core_pairs(original_collection, collection, config, options):
core_pairs_data={}
original_cores={}
original_collections_data = get_collections_data(COLLECTIONS_DATA_JSON_LOCATION.format("backup_collections.json"))
if original_collection in original_collections_data and 'leaderCoreHostMap' in original_collections_data[original_collection]:
original_cores = original_collections_data[original_collection]['leaderCoreHostMap']
sorted_original_cores=[]
for key in sorted(original_cores):
sorted_original_cores.append((key, original_cores[key]))
new_cores={}
collections_data = get_collections_data(COLLECTIONS_DATA_JSON_LOCATION.format("restore_collections.json"))
if collection in collections_data and 'leaderCoreHostMap' in collections_data[collection]:
new_cores = collections_data[collection]['leaderCoreHostMap']
sorted_new_cores=[]
for key in sorted(new_cores):
sorted_new_cores.append((key, new_cores[key]))
if len(new_cores) < len(original_cores):
raise Exception("Old collection core size is: " + str(len(new_cores)) +
". You will need at least: " + str(len(original_cores)))
else:
for index, original_core_data in enumerate(sorted_original_cores):
core_pairs_data[sorted_new_cores[index][0]]=original_core_data[0]
with open(COLLECTIONS_DATA_JSON_LOCATION.format(collection + "/restore_core_pairs.json"), 'w') as outfile:
json.dump(core_pairs_data, outfile)
return core_pairs_data