[yum-cvs] yum-utils/plugins/skip-broken skip-broken.py,1.6,1.7

Tim Lauridsen timlau at linux.duke.edu
Wed Mar 14 14:19:24 UTC 2007


Update of /home/groups/yum/cvs/yum-utils/plugins/skip-broken
In directory login1.linux.duke.edu:/tmp/cvs-serv31520/plugins/skip-broken

Modified Files:
	skip-broken.py 
Log Message:
Make the skip-broken a little smarter and the make the output better.

Index: skip-broken.py
===================================================================
RCS file: /home/groups/yum/cvs/yum-utils/plugins/skip-broken/skip-broken.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- skip-broken.py	13 Mar 2007 11:42:46 -0000	1.6
+++ skip-broken.py	14 Mar 2007 14:19:22 -0000	1.7
@@ -50,20 +50,34 @@
         saveTs = copy.copy(self.base.tsInfo)
         goodlist = []
         badlist = []
+        self.resetTs()
+        goodTs = copy.copy(self.base.tsInfo)
         for txmbr in saveTs:
+            # check if the member already has been marked as ok
+            if goodTs.exists(txmbr.po.pkgtup):
+                continue
             self.resetTs()
             po = txmbr.po
             state = txmbr.output_state
+            self.logger(2,"**** Checking for dep problems  : %s " % str(txmbr.po))
             self.base.tsInfo.add(txmbr)
             (rescode, restring) = self.base.resolveDeps()
             # Did the resolveDeps want ok ?
             if rescode == 2:
+                # transfer all member in this transaction to a good ts.
+                for good in self.base.tsInfo:
+                    if not goodTs.exists(good.po.pkgtup):
+                        self.logger(2,"****   OK : %s" % str(good))
+                        goodTs.add(good)
                 goodlist.append(txmbr)
             else:
+                self.logger(2,"****   Failed ")
+                for err in restring:
+                    self.logger(2,"****     %s " % err) 
                 badlist.append([txmbr,restring])
         # Restore self.tsInfo
         self.resetTs() 
-        self.base.tsInfo = saveTs
+        self.base.tsInfo = goodTs
         return goodlist,badlist
     
     def dumpTsInfo(self):
@@ -101,20 +115,23 @@
     if hasattr(opts,'skipbroken'):
         if opts.skipbroken or check_always:
             # get yum base
-            conduit.info(2,'Checking packages for dependency problems')
+            conduit.info(2,'**** Checking packages for dependency problems')
             base = conduit._base
             cd = CheckDependency(base,conduit.info)
             cd.dumpTsInfo()
             (good,bad) = cd.preDepCheck()
-            tsInfo = base.tsInfo
+            #tsInfo = base.tsInfo
+            conduit.info(2,"**** Packages with dependency resolving errors ")
+            
             for txmbr,err in bad:
                 # Removing bad packages for self.tsInfo
-                tsInfo.remove(txmbr.po.pkgtup)
-                conduit.info(2,"%s failed dependency resolving " % txmbr.po)
-                conduit.info(2,"%s " % err[0])
+                #tsInfo.remove(txmbr.po.pkgtup)
+                conduit.info(2,"**** %s " % txmbr.po)
+                for e in err:
+                    conduit.info(2,"****   %s " % 2)
             for txmbr in good:
-                conduit.info(3,"%s completed dependency resolving " % txmbr.po)    
+                conduit.info(3,"**** %s completed dependency resolving " % txmbr.po)    
             # Show the current state of y.tsInfo
-            conduit.info(2,'End Checking packages for dependency problems')
-            cd.dumpTsInfo()
+            conduit.info(2,'**** End Checking packages for dependency problems')
+            #cd.dumpTsInfo()
         
\ No newline at end of file




More information about the Yum-cvs-commits mailing list