Commit Graph

30 Commits

Author SHA1 Message Date
Rusty Bird
b964e8c33f
qfile-daemon-dvm: Implement LAUNCH and FINISH actions
If the action is LAUNCH instead of qubes.SomeService, then just start
the dispVM, write (only) its name to stdout, and quit.

If the action is FINISH, then kill and remove the named dispVM.
2016-06-29 11:59:12 +00:00
Rusty Bird
142cb9e240
qfile-daemon-dvm: Call static method by class name 2016-06-29 11:59:09 +00:00
Rusty Bird
afb2a65744
qfile-daemon-dvm: Move dispVM killing into cleanup function 2016-06-29 11:58:46 +00:00
Marek Marczykowski-Górecki
5546d679c0
dispvm: use try/finally to make sure that qubes.xml is unlocked
Even in case of some exception (in which case theoretically it should be
unlocked at qfile-daemon-dvm exit, but the script may wait for
something).

QubesOS/qubes-issues#1636
2016-02-21 12:41:13 +01:00
Marek Marczykowski-Górecki
689df4afd3
dispvm: cleanup DispVM even if was already destroyed
dispvm.force_shutdown() throw an exception if the VM is already dead.

Fixes QubesOS/qubes-issues#1660
2016-01-20 02:50:47 +01:00
Marek Marczykowski-Górecki
873706428e
dispvm: fix firewall propagation when the calling VM has no rules set
Fixes QubesOS/qubes-issues#1608
2016-01-18 02:19:19 +01:00
Marek Marczykowski-Górecki
56e6c01917
dispvm: convert exception object to string - otherwise it will not be visible
tray_notify_error can't handle arbitrary object.

Fixes QubesOS/qubes-issues#1457
2015-12-22 01:53:53 +01:00
Marek Marczykowski-Górecki
624c94b9d6
dispvm: show error in tray when DispVM startup failed
Fixes QubesOS/qubes-issues#1457
2015-11-27 20:00:33 +01:00
Marek Marczykowski-Górecki
18edf4946c
dispvm: get rid of obsolete symlinks to dvm.conf
Separate config file is no longer created for DispVM - the configuration
is passed directly to libvirt.

Fixes QubesOS/qubes-issues#1314
2015-10-10 05:22:44 +02:00
Marek Marczykowski-Górecki
77da23fba2 dispvm: fix netvm presence reporting
If desired netvm presence is different than during savefile creation(*),
defer setting the netvm until new DispVM is running - otherwise kernel
there will not notice the change and will either have (not working)
'eth0' when it shouldn't, or will not have it while it should.

Additionally set dispvm.uses_default_netvm = False, so GUI tools will
display actual netvm value.

(*) Actually compare to netvm set for dispvm template (`TEMPLATE-dvm`
VM), which can be different if user just changed that but not
regenerated dispvm savefile yet.

Fixes qubesos/qubes-issues#985
Related to qubesos/qubes-issues#862
2015-05-03 20:40:37 +02:00
Marek Marczykowski-Górecki
ed03fb4313 dispvm: remove unused imports, mark methods as static where appropriate 2015-05-03 20:25:39 +02:00
Marek Marczykowski-Górecki
3ca94941b1 dispvm: update copyright header 2015-05-03 20:25:08 +02:00
Marek Marczykowski-Górecki
4e4a4a60c3 dispvm: code style - whitespace fixes 2015-05-03 20:24:45 +02:00
Marek Marczykowski-Górecki
f2aa0f3e2f dispvm: prevent any output from qfile-daemon-dvm
This script is connected directly to calling process, so any output here
will disrupt qrexec service data. For example in case of qubes.OpenInVM
this will be prepended to modified file while sending it back to the
source VM - in case of no modification, it will override that file in
the source VM...
2015-04-10 19:01:46 +02:00
Marek Marczykowski-Górecki
7516737fae core: Add "dispvm_netvm" property - NetVM for DispVMs started from a VM
This allows to specify tight network isolation for a VM, and finally
close one remaining way for leaking traffic around TorVM. Now when VM is
connected to for example TorVM, its DispVMs will be also connected
there.
The new property can be set to:
 - default (uses_default_dispvm_netvm=True) - use the same NetVM/ProxyVM as the
 calling VM itself - including none it that's the case
 - None - DispVMs will be network-isolated
 - some NetVM/ProxyVM - will be used, even if calling VM is network-isolated

Closes qubesos/qubes-issues#862
2015-04-04 21:47:31 +02:00
Marek Marczykowski-Górecki
b61aef2bef dispvm: typos 2015-03-30 05:32:04 +02:00
Marek Marczykowski-Górecki
d02aa70e93 dispvm: speedup sparse files handling by using bsdtar
Apparently it is much faster. Especially during savefile preparation -
tar reads the whole file, while bsdtar gets file map and reads only used
regions.
2015-03-30 05:29:14 +02:00
Marek Marczykowski-Górecki
999698bd68 core: rename create_xenstore_entries, get rid of xid parameter
It have nothing to do with xenstore, so change the name to not mislead.
Also get rid of unused "xid" parameter - we should use XID as little as
possible, because it is not a simple task to keep it current.
2015-03-28 22:36:28 +01:00
Marek Marczykowski-Górecki
ebb9a1fcb2 dispvm: fix tray notifications (#874)
Conflicts:
	dispvm/qfile-daemon-dvm
2014-11-21 23:46:58 +01:00
Marek Marczykowski
107ebad9d5 Migration to libvirt - DispVM
Move DispVM creation to qfile-daemon-dvm/QubesDisposableVm from
qubes-restore. As actual restore is handled by libvirt, we don't get
much from separate qubes-restore process.
This code still needs some improvements, especially on performance.
2014-11-19 12:48:26 +01:00
Marek Marczykowski-Górecki
1b99011bbb dispvm: use getopt to parse qubes-restore cmdline
It will ease further enhancements, especially adding additional options.
2014-11-04 02:55:35 +01:00
Marek Marczykowski-Górecki
6ce4028033 dispvm: use tray notify for no-memory error (#877) 2014-07-03 04:09:17 +02:00
Marek Marczykowski-Górecki
b81ecc4fba dispvm: fix tray notifications (#874) 2014-07-02 02:31:05 +02:00
Marek Marczykowski-Górecki
1ed9c74d83 Rearrange code to not import PyQt on every qvm-* call
Move notification functions to separate file (out of guihelpers).
2014-06-05 01:59:42 +02:00
Marek Marczykowski-Górecki
2abe0649d4 dispvm: show "DisposableVM creation failed" msg using tray notification (#821) 2014-05-15 18:35:01 +02:00
Marek Marczykowski-Górecki
2bde8d906b dispvm: do not fail when notification service unavailable 2014-05-15 18:34:57 +02:00
Marek Marczykowski-Górecki
8be54ab174 dispvm: display warning if the template is running (#754)
Opening a DispVM when the TemplateVM is running forces savefile
regeneration. Checking real root.img modification time (taking into
account root-cow.img) is tricky, so display a warning instead.
2014-03-28 04:27:51 +01:00
Marek Marczykowski-Górecki
3443f94aa9 dispvm: fix out of memory message - Xfce version 2013-10-19 15:54:55 +02:00
Marek Marczykowski
8efba3092c dispvm: fix zenity arguments for error message 2013-05-16 15:53:29 +02:00
Marek Marczykowski
a84886db07 Move all files one level up 2013-03-16 19:56:51 +01:00