Esempio n. 1
0
    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)
Esempio n. 2
0
 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)
Esempio n. 3
0
    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, '')
Esempio n. 4
0
 def __init__(self, ts, package, sumtype=None):
     YumLocalPackage.__init__(self, ts, package)
     if sumtype:
         self.checksum_type = sumtype