def get_cmd_arguments()

in main.py [0:0]


def get_cmd_arguments():
    parser = argparse.ArgumentParser(description='Process command line arguments.',
                                     formatter_class=argparse.RawTextHelpFormatter)

    # ES variables
    parser.add_argument('--elasticsearch_host', action="store", dest='elasticsearch_host',
                        default=program_defaults["elasticsearch_host"],
                        help="Elasticsearch host.\nDefault: " + program_defaults["elasticsearch_host"])

    parser.add_argument('--elasticsearch_ca_path', action="store", dest='elasticsearch_ca_path',
                        default=program_defaults["elasticsearch_ca_path"],
                        help="Location of the Elasticsearch certificate.\nDefault: "
                             + program_defaults["elasticsearch_ca_path"])
    parser.add_argument('--elasticsearch_user', action="store", dest='elasticsearch_user',
                        default=program_defaults["elasticsearch_user"],
                        help="Name of the Elasticsearch user.\nDefault: " + program_defaults["elasticsearch_user"])
    parser.add_argument('--elasticsearch_pwd', action="store", dest='elasticsearch_pwd',
                        default=program_defaults["elasticsearch_pwd"],
                        help="Elasticsearch password.\nDefault: " + program_defaults["elasticsearch_pwd"])

    # Cloud variables
    parser.add_argument('--cloud_id', action="store", dest='cloud_id', default=program_defaults["cloud_id"],
                        help="The ID for Elastic Cloud. If set, it will overwrite every elasticsearch_* argument."
                             "\nDefault: " + program_defaults["cloud_id"])
    parser.add_argument('--cloud_pwd', action="store", dest='cloud_pwd', default=program_defaults["cloud_pwd"],
                        help="The password for Elastic Cloud. If set, it will overwrite every elasticsearch_* argument."
                             "\nDefault: " + program_defaults["cloud_pwd"])

    # Data stream name
    parser.add_argument('--data_stream', action="store", dest='data_stream', default=program_defaults["data_stream"],
                        help="The name of the data stream to migrate to TSDB.\nDefault: "
                             + program_defaults["data_stream"])

    # Reindex variables
    if program_defaults["docs_index"] == -1:
        default = "First index of the data stream"
    else:
        default = str(program_defaults["docs_index"])
    parser.add_argument('--docs_index', action="store", dest='docs_index', default=program_defaults["docs_index"],
                        help="The data stream index number to be used to retrieve the documents. "
                             "Count starts at 0. This means the index 0001 has docs_index 0, index 0002 has"
                             "the docs_index 1 and so on.\nDefault: " + default)

    if program_defaults["settings_mappings_index"] == -1:
        default = "Last index of the data stream"
    else:
        default = str(program_defaults["settings_mappings_index"])
    parser.add_argument('--settings_mappings_index', action="store", dest='settings_mappings_index',
                        default=program_defaults["settings_mappings_index"],
                        help="The data stream index number to be used to retrieve the mappings and settings. "
                             "Count starts at 0. This means the index 0001 has settings_mappings_index 0, index 0002 "
                             "has the settings_mappings_index 1 and so on.\nDefault: " + default)

    if program_defaults["max_docs"] == -1:
        default = "All documents from the data stream index docs_index."
    else:
        default = str(program_defaults["max_docs"])
    parser.add_argument('--max_docs', action="store", dest='max_docs', default=program_defaults["max_docs"],
                        help="The number of documents to retrieve from the index and reindex to the TSDB one."
                             "\nDefault: " + default)

    # Overlapping files configuration
    parser.add_argument('--get_overlapping_files', action="store", dest='get_overlapping_files',
                        default=program_defaults["get_overlapping_files"],
                        help="Flag to place the overwritten documents: documents will be placed if True, otherwise"
                             " if False.\nDefault: " + str(program_defaults["get_overlapping_files"]))
    parser.add_argument('--directory_overlapping_files', action="store", dest='directory_overlapping_files',
                        default=program_defaults["directory_overlapping_files"],
                        help="The directory path to place the overwritten documents.\nDefault: "
                             + program_defaults["directory_overlapping_files"])
    parser.add_argument('--display_docs', action="store", dest='display_docs',
                        default=program_defaults["display_docs"],
                        help="Number of documents overlapping used to display the dimensions."
                             "\nDefault: " + str(program_defaults["display_docs"]))
    parser.add_argument('--copy_docs_per_dimension', action="store", dest='copy_docs_per_dimension',
                        default=program_defaults["copy_docs_per_dimension"],
                        help="Number of documents to retrieve per set of dimensions that caused loss of data."
                             "\nDefault: " + str(program_defaults["copy_docs_per_dimension"]))

    args, unknown = parser.parse_known_args()
    if len(unknown) > 0:
        parser.print_help()
        print("\nUser provided unknown flags:", unknown)
        print("Program will end.")
        exit(0)
    return args