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