Source code for copr.v3.proxies.module

from __future__ import absolute_import

import os
from . import BaseProxy
from ..requests import FileRequest, munchify, POST
from ..helpers import for_all_methods, bind_proxy


[docs] @for_all_methods(bind_proxy) class ModuleProxy(BaseProxy):
[docs] def build_from_url(self, ownername, projectname, url, branch="master", distgit=None): """ Build a module from a URL pointing to a modulemd YAML file :param str ownername: :param str projectname: :param str url: URL pointing to a raw .yaml file :param str branch: :return: Munch """ endpoint = "/module/build/{ownername}/{projectname}" params = { "ownername": ownername, "projectname": projectname, } data = { "scmurl": url, "branch": branch, } if distgit is not None: data["distgit"] = distgit response = self.request.send( endpoint=endpoint, method=POST, params=params, data=data, auth=self.auth, ) return munchify(response)
[docs] def build_from_file(self, ownername, projectname, path, distgit=None): """ Build a module from a local modulemd YAML file :param str ownername: :param str projectname: :param str path: :return: Munch """ endpoint = "/module/build/{ownername}/{projectname}" f = open(path, "rb") params = { "ownername": ownername, "projectname": projectname, } files = { "modulemd": (os.path.basename(f.name), f, "application/x-rpm") } data = None if distgit is not None: data = {"distgit": distgit} request = FileRequest( files=files, api_base_url=self.api_base_url, connection_attempts=self.config.get("connection_attempts", 1) ) response = request.send( endpoint=endpoint, method=POST, params=params, data=data, auth=self.auth, ) return munchify(response)