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 models 
 6  from coprs.logic.builds_logic import BuildChrootsLogic 
 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 "repos": config.get("repos"), 24 "additional_repos": generate_additional_repos(copr_chroot), 25 "additional_packages": config.get("additional_packages"), 26 "use_bootstrap_container": config.get("use_bootstrap_container"), 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
35 36 @apiv3_ns.route("/build-chroot/<int:build_id>/<chrootname>", methods=GET) 37 -def get_build_chroot(build_id, chrootname):
38 chroot = BuildChrootsLogic.get_by_build_id_and_name(build_id, chrootname).one() 39 return flask.jsonify(to_dict(chroot))
40
41 42 @apiv3_ns.route("/build-chroot/list/<int:build_id>", methods=GET) 43 @pagination() 44 @query_params() 45 -def get_build_chroot_list(build_id, **kwargs):
46 query = BuildChrootsLogic.filter_by_build_id(BuildChrootsLogic.get_multiply(), build_id) 47 paginator = Paginator(query, models.BuildChroot, **kwargs) 48 chroots = paginator.map(to_dict) 49 return flask.jsonify(items=chroots, meta=paginator.meta)
50
51 52 @apiv3_ns.route("/build-chroot/build-config/<int:build_id>/<chrootname>", methods=GET) 53 -def get_build_chroot_config(build_id, chrootname):
54 chroot = BuildChrootsLogic.get_by_build_id_and_name(build_id, chrootname).one() 55 return flask.jsonify(build_config(chroot))
56