def main(): """Main routine. Registers the database file into the database. """ # Preparation options, args = parse_opt() datafile, dbfile = None, None if args: datafile, dbfile = args[0], args[1] else: datafile = gxpmake.testfile() cn = pyodbc.connect(config.db.connect_str) reg = register.GXPMakeRegister(cn) assert(cn) # Registration workflow_trial_id = 9999 if options.wt_id: workflow_trial_id = options.wt_id paratrac_prefix = options.paratrac # ParaTrac DB if exists if options.paratrac: import_paratrac(cn, reg, workflow_trial_id, paratrac_prefix) # COMMIT if options.finally_abort: reg.rollback() print "Abort OK" else: reg.commit() print "Registration OK"
def main(): """Main routine. Registers the database file into the database. """ # Preparation options, args = parse_opt() datafile, dbfile = None, None if args: datafile, dbfile = args[0], args[1] else: datafile = gxpmake.testfile() gmdb = gxpmake.GxpMakeDB(datafile) cn = pyodbc.connect(config.db.connect_str) reg = register.GXPMakeRegister(cn) workparpdb = register.WFPARPDB(dbfile) assert(cn) # Registration # TABLE WORKFLOW workflow_name = options.workflow_name workflow_id, isnew = reg.process_workflow(workflow_name) print "Workflow ID = %d, New: %s" % (workflow_id, str(isnew)) # TABLE WORKFLOW_CONDITION workflow_condition_id, isnew = reg.process_workflow_condition( options.filesystem, options.location, options.worker_num, options.input_dataset) print "Workflow Condition ID = %d, New: %s" % ( workflow_condition_id, str(isnew)) # TABLE WORKFLOW_TRIAL (Always new) start_timestamp, elapsed_time = workparpdb.start_ts, workparpdb.elapsed print start_timestamp, elapsed_time workflow_trial_id = reg.process_workflow_trial( workflow_id, workflow_condition_id, start_timestamp, elapsed_time) print "WorkflowTrial ID = %d" % (workflow_trial_id) ## Workers for w in workparpdb.workers: reg.process_worker(workflow_trial_id, w) ## For each job for row in gmdb.csvreader: # row has an inteface of csv.DictReader # TABLE APPLICATION appmatch = register.GXPMakeRegister.cmd2tuple(row["cmd"]) application_id, isnew = reg.process_application( workflow_id, appmatch.group("app")) if options.verbose > 1: print "Application ID = %d, New: %s" % (application_id, str(isnew)) # TABLE JOB job_id, isnew = reg.process_job(workflow_id, workflow_trial_id, application_id, row, appmatch.group("args")) if options.verbose > 1: print "Job ID = %d, New: %s" % (job_id, str(isnew)) # TODO: prepare data for metric # TABLE METRIC # ParaTrac DB if exists if options.paratrac: ptreg.import_paratrac(cn, reg, workflow_trial_id, options.paratrac, verbose=options.verbose) # COMMIT if options.finally_abort: reg.rollback() print "Abort OK" else: reg.commit() print "Registration OK"