3 from __future__
import print_function
4 from contentValuesLib
import *
7 """ Option parser class """ 9 optparse.OptionParser.__init__(self, usage=
"%prog [options] root_file ...", version=
"%prog 0.0.1", conflict_handler=
"resolve")
10 self.add_option(
"--url", action=
"store", type=
"string", dest=
"url", default=SERVER_URL, help=
"specify DBS DQM XML-RPC server URL. Default is " + SERVER_URL)
11 self.add_option(
"--debug",
"-d", action=
"store_true", dest=
"debug", default=
False, help=
"print values and exit. Do not write to DBS")
12 self.add_option(
"--shift",
"-s", action=
"store", type=
"choice", dest=
"shift", default=
"offline", choices=(
"online",
"offline"), help=
"specify shift type: online or offline values allowed")
13 self.add_option(
"--filter",
"-f", action=
"store", type=
"string", dest=
"filter", default=
None, help=
"Specify filters in the form \"('subsystem','folder','value')\" in regexp expression. Default is None and this takes all the subsystems, all folders and allvalues")
15 if __name__ ==
"__main__":
19 (opts, args) = optManager.parse_args()
24 print(
"At least one ROOT file must be priovided, use --help for hit")
32 print(
"File [", rfile,
"] not exists or is not accessible?")
38 server = xmlrpclib.ServerProxy(opts[
'url'])
44 (run_number, values) =
getSummaryValues(file_name = rfile, shift_type = opts[
'shift'], translate =
True, filters = filter)
47 if run_number ==
None:
48 print(
"Run number does not determined. Skipping file: %s" % rfile)
52 print(
"Dataset name do not determined. Skipping file: %s" % rfile)
55 if values ==
None or len(values) == 0:
56 print(
"No content summary values found. Skipping file: %s" % rfile)
61 print(
"Run number: %d" % run_number)
62 print(
"Dataset: %s" % dataset)
63 print(
"Data: ", values)
65 result = server.insertdq_auto(run_number, dataset, values)
66 print(
"DBS DQM: %d rows modified for run %d dataset %s" % (result, run_number, dataset))
67 except xmlrpclib.Error
as errstring:
68 print(
"ERROR", errstring)
def getDatasetName(file_name)
S & print(S &os, JobReport::InputFile const &f)
def getSummaryValues(file_name, translate, filters=None)
def checkFilter(raw_filter)