porttree: use pure volatile cache if necessary
authorZac Medico <zmedico@gentoo.org>
Thu, 12 May 2011 19:02:27 +0000 (12:02 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 12 May 2011 19:02:27 +0000 (12:02 -0700)
pym/portage/dbapi/porttree.py

index 379cc68cde3033d9095cfca0135fa96e402a3f5a..a30c9d7b4dcad494b743c9d01d2a4f4ead4b67c2 100644 (file)
@@ -170,12 +170,18 @@ class portdbapi(dbapi):
                # to the cache entries/directories.
                if secpass < 1 or not depcachedir_w_ok:
                        for x in self.porttrees:
-                               db_ro = self.auxdbmodule(self.depcachedir, x,
-                                       filtered_auxdbkeys, gid=portage_gid, readonly=True)
-                               self.auxdb[x] = metadata_overlay.database(
-                                       self.depcachedir, x, filtered_auxdbkeys,
-                                       gid=portage_gid, db_rw=volatile.database,
-                                       db_ro=db_ro)
+                               try:
+                                       db_ro = self.auxdbmodule(self.depcachedir, x,
+                                               filtered_auxdbkeys, readonly=True, **cache_kwargs)
+                               except CacheError:
+                                       self.auxdb[x] = volatile.database(
+                                               self.depcachedir, x, filtered_auxdbkeys,
+                                               **cache_kwargs)
+                               else:
+                                       self.auxdb[x] = metadata_overlay.database(
+                                               self.depcachedir, x, filtered_auxdbkeys,
+                                               db_rw=volatile.database, db_ro=db_ro,
+                                               **cache_kwargs)
                else:
                        for x in self.porttrees:
                                if x in self.auxdb: