diff options
Diffstat (limited to 'kpov_judge/add_task.py')
-rwxr-xr-x | kpov_judge/add_task.py | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/kpov_judge/add_task.py b/kpov_judge/add_task.py index ce6713b..4fa250f 100755 --- a/kpov_judge/add_task.py +++ b/kpov_judge/add_task.py @@ -50,27 +50,28 @@ if __name__ == '__main__': except Exception as e: print("Not authenticated:"+str(e)) #no auth or auth config? + source = open(fname).read() - code = compile(source, fname, 'exec') - # the following line creates: - # task, task_check, gen_params, prepare_disks, computers, params_meta. - exec(code) - public_meta = dict() - for k, v in params_meta.items(): + d = {} + # defines task, task_check, gen_params, prepare_disks, computers, params_meta + exec(compile(source, fname, 'exec'), d) + + public_meta = {} + for k, v in d['params_meta'].items(): if v.get('public', False): public_meta[k] = v task_source = "\n\n".join([ - inspect.getsource(task), + inspect.getsource(d['task']), uploading_task_check_source, "params_meta = {}".format(public_meta), dummy_gen_params_source]) - task_check_source = inspect.getsource(task_check) - gen_params_source = inspect.getsource(gen_params) - prepare_disks_source = inspect.getsource(prepare_disks) - x = list(params_meta.keys()) # check for existence + task_check_source = inspect.getsource(d['task_check']) + gen_params_source = inspect.getsource(d['gen_params']) + prepare_disks_source = inspect.getsource(d['prepare_disks']) + x = list(d['params_meta'].keys()) # check for existence db.computers_meta.remove({'task_id': task_id, 'class_id': class_id}) auto_networks = set([None]) - for k, v in computers.items(): + for k, v in d['computers'].items(): for n in v.get('networks_interfaces', []): auto_networks.add(n.get('network', None)) db.computers_meta.update({ @@ -98,7 +99,7 @@ if __name__ == '__main__': db.gen_params.update({'task_id': task_id, 'class_id': class_id}, {'$set': {'source': gen_params_source}}, upsert=True) db.task_params_meta.update({'task_id': task_id, 'class_id': class_id}, - {'$set': {'params': params_meta}}, upsert=True) + {'$set': {'params': d['params_meta']}}, upsert=True) #instructions = dict([(k, v.encode('utf8')) for k, v in instructions.iteritems()]) #print instructions db.task_instructions.update({'task_id': task_id, 'class_id': class_id}, |