Package coprs :: Package views :: Package apiv3_ns :: Module apiv3_build_chroots
[hide private]
[frames] | no frames]

Source Code for Module coprs.views.apiv3_ns.apiv3_build_chroots

 1  import flask 
 2  from coprs.views.apiv3_ns import apiv3_ns 
 3  from coprs import models 
 4  from coprs.logic.builds_logic import BuildChrootsLogic 
 5  from coprs.logic.coprs_logic import CoprChrootsLogic 
 6  from coprs.logic.complex_logic import BuildConfigLogic, ComplexLogic 
 7  from . import query_params, pagination, Paginator, GET 
8 9 10 -def to_dict(build_chroot):
11 return { 12 "name": build_chroot.name, 13 "started_on": build_chroot.started_on, 14 "ended_on": build_chroot.ended_on, 15 "result_url": build_chroot.result_dir_url, 16 "state": build_chroot.state, 17 }
18
19 20 -def build_config(build_chroot):
21 config = BuildConfigLogic.generate_build_config(build_chroot.build.copr, build_chroot.name) 22 copr_chroot = CoprChrootsLogic.get_by_name_safe(build_chroot.build.copr, build_chroot.name) 23 dict_data = { 24 "repos": config.get("repos"), 25 "additional_repos": BuildConfigLogic.generate_additional_repos(copr_chroot), 26 "additional_packages": config.get("additional_packages"), 27 "with_opts": config.get("with_opts"), 28 "without_opts": config.get("without_opts"), 29 "memory_limit": build_chroot.build.memory_reqs, 30 "timeout": build_chroot.build.timeout, 31 "enable_net": build_chroot.build.enable_net, 32 "is_background": build_chroot.build.is_background, 33 } 34 dict_data.update( 35 BuildConfigLogic.build_bootstrap_setup(config, build_chroot.build)) 36 return dict_data
37
38 39 @apiv3_ns.route("/build-chroot/<int:build_id>/<chrootname>", methods=GET) 40 -def get_build_chroot(build_id, chrootname):
41 chroot = ComplexLogic.get_build_chroot(build_id, chrootname) 42 return flask.jsonify(to_dict(chroot))
43
44 45 @apiv3_ns.route("/build-chroot/list/<int:build_id>", methods=GET) 46 @pagination() 47 @query_params() 48 -def get_build_chroot_list(build_id, **kwargs):
49 query = BuildChrootsLogic.filter_by_build_id(BuildChrootsLogic.get_multiply(), build_id) 50 paginator = Paginator(query, models.BuildChroot, **kwargs) 51 chroots = paginator.map(to_dict) 52 return flask.jsonify(items=chroots, meta=paginator.meta)
53
54 55 @apiv3_ns.route("/build-chroot/build-config/<int:build_id>/<chrootname>", methods=GET) 56 -def get_build_chroot_config(build_id, chrootname):
57 chroot = ComplexLogic.get_build_chroot(build_id, chrootname) 58 return flask.jsonify(build_config(chroot))
59