Example #1
0
def test_extract_find_assign_args():
    raw = "func_find:ip=127.0.0.1:port=13950"
    fname, args, kwargs = extract_find_assign_args(raw)
    assert fname == "func_find"
    assert args == []
    assert kwargs == {'ip': '127.0.0.1', 'port': '13950'}
    raw = "assign_remote:password=passwith==:False:True:=:=="
    fname, args, kwargs = extract_find_assign_args(raw)
    assert fname == "assign_remote"
    assert kwargs == {'password': '******'}
    assert args == ['False', 'True', '=', '==']
Example #2
0
File: job.py Project: oar-team/oar3
def get_jobs_types(jids, jobs):
    import oar.kao.advanced_scheduling
    jobs_types = {}
    for j_type in db.query(JobType).filter(JobType.job_id.in_(tuple(jids))):
        jid = j_type.job_id
        job = jobs[jid]
        t_v = j_type.type.split("=")
        t = t_v[0]
        if t == "timesharing":
            job.ts = True
            job.ts_user, job.ts_name = t_v[1].split(',')
        elif t == "placeholder":
            job.ph = PLACEHOLDER
            job.ph_name = t_v[1]
        elif t == "allow":
            job.ph = ALLOW
            job.ph_name = t_v[1]
        elif t == "assign":
            job.assign = True
            raw_args = '='.join(t_v[1:])
            funcname, job.assign_args, job.assign_kwargs = extract_find_assign_args(raw_args)
            job.assign_func = getattr(oar.kao.advanced_scheduling, 'assign_%s' % funcname)
        elif t == "find":
            job.find = True
            raw_args = '='.join(t_v[1:])
            funcname, job.find_args, job.find_kwargs = extract_find_assign_args(raw_args)
            job.find_func = getattr(oar.kao.advanced_scheduling, 'find_%s' % funcname)
        else:
            if len(t_v) == 2:
                v = t_v[1]
            else:
                v = ""
            if jid not in jobs_types:
                jobs_types[jid] = dict()

            (jobs_types[jid])[t] = v

    for job in itervalues(jobs):
        if job.id in jobs_types:
            job.types = jobs_types[job.id]
        else:
            job.types = {}