def __init__(self, ts, package, sumtype=None, external_data={}): YumLocalPackage.__init__(self, ts, package) if sumtype: self.checksum_type = sumtype if external_data: for (key, val) in external_data.items(): setattr(self, key, val)
def doCommand(self, base, basecmd, extcmds): removed = 0 for repo in base.repos.listEnabled(): base.verbose_logger.log(logginglevels.INFO_2, 'Cleaning up %s repository', repo) packages = [] path = getattr(repo, 'pkgdir') if os.path.exists(path) and os.path.isdir(path): for item in misc.getFileList(path, 'rpm', []): try: packages.append(YumLocalPackage(ts=base.ts, filename=item)) except: base.logger.critical('Cannot load package file %s', item) continue if len(packages) is 0: base.verbose_logger.log(logginglevels.INFO_2, '') continue packages = sorted(packages, key=lambda x: x.name) packages = sorted(packages, key=lambda x: x.arch) last_package = packages[0] for package in packages: if last_package.name is not package.name or \ last_package.arch is not package.arch: last_package = package continue version_cmp = package.verCMP(last_package) if version_cmp < 0: older_package = package newer_package = last_package elif version_cmp > 0: older_package = last_package newer_package = package last_package = package else: last_package = package continue base.verbose_logger.log(logginglevels.DEBUG_2, '%s.%s %s is older than %s', older_package.name, older_package.arch, older_package.printVer(), newer_package.printVer()) try: misc.unlink_f(older_package.localPkg()) except OSError, e: base.logger.critical('Cannot remove package file %s', older_package.localPkg()) continue else: removed += 1 base.verbose_logger.log(logginglevels.DEBUG_4, 'Package file %s removed', older_package.localPkg()) base.verbose_logger.log(logginglevels.INFO_2, '')
def __init__(self, ts, package, sumtype=None): YumLocalPackage.__init__(self, ts, package) if sumtype: self.checksum_type = sumtype