Source code for copr.v3.proxies.build_chroot
from __future__ import absolute_import
from . import BaseProxy
from ..requests import munchify
from ..helpers import for_all_methods, bind_proxy
[docs]
@for_all_methods(bind_proxy)
class BuildChrootProxy(BaseProxy):
[docs]
def get(self, build_id, chrootname):
"""
Return a build chroot
:param int build_id:
:param str chrootname:
:return: Munch
"""
endpoint = "/build-chroot"
params = {
"build_id": build_id,
"chrootname": chrootname,
}
response = self.request.send(endpoint=endpoint, params=params)
return munchify(response)
[docs]
def get_list(self, build_id, pagination=None):
"""
Return a list of build chroots
:param int build_id:
:param pagination:
:return: Munch
"""
endpoint = "/build-chroot/list"
params = {
"build_id": build_id,
}
params.update(pagination or {})
response = self.request.send(endpoint=endpoint, params=params)
return munchify(response)
[docs]
def get_build_config(self, build_id, chrootname):
"""
Return a build config for a build chroot
:param int build_id:
:param str chrootname:
:return: Munch
"""
endpoint = "/build-chroot/build-config"
params = {
"build_id": build_id,
"chrootname": chrootname,
}
response = self.request.send(endpoint=endpoint, params=params)
return munchify(response)
[docs]
def get_built_packages(self, build_id, chrootname):
"""
Return built packages (NEVRA dicts) for a given build chroot
:param int build_id:
:param str chrootname:
:return: Munch
"""
endpoint = "/build-chroot/built-packages"
params = {
"build_id": build_id,
"chrootname": chrootname,
}
response = self.request.send(endpoint=endpoint, params=params)
return munchify(response)
[docs]
def get_results_urls(self, build_id, chrootname):
"""
For a given Copr build ID,
return a list of downloadable URLs for its results
"""
build_chroot = self.get(build_id, chrootname)
results = self.get_built_packages(build_id, chrootname)
urls = []
for nevra in results["packages"]:
filename = "{N}-{V}-{R}.{A}.rpm".format(
N=nevra["name"],
V=nevra["version"],
R=nevra["release"],
A=nevra["arch"],
)
url = build_chroot.result_url + filename
urls.append(url)
return urls