コード例 #1
0
ファイル: index.py プロジェクト: AutoDQM/AutoDQM
def process(chunk_index, chunk_size, dqmSource, subsystem, data_series,
            data_sample, data_run, ref_series, ref_sample, ref_run):

    with make_dqm() as dqm:
        # Get root file paths
        data_path = dqm.fetch_run(dqmSource, subsystem, data_series,
                                  data_sample, data_run)
        ref_runs = []
        ref_paths = []
        for one_ref_run in ref_run.split('_'):
            ref_runs.append(one_ref_run)
            ref_paths.append(
                dqm.fetch_run(dqmSource, subsystem, ref_series, ref_sample,
                              one_ref_run))

    # Get config and results/plugins directories
    results_dir = os.path.join(VARS['PUBLIC'], 'results')
    plugin_dir = VARS['PLUGINS']
    config_dir = VARS['CONFIG']

    # Process this query
    results = compare_hists.process(chunk_index,
                                    chunk_size,
                                    config_dir,
                                    dqmSource,
                                    subsystem,
                                    data_series,
                                    data_sample,
                                    data_run,
                                    data_path,
                                    ref_series,
                                    ref_sample,
                                    ref_runs,
                                    ref_paths,
                                    output_dir=results_dir,
                                    plugin_dir=plugin_dir)

    # Relativize the results paths
    def relativize(p):
        return os.path.join(SITE_BASENAME + '/results',
                            os.path.relpath(p, results_dir))

    for r in results:
        r['pdf_path'] = relativize(r['pdf_path'])
        r['json_path'] = relativize(r['json_path'])
        r['png_path'] = relativize(r['png_path'])

    new_chunk_index = chunk_index + chunk_size
    if (len(results) == 0):
        new_chunk_index = -1

    return {'items': results, "chunk_index": new_chunk_index}
コード例 #2
0
ファイル: run-offline.py プロジェクト: AutoDQM/AutoDQM
def autodqm_offline(dqmSource, subsystem, data_run, data_sample, data_series,
                    ref_runs, ref_sample, ref_series, cfg_dir, output_dir,
                    plugin_dir, sslcert, sslkey, db):

    if not ref_sample:
        ref_sample = data_sample
    if not ref_series:
        ref_series = data_series

    print("Using cert/key pair:")
    print("\tCertificate: {}".format(sslcert))
    print("\tKey: {}".format(sslkey))
    cert = make_cert(sslcert, sslkey)

    # Get root files
    with DQMSession(cert, db) as dqm:
        print("\nGetting data root file...")
        data_path = get_run(dqm, dqmSource, subsystem, data_series,
                            data_sample, data_run)

        print("\nGetting reference root file(s)...")
        ref_paths = []
        for ref_run in ref_runs.split('_'):
            if dqmSource == 'Online':
                ref_series = '000' + ref_run[:2] + 'xxxx'
                ref_sample = '000' + ref_run[:4] + 'xx'
            ref_paths.append(
                get_run(dqm, dqmSource, subsystem, ref_series, ref_sample,
                        ref_run))

    print("\nProcessing results...")
    results = process(0,
                      9999,
                      cfg_dir,
                      dqmSource,
                      subsystem,
                      data_series,
                      data_sample,
                      data_run,
                      data_path,
                      ref_series,
                      ref_sample,
                      ref_runs.split('_'),
                      ref_paths,
                      output_dir=output_dir,
                      plugin_dir=plugin_dir)

    print("\nResults available in {}".format(output_dir))
    return results
コード例 #3
0
def process(subsystem, data_series, data_sample, data_run, ref_series,
            ref_sample, ref_run):

    # Get root file paths
    cert = make_cert()
    data_path = fetch.fetch(cert,
                            data_series,
                            data_sample,
                            data_run,
                            db=os.getenv('ADQM_DB'))
    ref_path = fetch.fetch(cert,
                           ref_series,
                           ref_sample,
                           ref_run,
                           db=os.getenv('ADQM_DB'))

    # Get config and results/plugins directories
    results_dir = os.path.join(os.getenv('ADQM_PUBLIC'), 'results')
    plugin_dir = os.getenv('ADQM_PLUGINS')
    with open(os.getenv('ADQM_CONFIG')) as config_file:
        config = json.load(config_file)

    # Process this query
    results = compare_hists.process(config,
                                    subsystem,
                                    data_series,
                                    data_sample,
                                    data_run,
                                    data_path,
                                    ref_series,
                                    ref_sample,
                                    ref_run,
                                    ref_path,
                                    output_dir=results_dir,
                                    plugin_dir=plugin_dir)

    # Relativize the results paths
    def relativize(p):
        return os.path.join('results', os.path.relpath(p, results_dir))

    for r in results:
        r['pdf_path'] = relativize(r['pdf_path'])
        r['json_path'] = relativize(r['json_path'])
        r['png_path'] = relativize(r['png_path'])

    return {'items': results}
コード例 #4
0
ファイル: run-offline.py プロジェクト: chosila/AutoDQM-1
def autodqm_offline(subsystem, data_run, data_sample, data_series, ref_run,
                    ref_sample, ref_series, cfg_dir, output_dir, plugin_dir,
                    sslcert, sslkey, db):

    if not ref_sample:
        ref_sample = data_sample
    if not ref_series:
        ref_series = data_series

    print("Using cert/key pair:")
    print("\tCertificate: {}".format(sslcert))
    print("\tKey: {}".format(sslkey))
    cert = make_cert(sslcert, sslkey)

    # Get root files
    with DQMSession(cert, db) as dqm:
        print('')
        print("Getting data root file...")
        data_path = get_run(dqm, data_series, data_sample, data_run)

        print('')
        print("Getting reference root file...")
        ref_path = get_run(dqm, ref_series, ref_sample, ref_run)

    print('')
    print("Processing results...")
    results = process(cfg_dir,
                      subsystem,
                      data_series,
                      data_sample,
                      data_run,
                      data_path,
                      ref_series,
                      ref_sample,
                      ref_run,
                      ref_path,
                      output_dir=output_dir,
                      plugin_dir=plugin_dir)

    print('')
    print("Results available in {}".format(output_dir))
    return results
コード例 #5
0
def autodqm_offline(subsystem, data_run, data_sample, data_series, ref_run,
                    ref_sample, ref_series, config_path, output_dir,
                    plugin_dir, sslcert, sslkey, cainfo):

    if not ref_sample:
        ref_sample = data_sample
    if not ref_series:
        ref_series = data_series

    print("Using cert/key pair:")
    print("\tCertificate: {}".format(sslcert))
    print("\tKey: {}".format(sslkey))
    cert = make_cert(sslcert, sslkey, cainfo)

    # Get root files
    print("Getting data root file...")
    data_path = fetch(cert, data_series, data_sample, data_run)
    print("Getting reference root file...")
    ref_path = fetch(cert, ref_series, ref_sample, ref_run)

    print("Loading configuration...")
    with open(config_path) as config_file:
        config = json.load(config_file)

    print("Processing results...")
    results = process(config,
                      subsystem,
                      data_series,
                      data_sample,
                      data_run,
                      data_path,
                      ref_series,
                      ref_sample,
                      ref_run,
                      ref_path,
                      output_dir=output_dir,
                      plugin_dir=plugin_dir)

    print("Results available in {}".format(output_dir))
    return results
コード例 #6
0
ファイル: index.py プロジェクト: chosila/AutoDQM-1
def process(subsystem, data_series, data_sample, data_run, ref_series,
            ref_sample, ref_run):

    with make_dqm() as dqm:
        # Get root file paths
        data_path = dqm.fetch_run(data_series, data_sample, data_run)
        ref_path = dqm.fetch_run(ref_series, ref_sample, ref_run)

    # Get config and results/plugins directories
    results_dir = os.path.join(VARS['PUBLIC'], 'results')
    plugin_dir = VARS['PLUGINS']
    config_dir = VARS['CONFIG']

    # Process this query
    results = compare_hists.process(config_dir,
                                    subsystem,
                                    data_series,
                                    data_sample,
                                    data_run,
                                    data_path,
                                    ref_series,
                                    ref_sample,
                                    ref_run,
                                    ref_path,
                                    output_dir=results_dir,
                                    plugin_dir=plugin_dir)

    # Relativize the results paths
    def relativize(p):
        return os.path.join('/results', os.path.relpath(p, results_dir))

    for r in results:
        r['pdf_path'] = relativize(r['pdf_path'])
        r['json_path'] = relativize(r['json_path'])
        r['png_path'] = relativize(r['png_path'])

    return {'items': results}