Procházet zdrojové kódy

vm/qubesvm: call storage.remove() *before* removing dir_path

Give the varlibqubes storage pool, which places volume images inside the
VM directory, a chance to remove them (and e.g. to log that).
Rusty Bird před 4 roky
rodič
revize
aa931fdbf7
1 změnil soubory, kde provedl 7 přidání a 5 odebrání
  1. 7 5
      qubes/vm/qubesvm.py

+ 7 - 5
qubes/vm/qubesvm.py

@@ -1623,11 +1623,13 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
 
         yield from self.fire_event_async('domain-remove-from-disk')
         try:
-            # TODO: make it async?
-            shutil.rmtree(self.dir_path)
-        except FileNotFoundError:
-            pass
-        yield from self.storage.remove()
+            yield from self.storage.remove()
+        finally:
+            try:
+                # TODO: make it async?
+                shutil.rmtree(self.dir_path)
+            except FileNotFoundError:
+                pass
 
     @asyncio.coroutine
     def clone_disk_files(self, src, pool=None, pools=None, ):