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', '=', '==']
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 = {}