core-admin/qubes-rpc
Marek Marczykowski-Górecki 3cacf290bb
admin: implement admin.vm.volume.Import
Implement this in two parts:
1. Permissions checks, getting a path from appropriate storage pool
2. Actual data import

The first part is done by qubesd in a standard way, but then, instead of
accepting all the data (which may be several GB), return a path to which
a shell script (in practice: `dd` command) will write the data.
Then the script call back to qubesd again to report success/failure and
qubesd response from that call is actually returned to the user.

This way we do not pass all the data through qubesd, but still can
control the process from there in a meaningful way. Note that the last
part (second call to qubesd) may perform all kind of verification (like
a signature check on the data, or so) and can also prevent VM from
starting (hooking also domain-pre-start event) from not verified image.

QubesOS/qubes-issues#2622
2017-05-26 15:08:14 +02:00
..
.gitignore admin-api: create and install actual Admin API RPC endpoints 2017-05-23 03:24:15 +02:00
admin.vm.volume.Import admin: implement admin.vm.volume.Import 2017-05-26 15:08:14 +02:00
Makefile admin-api: create and install actual Admin API RPC endpoints 2017-05-23 03:24:15 +02:00
qubes-notify-tools hvm: update appmenus only on the first qubes.NotifyTools call 2015-08-09 21:21:47 +02:00
qubes-notify-updates typo 2015-10-21 20:57:30 +00:00
qubes.FeaturesRequest qubes/tools/qvm-features: add tool for managing qvm-features 2016-05-19 03:02:24 +02:00
qubes.GetRandomizedTime use shuf rather than od because it is more readable 2016-03-13 01:52:03 +00:00
qubes.NotifyTools move qubes-notify-* to libexec 2014-11-19 12:50:25 +01:00
qubes.NotifyUpdates move qubes-notify-* to libexec 2014-11-19 12:50:25 +01:00
qubesd-query-fast.c admin-api: create and install actual Admin API RPC endpoints 2017-05-23 03:24:15 +02:00