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
14 query = builds_logic.BuildsLogic.get_waiting_builds(None)
15
16 builds = query[0:10]
17 return flask.jsonify({'builds': [build.to_dict(options = {'copr': {'owner': {},
18 '__columns_only__': ['id', 'name'],
19 '__included_ids__': False},
20 '__included_ids__': False}) for build in builds]})
21
25 to_update = {}
26 for build in flask.request.json['builds']:
27 to_update[build['id']] = build
28
29 if not to_update:
30 return json.dumps({'warning': 'No parsed builds'})
31
32 existing = {}
33 for build in builds_logic.BuildsLogic.get_by_ids(None, to_update.keys()).all():
34 existing[build.id] = build
35
36 non_existing_ids = list(set(to_update.keys()) - set(existing.keys()))
37
38 for i, build in existing.items():
39 builds_logic.BuildsLogic.update_state_from_dict(None, build, to_update[i])
40
41 db.session.commit()
42
43 return flask.jsonify({'updated_builds_ids': list(existing.keys()), 'non_existing_builds_ids': non_existing_ids})
44
50
55 to_update = {}
56 for action in flask.request.json['actions']:
57 to_update[action['id']] = action
58
59 if not to_update:
60 return json.dumps({'warning': 'No parsed actions'})
61
62 existing = {}
63 for action in models.Action.query.filter(models.Action.id.in_(to_update.keys())).all():
64 existing[action.id] = action
65
66 non_existing_ids = list(set(to_update.keys()) - set(existing.keys()))
67
68 for i, action in existing.items():
69 existing[i].result = to_update[i]['result']
70 existing[i].message = to_update[i]['message']
71 existing[i].ended_on = to_update[i]['ended_on']
72
73 db.session.commit()
74
75 return flask.jsonify({'updated_actions_ids': list(existing.keys()), 'non_existing_actions_ids': non_existing_ids})
76