[yum-commits] 2 commits - package-cleanup.py

James Antill james at osuosl.org
Wed Dec 21 20:50:46 UTC 2011


 package-cleanup.py |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

New commits:
commit 1c495fa79359be21e44dcc1d3dc8ff51d118065c
Merge: 3b33cfb 7ca8f12
Author: James Antill <james at and.org>
Date:   Wed Dec 21 15:50:42 2011 -0500

    Merge branch 'master' of ssh://yum.baseurl.org/srv/projects/yum/git/yum-utils
    
    * 'master' of ssh://yum.baseurl.org/srv/projects/yum/git/yum-utils:
      Adapt to yum completion helper changes.

commit 3b33cfb2361e7a17aec89c1a7e8fdb472f0b2f7d
Author: James Antill <james at and.org>
Date:   Wed Dec 21 15:48:14 2011 -0500

    Make --oldkernels keep N of each kernel package name. BZ 496580.

diff --git a/package-cleanup.py b/package-cleanup.py
index da4252b..aebae67 100755
--- a/package-cleanup.py
+++ b/package-cleanup.py
@@ -254,12 +254,23 @@ class PackageCleanup(YumUtilBase):
         else:
             kver = runningkernel
             krel = ""
-        remove = kernels[count:]
+
+        #  This is roughly what we want, but when there are multiple packages
+        # we want to keep N of each.
+        # remove = kernels[count:]
+        kern_name_map = {}
+        for kern in kernels:
+            if kern.name not in kern_name_map:
+                kern_name_map[kern.name] = []
+            kern_name_map[kern.name].append(kern)
+        remove = []
+        for kern in kern_name_map.values():
+            remove.extend(kern[count:])
         
         toremove = []
         # Remove running kernel from remove list
         for kernel in remove:
-            if kernel.version == kver and krel.startswith(kernel.release):
+            if kernel.version == kver and kernel.release == krel:
                 print "Not removing kernel %s-%s because it is the running kernel" % (kver,krel)
             else:
                 toremove.append(kernel)


More information about the Yum-commits mailing list