Marek Marczykowski-Górecki
98ab523da4
Wait for udev to process all the events during volatile.img preparation
...
Otherwise it could happen that the device will still be opened by udev,
so can't be freed by kpartx
2015-03-30 21:30:58 +02:00
Marek Marczykowski-Górecki
063e2617d6
Cleanup after failed volatile.img preparation
2015-03-30 16:18:52 +02:00
Marek Marczykowski-Górecki
cba8c6430c
tests: do not rely on gedit being the default editor
...
Handle gedit, emacs and vim.
2015-03-30 16:18:09 +02:00
Marek Marczykowski-Górecki
5c59067676
core: treat absence of libvirt domain as 'Halted' state
...
If the domain isn't defined in libvirt, it surely isn't running. This is
needed for DispVM, which compares with exactly this state.
2015-03-30 05:33:13 +02:00
Marek Marczykowski-Górecki
b61aef2bef
dispvm: typos
2015-03-30 05:32:04 +02:00
Marek Marczykowski-Górecki
64755b2d98
dispvm: do not treat DispVMs as Xen-specific
...
Theoretically it should work (with some minor modifications) on any
hypervisor.
2015-03-30 05:30:52 +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
c6f136869e
tests: fix handling tests list from cmdline
...
Previous approach didn't worked for dynamically generated tests.
2015-03-30 01:40:39 +02:00
Marek Marczykowski-Górecki
01e208d5ec
utils/QubesWatch: provide domain UUID to domain_callback
2015-03-30 00:08:00 +02:00
Marek Marczykowski-Górecki
9bfcb72722
core: fix setting the VM autostart ( #925 )
...
This is actually workaround for systemd bug reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=1181922
Closes qubesos/qubes-issues#925
2015-03-29 23:48:10 +02:00
Marek Marczykowski-Górecki
30fadfa994
core/block: handle any QubesDB exception
2015-03-29 23:47:39 +02:00
Marek Marczykowski-Górecki
2e8624e322
core: add missing import
2015-03-29 23:47:24 +02:00
Marek Marczykowski-Górecki
075f35b873
core: do not assume that libvirt domain is always defined
...
Define it only when really needed:
- during VM creation - to generate UUID
- just before VM startup
As a consequence we must handle possible exception when accessing
vm.libvirt_domain. It would be a good idea to make this field private in
the future. It isn't possible for now because block_* are external for
QubesVm class.
This hopefully fixes race condition when Qubes Manager tries to access
libvirt_domain (using some QubesVm.*) at the same time as other tool is
removing the domain. Additionally if Qubes Manage would loose that race, it could
define the domain again leaving some unused libvirt domain (blocking
that domain name for future use).
2015-03-29 23:38:36 +02:00
Marek Marczykowski-Górecki
e8a1e3469e
tests/network: release QubesVmCollection lock before starting any VM
2015-03-29 17:33:34 +02:00
Marek Marczykowski-Górecki
f8ad78d174
core: use absolute imports in qubesutils
2015-03-29 17:33:02 +02:00
Marek Marczykowski-Górecki
bb958fd1c8
core: improve handling dead domains when talking to QubesDB daemon
...
Provide vm.refresh(), which will force to reconnect do QubesDB daemon,
and also get new libvirt object (including new ID, if any). Use this
method whenever QubesDB call returns DisconnectedError exception. Also
raise that exception when someone is trying to talk to not running
QubesDB - instead of returning None.
2015-03-29 17:22:15 +02:00
Marek Marczykowski-Górecki
124a26ec97
core: do not undefine libvirt domain when not necessary
...
Libvirt will replace domain XML when trying to define the new one with
the same name and UUID - this is exactly what we need. This fixes race
condition with other processes (especially Qubes Manager), which can try
to access that libvirt domain object at the same time.
2015-03-29 16:31:56 +02:00
Marek Marczykowski-Górecki
1b428f6865
core: fix bogus return value from __init__
2015-03-29 16:19:50 +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
e92da0e116
version 3.0.1
2015-03-26 23:53:22 +01:00
Marek Marczykowski-Górecki
c878beb25d
utils/block: catch an exception when talking to disconnected qubesdb
...
This can happen for example when domain disappeared in the meantime.
2015-03-26 22:10:49 +01:00
Marek Marczykowski-Górecki
96cd341162
tests: typo fix
2015-03-25 00:48:01 +01:00
Marek Marczykowski-Górecki
55f7556c41
tests: include dom0 update tests by default
...
Looks like an oversight.
2015-03-25 00:47:56 +01:00
Marek Marczykowski-Górecki
fbd96532e8
tests: automatically iterate tests over templates
2015-03-22 03:32:01 +01:00
Marek Marczykowski-Górecki
20e4e26111
tests: add missing skip if no xdotool installed
2015-03-22 01:40:19 +01:00
Marek Marczykowski-Górecki
4dfb629dd8
Update libvirt config syntax for new version of driver domain patches
...
Finally accepted patches uses different syntax: <backenddomain name=.../> tag
instead of <source domain=.../>.
2015-03-21 21:12:48 +01:00
Marek Marczykowski-Górecki
246d0f4609
tests: if xdotool is not installed, skip tests that uses it
2015-03-19 23:17:34 +01:00
Marek Marczykowski-Górecki
370057bad3
tests: unlock qubes.xml after creating VMs
...
Otherwise it could cause deadlocks.
2015-03-19 23:17:20 +01:00
Marek Marczykowski-Górecki
668a2ac62b
linux: set sgid for /var/run/qubes
...
This is much simpler than ensuring proper group set in every qubes
tool.
2015-03-19 10:31:50 +01:00
Marek Marczykowski-Górecki
7463a55f0f
dispvm: do not require shmoverride loaded to start gui daemon
...
This isn't needed anymore because we'll show no window in invisible
mode. This allows to prepare DispVM from firstboot.
2015-03-19 10:30:18 +01:00
Marek Marczykowski-Górecki
304ed1dec5
Merge remote-tracking branch 'woju/wip-tests'
2015-03-07 02:48:21 +01:00
Wojciech Zygmunt Porczyk
ad7c6d0dec
tests/run: add option to list available tests
2015-03-05 15:38:59 +01:00
Wojciech Zygmunt Porczyk
95ae3f44aa
Revert "tests: use dot to separate test name components"
...
This reverts commit 454788d459
.
2015-03-05 15:38:16 +01:00
Wojciech Zygmunt Porczyk
f61045178a
tests: add --do-not-clean
2015-03-05 15:38:10 +01:00
Marek Marczykowski-Górecki
74d90a2886
Merge branch 'dispvm-speedup3'
2015-03-04 02:24:48 +01:00
Marek Marczykowski-Górecki
d6ea80eb5c
tests: wait before pressing ctrl-s in gedit
...
Apparently gedit doesn't handle well fast keystrokes flow.
2015-03-04 02:21:47 +01:00
Marek Marczykowski-Górecki
69f8d8aecf
dispvm: create /qubes-restore-complete qubesdb key
...
It is used by just started DispVM to notice when restore process
completed. Alternatively it could watch its own domid, but lets do it in
Xen-independent way.
2015-03-04 02:20:24 +01:00
Marek Marczykowski-Górecki
90b76b489d
dispvm: start gui-daemon in "invisible mode" when preparing DispVM
2015-03-04 02:19:29 +01:00
Marek Marczykowski-Górecki
2eeea65ce6
core: do not call GUI-related RPC services, when qrexec is not running
2015-03-04 02:18:46 +01:00
Marek Marczykowski-Górecki
7265cb9d0f
Merge branch 'dispvm-speedup' into dispvm-speedup3
...
Conflicts:
dispvm/qubes-prepare-saved-domain.sh
2015-03-02 03:35:15 +01:00
Marek Marczykowski-Górecki
c5ffba8eb7
tests: save qubes.xml after preparing VMs to backup
2015-02-22 18:24:18 +01:00
Marek Marczykowski-Górecki
1f30a03a09
tests: fix handling old backup format
2015-02-22 16:18:39 +01:00
Marek Marczykowski-Górecki
bc9e4d1fe5
linux/block-snapshot: improve support for HVM domain
...
Handle stubdomains (the same device will be removed twice).
Use target domain name instead of stubdomain name for committing
template changes.
2015-02-22 14:44:09 +01:00
Marek Marczykowski-Górecki
fc439edf2f
linux/block-snapshot: call qvm-template-commit in offline mode
...
When called from libvirt->libxl, there is libvirt lock taken on that
domain. Because of that, we can't access libvirt domain, so basically
any runtime information. Without that --offline-mode, script waited on
the lock and then was killed by libxl after a timeout - before actually
committing the changes.
2015-02-22 04:01:18 +01:00
Marek Marczykowski-Górecki
54a06f3f46
core: add dummy QubesTemplateHVm.commit_changes
...
It does nothing as root-cow.img isn't used by HVMs (yet), but this
function is required by qvm-template-commit.
2015-02-22 03:53:51 +01:00
Marek Marczykowski-Górecki
67ea5bc441
tests: encourage to release the lock after completing the setup
...
Many functions and especially standalone tools takes the lock itself, so
to prevent deadlocks, as a rule execute the tests with lock released.
Also reload qubes.xml before cleanup.
2015-02-22 01:26:38 +01:00
Marek Marczykowski-Górecki
ae6ca5c0a3
core: prevent taking database lock twice
2015-02-22 01:25:51 +01:00
Marek Marczykowski-Górecki
b858488719
Merge remote-tracking branch 'woju/master'
2015-02-21 03:09:29 +01:00
Marek Marczykowski-Górecki
454788d459
tests: use dot to separate test name components
...
This way the name can be directly copied to cmdline to rerun that
particular test.
2015-02-21 00:39:19 +01:00
Marek Marczykowski-Górecki
e65842322a
core: hold the lock after QubesVmCollection.save()
...
The statement that unlock_db() is always called directly after save() is
no longer true - tests holds the lock all the time, doing multiple saves
in the middle.
2015-02-21 00:25:50 +01:00