qfile-daemon-dvm: Move dispVM killing into cleanup function
This commit is contained in:
parent
9d781f77ce
commit
afb2a65744
@ -150,7 +150,7 @@ class QfileDaemonDvm:
|
|||||||
return self.do_get_dvm()
|
return self.do_get_dvm()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def remove_disposable_from_qdb(name):
|
def finish_disposable(name):
|
||||||
qvm_collection = QubesVmCollection()
|
qvm_collection = QubesVmCollection()
|
||||||
qvm_collection.lock_db_for_writing()
|
qvm_collection.lock_db_for_writing()
|
||||||
qvm_collection.load()
|
qvm_collection.load()
|
||||||
@ -158,6 +158,12 @@ class QfileDaemonDvm:
|
|||||||
if vm is None:
|
if vm is None:
|
||||||
qvm_collection.unlock_db()
|
qvm_collection.unlock_db()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
try:
|
||||||
|
vm.force_shutdown()
|
||||||
|
except QubesException:
|
||||||
|
# VM already destroyed
|
||||||
|
pass
|
||||||
qvm_collection.pop(vm.qid)
|
qvm_collection.pop(vm.qid)
|
||||||
qvm_collection.save()
|
qvm_collection.save()
|
||||||
qvm_collection.unlock_db()
|
qvm_collection.unlock_db()
|
||||||
@ -181,11 +187,6 @@ def main():
|
|||||||
subprocess.call(['/usr/lib/qubes/qrexec-client', '-d', dispvm.name,
|
subprocess.call(['/usr/lib/qubes/qrexec-client', '-d', dispvm.name,
|
||||||
user+':exec /usr/lib/qubes/qubes-rpc-multiplexer ' +
|
user+':exec /usr/lib/qubes/qubes-rpc-multiplexer ' +
|
||||||
exec_index + " " + src_vmname])
|
exec_index + " " + src_vmname])
|
||||||
try:
|
qfile.finish_disposable(dispvm.name)
|
||||||
dispvm.force_shutdown()
|
|
||||||
except QubesException:
|
|
||||||
# VM already destroyed
|
|
||||||
pass
|
|
||||||
qfile.remove_disposable_from_qdb(dispvm.name)
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user