1c7539e31415 — Alain Leufroy 3 years ago
dump: prevent writting info file on errors
1 files changed, 6 insertions(+), 5 deletions(-)

M overlayctl
M overlayctl +6 -5
@@ 217,14 217,11 @@ class Layer(BaseLayer):
 
     def dump(self):
         """Write the given overlay metadata to disk."""
-        data = {
+        info = {
             'name': self.name,
             'lowers': [lower.name for lower in self.lowers]
         }
-        self.infopath.write_text(
-            json.dumps(data, indent=2), encoding='utf-8'
-        )
-        logger.debug('%s updated', self.infopath)
+        data = info.copy()
         data['lowerdir'] = ':'.join(
             str(lower.lowerdir).replace('\\', '\\\\')
             for lower in self.get_ascendants()

          
@@ 232,6 229,10 @@ class Layer(BaseLayer):
         data['upperdir'] = str(self.upperdir).replace('\\', '\\\\')
         data['workdir'] = str(self.workdir).replace('\\', '\\\\')
         data['mountdir'] = str(self.mountdir).replace('\\', '\\\\')
+        self.infopath.write_text(
+            json.dumps(info, indent=2), encoding='utf-8'
+        )
+        logger.debug('%s written.', self.infopath)
         self.upperdir.mkdir(parents=True, exist_ok=True)
         self.workdir.mkdir(parents=True, exist_ok=True)
         self.mountdir.mkdir(parents=True, exist_ok=True)