def _run_script():
    parser = argparse.ArgumentParser(
        description="Upload test reports to Kusto.",
        formatter_class=argparse.RawTextHelpFormatter,
        epilog="""
Examples:
python3 report_uploader.py tests/files/sample_tr.xml -e TRACKING_ID#22
""",
    )
    parser.add_argument("path_name",
                        metavar="path",
                        type=str,
                        help="A file/directory to upload.")
    parser.add_argument("db_name",
                        metavar="database",
                        type=str,
                        help="The Kusto DB to upload to.")
    parser.add_argument(
        "--external_id",
        "-e",
        type=str,
        help="An external tracking ID to append to the report.",
    )
    parser.add_argument(
        "--json",
        "-j",
        action="store_true",
        help="Load an existing test result JSON file from path_name.",
    )
    parser.add_argument(
        "--category",
        "-c",
        type=str,
        help="Type of data to upload (i.e. test_result, reachability, etc.)")

    args = parser.parse_args()
    kusto_db = KustoConnector(args.db_name)

    if args.category == "test_result":
        if args.json:
            test_result_json = validate_junit_json_file(args.path_name)
        else:
            roots = validate_junit_xml_path(args.path_name)
            test_result_json = parse_test_result(roots)

        tracking_id = args.external_id if args.external_id else ""

        kusto_db.upload_report(test_result_json, tracking_id)
    elif args.category == "reachability":
        with open(args.path_name) as f:
            reachability_data = json.load(f)

        kusto_db.upload_reachability_data(reachability_data)
    else:
        print('Unknown category "{}"'.format(args.category))
        sys.exit(1)
def _run_script():
    parser = argparse.ArgumentParser(
        description="Upload test reports to Kusto.",
        formatter_class=argparse.RawTextHelpFormatter,
        epilog="""
Examples:
python3 report_uploader.py tests/files/sample_tr.xml -e TRACKING_ID#22
""",
    )
    parser.add_argument("path_name",
                        metavar="path",
                        type=str,
                        help="A file/directory to upload.")
    parser.add_argument("db_name",
                        metavar="database",
                        type=str,
                        help="The Kusto DB to upload to.")
    parser.add_argument(
        "--external_id",
        "-e",
        type=str,
        help="An external tracking ID to append to the report.",
    )
    parser.add_argument(
        "--json",
        "-j",
        action="store_true",
        help="Load an existing test result JSON file from path_name.",
    )

    args = parser.parse_args()

    if args.json:
        test_result_json = validate_junit_json_file(args.path_name)
    else:
        roots = validate_junit_xml_path(args.path_name)
        test_result_json = parse_test_result(roots)

    tracking_id = args.external_id if args.external_id else ""

    kusto_db = KustoConnector(args.db_name)
    kusto_db.upload_report(test_result_json, tracking_id)
示例#3
0
def _run_script():
    parser = argparse.ArgumentParser(
        description="Upload test reports to Kusto.",
        formatter_class=argparse.RawTextHelpFormatter,
        epilog="""
Examples:
python3 report_uploader.py tests/files/sample_tr.xml -e TRACKING_ID#22
""",
    )
    parser.add_argument("path_list",
                        metavar="path",
                        nargs="+",
                        type=str,
                        help="list of file/directory to upload.")
    parser.add_argument("db_name",
                        metavar="database",
                        type=str,
                        help="The Kusto DB to upload to.")
    parser.add_argument(
        "--external_id",
        "-e",
        type=str,
        help="An external tracking ID to append to the report.",
    )
    parser.add_argument(
        "--json",
        "-j",
        action="store_true",
        help="Load an existing test result JSON file from path_name.",
    )
    parser.add_argument(
        "--category",
        "-c",
        type=str,
        help="Type of data to upload (i.e. test_result, reachability, etc.)")

    args = parser.parse_args()
    kusto_db = KustoConnector(args.db_name)

    if args.category == "test_result":
        tracking_id = args.external_id if args.external_id else ""
        report_guid = str(uuid.uuid4())
        for path_name in args.path_list:
            if "reboot_summary" in path_name or "reboot_report" in path_name:
                kusto_db.upload_reboot_report(path_name, report_guid)
            else:
                if args.json:
                    test_result_json = validate_junit_json_file(path_name)
                else:
                    roots = validate_junit_xml_path(path_name)
                    test_result_json = parse_test_result(roots)
                kusto_db.upload_report(test_result_json, tracking_id,
                                       report_guid)
    elif args.category == "reachability":
        reachability_data = []
        for path_name in args.path_list:
            with open(path_name) as f:
                reachability_data.extend(json.load(f))

        kusto_db.upload_reachability_data(reachability_data)
    elif args.category == "pdu_status":
        pdu_data = []
        for path_name in args.path_list:
            with open(path_name) as f:
                pdu_data.extend(json.load(f))

        kusto_db.upload_pdu_status_data(pdu_data)
    elif args.category == 'expected_runs':
        expected_runs = []
        for path_name in args.path_list:
            with open(path_name) as f:
                expected_runs.extend(json.load(f))
        kusto_db.upload_expected_runs(expected_runs)

    else:
        print('Unknown category "{}"'.format(args.category))
        sys.exit(1)