in ambari-infra-solr-client/src/main/python/migrationHelper.py [0:0]
def list_collections(options, config, output_file, include_number_of_docs=False):
dump_json_files_list=[]
skip_dump=False
if options.skip_json_dump_files:
dump_json_files_list=options.skip_json_dump_files.split(',')
if dump_json_files_list:
for dump_json_file in dump_json_files_list:
if output_file.endswith(dump_json_file):
skip_dump=True
if skip_dump:
print('Skipping collection dump file generation: {0}'.format(output_file))
if not os.path.exists(output_file):
print("{0}FAIL{1}: Collection dump file '{2}' does not exist.".format(colors.FAIL, colors.ENDC, output_file))
sys.exit(1)
else:
command_suffix = '--dump-collections --output {0}'.format(output_file)
if include_number_of_docs:
command_suffix+=' --include-doc-number'
solr_cli_command=create_infra_solr_client_command(options, config, command_suffix, appendZnode=True)
logger.debug("Solr cli command: {0}".format(solr_cli_command))
sys.stdout.write('Dumping collections data to {0} ... '.format(output_file))
sys.stdout.flush()
process = Popen(solr_cli_command, stdout=PIPE, stderr=PIPE, shell=True)
out, err = process.communicate()
if process.returncode != 0:
sys.stdout.write(colors.FAIL + 'FAILED\n' + colors.ENDC)
sys.stdout.flush()
raise Exception("{0} command failed: {1}".format(solr_cli_command, str(err)))
sys.stdout.write(colors.OKGREEN + 'DONE\n' + colors.ENDC)
sys.stdout.flush()
logger.debug(str(out))
collections_data = get_collections_data(output_file)
return list(collections_data.keys()) if collections_data is not None else []