src/modules/client/image.py
changeset 67 62c897652bbc
parent 63 ba3a4af65479
child 69 9eeb33eab728
--- a/src/modules/client/image.py	Fri Aug 03 11:46:58 2007 -0700
+++ b/src/modules/client/image.py	Mon Aug 06 14:53:13 2007 -0700
@@ -222,6 +222,26 @@
 
                 return False
 
+        def get_dependents(self, pfmri):
+                """Return a list of the packages directly dependent on the given FMRI."""
+
+                thedir = os.path.join(self.imgdir, "index", "depend",
+                    urllib.quote(str(pfmri.get_pkg_stem())[5:], ""))
+
+                if not os.path.isdir(thedir):
+                        return []
+
+                for v in os.listdir(thedir):
+                        f = fmri.PkgFmri(pfmri.get_pkg_stem() + "@" + v,
+                            self.attrs["Build-Release"])
+                        if pfmri.is_successor(f):
+                                dependents = [
+                                    urllib.unquote(d)
+                                    for d in os.listdir(os.path.join(thedir, v))
+                                ]
+
+                return dependents
+
         def reload_catalogs(self):
                 cdir = "%s/%s" % (self.imgdir, "catalog")
                 for cf in os.listdir(cdir):