1 import flask
2
3 from coprs import db
4 from coprs import helpers
5 from coprs import models
6
7 from coprs.logic import builds_logic
8
9 from coprs.views import misc
10 from coprs.views.backend_ns import backend_ns
15 query = builds_logic.BuildsLogic.get_waiting_builds(None)
16
17 builds = query[0:10]
18 return flask.jsonify({'builds': [build.to_dict(options = {'copr': {'owner': {},
19 '__columns_only__': ['id', 'name'],
20 '__included_ids__': False},
21 '__included_ids__': False}) for build in builds]})
22
27 to_update = {}
28 for build in flask.request.json['builds']:
29 to_update[build['id']] = build
30
31 if not to_update:
32 return json.dumps({'warning': 'No parsed builds'})
33
34 existing = {}
35 for build in builds_logic.BuildsLogic.get_by_ids(None, to_update.keys()).all():
36 existing[build.id] = build
37
38 non_existing_ids = list(set(to_update.keys()) - set(existing.keys()))
39
40 for i, build in existing.items():
41 builds_logic.BuildsLogic.update_state_from_dict(None, build, to_update[i])
42
43 db.session.commit()
44
45 return flask.jsonify({'updated_builds_ids': list(existing.keys()), 'non_existing_builds_ids': non_existing_ids})
46
53
59 to_update = {}
60 for action in flask.request.json['actions']:
61 to_update[action['id']] = action
62
63 if not to_update:
64 return json.dumps({'warning': 'No parsed actions'})
65
66 existing = {}
67 for action in models.Action.query.filter(models.Action.id.in_(to_update.keys())).all():
68 existing[action.id] = action
69
70 non_existing_ids = list(set(to_update.keys()) - set(existing.keys()))
71
72 for i, action in existing.items():
73 existing[i].result = to_update[i]['result']
74 existing[i].message = to_update[i]['message']
75 existing[i].ended_on = to_update[i]['ended_on']
76
77 db.session.commit()
78
79 return flask.jsonify({'updated_actions_ids': list(existing.keys()), 'non_existing_actions_ids': non_existing_ids})
80