Package coprs :: Package logic :: Module api_logic
[hide private]
[frames] | no frames]

Source Code for Module coprs.logic.api_logic

 1  """ 
 2      This module contains logic for Copr API. 
 3   
 4      xWrapper classes add helper methods 
 5      to [de]serialize model instances for API views. 
 6  """ 
 7   
 8   
9 -class BuildWrapper(object):
10 - def __init__(self, build):
11 """ 12 :arg build: copr.models.Build 13 """ 14 self.build = build
15
16 - def to_dict(self):
17 out = {} 18 for field in ["id", "pkg_version", "status", "state", 19 "canceled", "repos", "submitted_on", "started_on", 20 "ended_on", "results", "memory_reqs", "timeout"]: 21 out[field] = getattr(self.build, field, None) 22 23 out["src_pkg"] = self.build.pkgs 24 build_packages = self.build.built_packages 25 if build_packages: 26 out["built_packages"] = build_packages.split("\n") 27 else: 28 out["built_packages"] = [] 29 30 return out
31 32
33 -class MonitorWrapper(object):
34 - def __init__(self, monitor_data):
35 """ 36 :arg monitor_data: dict with fields: 37 "builds": list of models.Build, 38 "chroots": list of chroot names 39 "packages": tuple (pkg_name, pkg_version, build_results), 40 "latest_build": models.Build, 41 """ 42 self.monitor_data = monitor_data
43
44 - def to_dict(self):
45 out = {} 46 chroots = self.monitor_data["chroots"] 47 out["chroots"] = chroots 48 out["builds"] = [ 49 BuildWrapper(build).to_dict() 50 for build in self.monitor_data["builds"] 51 ] 52 out["packages"] = [ 53 { 54 "pkg_name": pkg[0], 55 "pkg_version": pkg[1], 56 "results": dict(zip(chroots, pkg[2])) 57 } 58 for pkg in self.monitor_data["packages"] 59 ] 60 return out
61