core-admin-client/qubesadmin
Marek Marczykowski-Górecki bcd026d141
Implement VM clone as create + copy data+metadata
This way we don't need separate admin.vm.Clone call, which is tricky to
handler properly with policy.
A VM may not have access to all the properties and other metadata, so
add ignore_errors argument, for best-effort approach (copy what is
possible). In any case, failure of cloning VM data fails the whole
operation.
When operation fails, VM is removed.

While at it, allow to specify alternative VM class - this allows
morphing one VM into another (for example AppVM -> StandaloneVM).

Adjust qvm-clone tool and tests accordingly.

QubesOS/qubes-issues#2622
2017-06-20 01:34:18 +02:00
..
events events: fix parsing events with empty parameters 2017-05-30 01:31:13 +02:00
tests Implement VM clone as create + copy data+metadata 2017-06-20 01:34:18 +02:00
tools Implement VM clone as create + copy data+metadata 2017-06-20 01:34:18 +02:00
vm tags support 2017-06-20 01:34:16 +02:00
__init__.py Rename qubesmgmt to qubesadmin module 2017-05-11 23:40:03 +02:00
app.py Implement VM clone as create + copy data+metadata 2017-06-20 01:34:18 +02:00
base.py base: add PropertyHolder.clone_properties 2017-06-20 01:34:17 +02:00
config.py tools: add qvm-template-postprocess 2017-05-26 01:33:43 +02:00
devices.py devices: adjust API for 'devices: add assignment.device property' change 2017-05-22 01:18:02 +02:00
exc.py tags support 2017-06-20 01:34:16 +02:00
features.py features: add vm.features.items() function 2017-05-22 03:20:33 +02:00
firewall.py Rename Mgmt API to Admin API: methods names 2017-05-12 19:36:03 +02:00
label.py Rename Mgmt API to Admin API: methods names 2017-05-12 19:36:03 +02:00
log.py Rename qubesmgmt to qubesadmin module 2017-05-11 23:40:03 +02:00
spinner.py qubesadmin/spinner: fix licence 2017-06-08 08:12:58 +02:00
storage.py storage: make Volumes sortable 2017-06-20 01:34:18 +02:00
tags.py tags support 2017-06-20 01:34:16 +02:00
utils.py Rename qubesmgmt to qubesadmin module 2017-05-11 23:40:03 +02:00