26a9974432
The first operation returns a token, which can be passed to the second one to actually perform clone operation. This way the caller needs have power over both source and destination VMs (or at least appropriate volumes), so it's easier to enforce appropriate qrexec policy. The pending tokens are stored on Qubes() instance (as QubesAdminAPI is not persistent). It is design choice to keep them in RAM only - those are one time use and this way restarting qubesd is a simple way to invalidate all of them. Otherwise we'd need some additional calls like CloneCancel or such. QubesOS/qubes-issues#2622 |
||
---|---|---|
.. | ||
integ | ||
tools | ||
vm | ||
__init__.py | ||
api_admin.py | ||
api_misc.py | ||
api.py | ||
app.py | ||
devices_block.py | ||
devices.py | ||
events.py | ||
ext.py | ||
extra.py | ||
firewall.py | ||
init.py | ||
run.py | ||
storage_file.py | ||
storage_kernels.py | ||
storage_lvm.py | ||
storage.py | ||
tarwriter.py |