Пример #1
0
Файл: ptreg.py Проект: kabe/parp
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"
Пример #2
0
Файл: gmreg.py Проект: kabe/parp
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"