dblink: use config._init_dirs() when necessary
authorZac Medico <zmedico@gentoo.org>
Wed, 25 May 2011 05:01:35 +0000 (22:01 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 25 May 2011 05:01:35 +0000 (22:01 -0700)
pym/portage/dbapi/vartree.py

index 0079e4f3e94522ba9dc2939d07265e1f23836363..159871bc3195885abc5f8cb240b3cedb64e2c3c7 100644 (file)
@@ -3723,9 +3723,13 @@ class dblink(object):
                # write out our collection of md5sums
                if cfgfiledict != cfgfiledict_orig:
                        cfgfiledict.pop("IGNORE", None)
-                       ensure_dirs(os.path.dirname(self.vartree.dbapi._conf_mem_file),
-                               gid=portage_gid, mode=0o2750, mask=0o2)
-                       writedict(cfgfiledict, self.vartree.dbapi._conf_mem_file)
+                       try:
+                               writedict(cfgfiledict, self.vartree.dbapi._conf_mem_file)
+                       except IOError as e:
+                               if e.errno != errno.ENOENT:
+                                       raise
+                               self.settings._init_dirs()
+                               writedict(cfgfiledict, self.vartree.dbapi._conf_mem_file)
 
                return os.EX_OK