summaryrefslogtreecommitdiff
path: root/kpov_judge/add_task.py
diff options
context:
space:
mode:
Diffstat (limited to 'kpov_judge/add_task.py')
-rwxr-xr-xkpov_judge/add_task.py27
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},