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 . import query_params, pagination, Paginator, GET 
 3  from coprs.views.apiv3_ns import apiv3_ns 
 4  from coprs.helpers import generate_build_config, generate_additional_repos 
 5  from coprs import db, models, forms 
 6  from coprs.logic.builds_logic import BuildChrootsLogic, BuildsLogic 
 7  from coprs.logic.coprs_logic import CoprChrootsLogic 
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 }
17
18 19 -def build_config(build_chroot):
20 config = generate_build_config(build_chroot.build.copr, build_chroot.name) 21 copr_chroot = CoprChrootsLogic.get_by_name_safe(build_chroot.build.copr, build_chroot.name) 22 return { 23 "additional_repos": generate_additional_repos(copr_chroot), 24 "additional_packages": config.get("additional_packages"), 25 "use_bootstrap_container": config.get("use_bootstrap_container"), 26 "with_opts": config.get("with_opts"), 27 "without_opts": config.get("without_opts"), 28 "memory_limit": build_chroot.build.memory_reqs, 29 "timeout": build_chroot.build.timeout, 30 "enable_net": build_chroot.build.enable_net, 31 "is_background": build_chroot.build.is_background, 32 }
33
34 35 @apiv3_ns.route("/build-chroot/<int:build_id>/<chrootname>", methods=GET) 36 -def get_build_chroot(build_id, chrootname):
37 chroot = BuildChrootsLogic.get_by_build_id_and_name(build_id, chrootname).one() 38 return flask.jsonify(to_dict(chroot))
39
40 41 @apiv3_ns.route("/build-chroot/list/<int:build_id>", methods=GET) 42 @pagination() 43 @query_params() 44 -def get_build_chroot_list(build_id, **kwargs):
45 query = BuildChrootsLogic.filter_by_build_id(BuildChrootsLogic.get_multiply(), build_id) 46 paginator = Paginator(query, models.BuildChroot, **kwargs) 47 chroots = paginator.map(to_dict) 48 return flask.jsonify(items=chroots, meta=paginator.meta)
49
50 51 @apiv3_ns.route("/build-chroot/build-config/<int:build_id>/<chrootname>", methods=GET) 52 -def get_build_chroot_config(build_id, chrootname):
53 chroot = BuildChrootsLogic.get_by_build_id_and_name(build_id, chrootname).one() 54 return flask.jsonify(build_config(chroot))
55