def list_packages(self): """ list packages""" repo = yum.yumRepo.YumRepository(self.name) self.repo = repo repo.cache = 0 repo.metadata_expire = 0 repo.mirrorlist = self.url repo.baseurl = [self.url] repo.basecachedir = self.cache_dir warnings = YumWarnings() warnings.disable() repo.baseurlSetup() warnings.restore() repo.setup(False) sack = repo.getPackageSack() sack.populate(repo, 'metadata', None, 0) list = sack.returnPackages() to_return = [] for pack in list: if pack.arch == 'src': continue new_pack = ContentPackage() new_pack.setNVREA(pack.name, pack.version, pack.release, pack.epoch, pack.arch) new_pack.unique_id = pack for cs in pack.checksums: new_pack.checksums[cs[0]] = cs[1] to_return.append(new_pack) return to_return
def list_packages(self, filters): """ list packages""" self.sack.populate(self.repo, 'metadata', None, 0) pkglist = self.sack.returnPackages() self.num_packages = len(pkglist) if not filters: # if there's no include/exclude filter on command line or in database for p in self.repo.includepkgs: filters.append(('+', [filter_conf])) for p in self.repo.exclude: filters.append(('-', [filter_conf])) if filters: pkglist = self._filter_packages(pkglist, filters) pkglist = self._get_package_dependencies(self.sack, pkglist) # do not pull in dependencies if they're explicitly excluded pkglist = self._filter_packages(pkglist, filters, True) self.num_excluded = self.num_packages - len(pkglist) to_return = [] for pack in pkglist: if pack.arch == 'src': continue new_pack = ContentPackage() new_pack.setNVREA(pack.name, pack.version, pack.release, pack.epoch, pack.arch) new_pack.unique_id = pack new_pack.checksum_type = pack.checksums[0][0] if new_pack.checksum_type == 'sha': new_pack.checksum_type = 'sha1' new_pack.checksum = pack.checksums[0][1] to_return.append(new_pack) return to_return
def list_packages(self, filters): """ list packages""" self.sack.populate(self.repo, 'metadata', None, 0) pkglist = self.sack.returnPackages() self.num_packages = len(pkglist) if not filters: # if there's no include/exclude filter on command line or in database for p in self.repo.includepkgs: filters.append(('+',[p])) for p in self.repo.exclude: filters.append(('-',[p])) if filters: pkglist = self._filter_packages(pkglist, filters) pkglist = self._get_package_dependencies(self.sack, pkglist) # do not pull in dependencies if they're explicitly excluded pkglist = self._filter_packages(pkglist, filters, True) self.num_excluded = self.num_packages - len(pkglist) to_return = [] for pack in pkglist: if pack.arch == 'src': continue new_pack = ContentPackage() new_pack.setNVREA(pack.name, pack.version, pack.release, pack.epoch, pack.arch) new_pack.unique_id = pack new_pack.checksum_type = pack.checksums[0][0] if new_pack.checksum_type == 'sha': new_pack.checksum_type = 'sha1' new_pack.checksum = pack.checksums[0][1] to_return.append(new_pack) return to_return