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}
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
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}
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
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
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}