def virtually_accept_delete(self, request_id, package): self.api.add_review( request_id, by_group=self.api.cdelreq_review, msg='Request accepted. Cleanup in progress - DO NOT REVOKE!') filelist = self.api.get_filelist_for_package(pkgname=package, project=self.api.project, expand='1', extension='spec') pkgs = self.api.extract_specfile_short(filelist) # Disable build and wipes the binary to the package and the sub-package for pkg in pkgs: meta = show_package_meta(self.api.apiurl, self.api.project, pkg) meta = ''.join(meta) # Update package meta to disable build self.api.create_package_container(self.api.project, pkg, meta=meta, disable_build=True) wipebinaries(self.api.apiurl, self.api.project, package=pkg, repo=self.api.cmain_repo) # Remove package from Rings if self.api.ring_packages.get(pkg): delete_package(self.api.apiurl, self.api.ring_packages.get(pkg), pkg, force=True, msg="Cleanup package in Rings")
def getPackageMeta(self, project, package): """ getPackageMeta(project, package) -> string Get XML metadata for package in project """ return ''.join(core.show_package_meta(self.apiurl, project, package))
def getPackageMeta(self, project, package): """ getPackageMeta(project, package) -> string Get XML metadata for package in project """ return ''.join(core.show_package_meta(self.apiurl, project, package))
def _get_devel_project(self, project, package): """ get devel project for a single project""" if not self.item_exists(project, package): return None m = show_package_meta(self.apiurl, project, package) node = ET.fromstring(''.join(m)).find('devel') if node is None: return None else: return node.get('project')
def devel_project_get(apiurl, target_project, target_package): try: meta = ET.fromstring(''.join(show_package_meta(apiurl, target_project, target_package))) node = meta.find('devel') if node is not None: return node.get('project'), node.get('package') except HTTPError as e: if e.code != 404: raise e return None, None
def devel_project_get(apiurl, target_project, target_package): try: meta = ET.fromstringlist(show_package_meta(apiurl, target_project, target_package)) node = meta.find('devel') if node is not None: return node.get('project'), node.get('package') except HTTPError as e: if e.code != 404: raise e return None, None
def _get_devel_project(self, project, package): """ get devel project for a single project""" if not self.item_exists(project, package): return None m = show_package_meta(self.apiurl, project, package) node = ET.fromstring(''.join(m)).find('devel') if node is None: return None else: return node.get('project')
def package_role_expand(apiurl, project, package, role='maintainer', inherit=True): """ All users with a certain role on a package, including those who have the role directly assigned and those who are part of a group with that role. """ meta = ETL.fromstringlist(show_package_meta(apiurl, project, package)) users = meta_role_expand(apiurl, meta, role) if inherit: users.extend(project_role_expand(apiurl, project, role)) return users
def virtually_accept_delete(self, request_id, package): self.api.add_review(request_id, by_group=self.api.cdelreq_review, msg='Request accepted. Cleanup in progress - DO NOT REVOKE!') filelist = self.api.get_filelist_for_package(pkgname=package, project=self.api.project, expand='1', extension='spec') pkgs = self.api.extract_specfile_short(filelist) # Disable build and wipes the binary to the package and the sub-package for pkg in pkgs: meta = decode_it(b''.join(show_package_meta(self.api.apiurl, self.api.project, pkg))) # Update package meta to disable build self.api.create_package_container(self.api.project, pkg, meta=meta, disable_build=True) wipebinaries(self.api.apiurl, self.api.project, package=pkg, repo=self.api.cmain_repo) # Remove package from Rings if self.api.ring_packages.get(pkg): delete_package(self.api.apiurl, self.api.ring_packages.get(pkg), pkg, force=True, msg="Cleanup package in Rings")
def maintainers_get(apiurl, project, package=None): if package: try: meta = show_package_meta(apiurl, project, package) except HTTPError as e: if e.code == 404: # Fallback to project in the case of new package. meta = show_project_meta(apiurl, project) else: meta = show_project_meta(apiurl, project) meta = ET.fromstringlist(meta) userids = [] for person in meta.findall('person[@role="maintainer"]'): userids.append(person.get('userid')) if len(userids) == 0 and package is not None: # Fallback to project if package has no maintainers. return maintainers_get(apiurl, project) return userids
def maintainers_get(apiurl, project, package=None): if package: try: meta = show_package_meta(apiurl, project, package) except HTTPError as e: if e.code == 404: # Fallback to project in the case of new package. meta = show_project_meta(apiurl, project) else: meta = show_project_meta(apiurl, project) meta = ET.fromstringlist(meta) userids = [] for person in meta.findall('person[@role="maintainer"]'): userids.append(person.get('userid')) if len(userids) == 0 and package is not None: # Fallback to project if package has no maintainers. return maintainers_get(apiurl, project) return userids