[Yum-devel] [PATCH 3/3] - add docstrings to properties - return_running_packages method to YumBase to return list of pkgs which currently have a file opened by a running process

Seth Vidal skvidal at fedoraproject.org
Tue Dec 8 21:45:02 UTC 2009


---
 yum/__init__.py |   39 ++++++++++++++++++++++++++++++---------
 1 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/yum/__init__.py b/yum/__init__.py
index 2aaa66a..bd16d78 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -719,29 +719,39 @@ class YumBase(depsolve.Depsolve):
     # properties so they auto-create themselves with defaults
     repos = property(fget=lambda self: self._getRepos(),
                      fset=lambda self, value: setattr(self, "_repos", value),
-                     fdel=lambda self: self._delRepos())
+                     fdel=lambda self: self._delRepos(),
+                     doc="Repo Storage object - object of yum repositories")
     pkgSack = property(fget=lambda self: self._getSacks(),
                        fset=lambda self, value: setattr(self, "_pkgSack", value),
-                       fdel=lambda self: self._delSacks())
+                       fdel=lambda self: self._delSacks(),
+                       doc="Package sack object - object of yum package objects")
     conf = property(fget=lambda self: self._getConfig(),
                     fset=lambda self, value: setattr(self, "_conf", value),
-                    fdel=lambda self: setattr(self, "_conf", None))
+                    fdel=lambda self: setattr(self, "_conf", None),
+                    doc="Yum Config Object")
     rpmdb = property(fget=lambda self: self._getRpmDB(),
                      fset=lambda self, value: setattr(self, "_rpmdb", value),
-                     fdel=lambda self: setattr(self, "_rpmdb", None))
+                     fdel=lambda self: setattr(self, "_rpmdb", None),
+                     doc="RpmSack object")
     tsInfo = property(fget=lambda self: self._getTsInfo(), 
                       fset=lambda self,value: self._setTsInfo(value), 
-                      fdel=lambda self: self._delTsInfo())
-    ts = property(fget=lambda self: self._getActionTs(), fdel=lambda self: self._deleteTs())
+                      fdel=lambda self: self._delTsInfo(),
+                      doc="Transaction Set information object")
+    ts = property(fget=lambda self: self._getActionTs(), 
+                  fdel=lambda self: self._deleteTs(),
+                  doc="TransactionSet object")
     up = property(fget=lambda self: self._getUpdates(),
                   fset=lambda self, value: setattr(self, "_up", value),
-                  fdel=lambda self: setattr(self, "_up", None))
+                  fdel=lambda self: setattr(self, "_up", None),
+                  doc="Updates Object")
     comps = property(fget=lambda self: self._getGroups(),
                      fset=lambda self, value: self._setGroups(value),
-                     fdel=lambda self: setattr(self, "_comps", None))
+                     fdel=lambda self: setattr(self, "_comps", None),
+                     doc="Yum Component/groups object")
     history = property(fget=lambda self: self._getHistory(),
                        fset=lambda self, value: setattr(self, "_history",value),
-                       fdel=lambda self: setattr(self, "_history", None))
+                       fdel=lambda self: setattr(self, "_history", None),
+                       doc="Yum History Object")
     
     
     def doSackFilelistPopulate(self):
@@ -4184,3 +4194,14 @@ class YumBase(depsolve.Depsolve):
             return False
             
         return True    
+
+    def return_running_packages(self):
+        """returns a list of yum installed package objects which own a file
+           that are currently running or in use."""
+        pkgs = {}
+        for pid in misc.return_running_pids():
+            for fn in misc.get_open_files(pid):
+                for pkg in self.rpmdb.searchFiles(fn):
+                    pkgs[pkg] = 1
+
+        return sorted(pkgs.keys())
-- 
1.6.5.2



More information about the Yum-devel mailing list