1 import os
2 import time
3 import base64
4 import json
5 import requests
6 import modulemd
7 from sqlalchemy import and_
8 from coprs import models
9 from coprs import db
10 from coprs import exceptions
11 from coprs.logic import builds_logic
12 from wtforms import ValidationError
16 @classmethod
17 - def get(cls, module_id):
22
23 @classmethod
30
31 @classmethod
34
35 @classmethod
38
39 @classmethod
41 mmd = modulemd.ModuleMetadata()
42 mmd.loads(yaml)
43 return mmd
44
45 @classmethod
50
51 @classmethod
56
57 @classmethod
58 - def add(cls, user, copr, module):
68
71 - def __init__(self, name="", stream="", version=0, summary="", config=None):
78
79 @property
82
86
90
97
108
110 chroot = None
111 for chroot in build.build_chroots:
112 if chroot.name == "custom-1-x86_64":
113 break
114 return chroot
115
116 - def add_component(self, package_name, build, chroot, rationale, buildorder=1):
117 ref = str(chroot.git_hash) if chroot else ""
118 distgit_url = self.config["DIST_GIT_URL"].replace("/cgit", "/git")
119 url = os.path.join(distgit_url, build.copr.full_name, "{}.git".format(build.package.name))
120 self.mmd.components.add_rpm(str(package_name), rationale,
121 repository=url, ref=ref,
122 buildorder=buildorder)
123
126
129
134
136 return self.mmd.dumps()
137
138 - def dump(self, handle):
139 return self.mmd.dump(handle)
140
143 - def __init__(self, mbs_url, user_name=None):
146
147 - def post(self, json=None, data=None, files=None):
148 request = requests.post(self.url, verify=False,
149 json=json, data=data, files=files)
150 return MBSResponse(request)
151
157
161 self.response = response
162
163 @property
165 return self.response.status_code != 201
166
167 @property
169 if self.response.status_code in [500, 403, 404]:
170 return "Error from MBS: {} - {}".format(self.response.status_code, self.response.reason)
171 resp = json.loads(self.response.content)
172 if self.response.status_code != 201:
173 return "Error from MBS: {}".format(resp["message"])
174 return "Created module {}-{}-{}".format(resp["name"], resp["stream"], resp["version"])
175