Commit Graph

4794 Commits

Author SHA1 Message Date
Marek Marczykowski-Górecki
24d660d61e
backup: add option to on-the-fly renaming conflicting VMs
Fixes QubesOS/qubes-issues#869
2015-11-27 20:00:34 +01:00
Marek Marczykowski-Górecki
3065431058
tests: include NetVM in basic backup tests 2015-11-27 20:00:34 +01:00
Marek Marczykowski-Górecki
377d3ad43a
rpm: do not motify /etc/udev/rules.d/xen-backend.rules anymore
Xen 4.6 no longer uses udev to call hotplug scripts.

QubesOS/qubes-issues#1361
2015-11-27 20:00:34 +01:00
Marek Marczykowski-Górecki
3e79ff6a37
tests: release qubes.xml lock while killing VMs
Otherwise hotplug scripts may deadlock on qvm-template-commit and
consequently do not release loop and device-mapper devices. Which means
also not releasing disk space for underlying images.

Fixes QubesOS/qubes-issues#1458
2015-11-27 20:00:34 +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
fef8761f01
qmemman: improve check whether VM is still running
In some cases it may happen that qmemman or other application using
xenstore will re-create VM directory in xenstore just after VM was
destroyed. For example when multiple VMs was destroyed at the same time,
but qmemman will kick off just at first @releaseDomain event - other VMs
will still be there (at xenstore-list time). This means that qmemman
will consider them when redistributing memory (of just destroyed one),
so will update memory/target entry of every "running" VM. And at this
point it may recreate VM directory of another already destroyed VM.

Generally fixing this race condition would require running all the
operations (from xenstore-ls, to setting memory/target) in a single
xenstore transaction. But this can be lengthly process. And if any other
modification happens in the meantime, transaction will rejected and
qmemman would need to redo all the changes. Not worth the effort.

Fixes QubesOS/qubes-issues#1409
2015-11-27 20:00:33 +01:00
Marek Marczykowski-Górecki
f525a58134
core: adjust for updated stubdom support in libvirt
Fixes QubesOS/qubes-issues#1456
2015-11-27 20:00:33 +01:00
Marek Marczykowski-Górecki
2fdbf51ccc
core: have QubesVmCollection.unlock_db no-op if not locked 2015-11-27 20:00:19 +01:00
Bahtiar `kalkin-` Gadimov
f5cef35cdf Fix circular deps workaround in Pool.vmdir_path() 2015-11-25 16:01:28 +01:00
Bahtiar `kalkin-` Gadimov
85421e3f48 Move device names from XenStorage to QubesVmStorage 2015-11-25 12:49:56 +01:00
Bahtiar `kalkin-` Gadimov
9b23576ff6 Provide method format_disk_dev() to all storages
The method XenStorage._format_disk_dev() generates the xml config for a device.
It is not specific to the Xen file storage implementation. It can and must be
reused by other storage implementations
2015-11-25 12:48:47 +01:00
Bahtiar `kalkin-` Gadimov
feaaaa75fa Move the vmdir logic from XenPool to Pool
Any storage implementation needs this logic for saving the vm config and
`*.desktop` files.
2015-11-25 12:47:25 +01:00
Marek Marczykowski-Górecki
cc3ab7aaa1
Merge remote-tracking branch 'qubesos/pr/11'
* qubesos/pr/11:
  libvirtError in _update_libvirt_domain is no longer silently swallowed.
2015-11-25 03:46:55 +01:00
Marek Marczykowski-Górecki
aeec42dacf
tests: PV Grub: ensure that latest packages are installed
Flush yum case before that.
2015-11-25 03:16:24 +01:00
Marek Marczykowski-Górecki
64343572c1
tests: handle older df version in resize private.img tests
df --output=size isn't available in Debian (7, 8).
2015-11-25 03:15:23 +01:00
Marek Marczykowski-Górecki
a14e1cc86f
tests: move enter_keys_in_window to base SystemTestsMixin class
This ways it will be available also in DispVM tests (already referenced
there), and others.
2015-11-25 03:14:23 +01:00
Marek Marczykowski-Górecki
de275cc917
core: leave volatile.img structure creation for the VM
This is already handled by a script in initramfs.

Fixes QubesOS/qubes-issues#1308
2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
564ea5d64c
tests: check if qvm-move-to-vm properly fails in case of out of disk space
Regression test for QubesOS/qubes-issues#1355
2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
d7ab2d985d
tests: use wait_for_window/enter_keys_in_window wrappers when applicable
Reduce code duplication.
2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
db35e03aa7
tests: backup to VM tests
Regression tests for QubesOS/qubes-issues#1371 and
QubesOS/qubes-issues#1359

Fixes QubesOS/qubes-issues#1435
2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
736e278865
tests: fix wait_for_window function
The `show` parameter wasn't handled (show=False was assumed...)
2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
760786d999
tests: minor formating 2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
0c476f014d
backup: avoid deadlock when VM process fails
If SendWorker queue is full, check if that thread is still alive.
Otherwise it would deadlock on putting an entry to that queue.
This also requires that SendWorker must ensure that the main thread
isn't currently waiting for queue space when it fails. We can do this by
simply removing an entry from a queue - so on the next iteration
SendWorker would be already dead and main thread would notice it.
Getting an entry from queue in such (error) situation is harmless,
because other checks will notice it's an error condition.

Fixes QubesOS/qubes-issues#1359
2015-11-25 01:35:04 +01:00
Marek Marczykowski-Górecki
c6df81ccff
Merge remote-tracking branch 'qubesos/pr/6' 2015-11-25 01:34:36 +01:00
Marek Marczykowski-Górecki
c337494ba6
Add qvm-pci --add-class option for adding all devices of given class
This should reduce code duplication in most of initial setup like places
- currently firstboot and live image setup.
2015-11-25 01:34:15 +01:00
Vít Šesták
eb97c5652f libvirtError in _update_libvirt_domain is no longer silently swallowed.
I had some issue with fstrim and the missing else had caused the code to continue and fail later with a non-descriptive error message. This commit makes the error message more descriptive and helpful.
2015-11-25 01:16:27 +01:00
Bahtiar `kalkin-` Gadimov
2ebd20049d Refactor appmenus paths to core-admin-linux 2015-11-22 12:21:40 +01:00
Bahtiar `kalkin-` Gadimov
885dc5cd81 Rename storage dir to dir_path, type to driver
Bad idea to use attributes which are named after built in functions.
2015-11-21 14:46:23 +01:00
Bahtiar `kalkin-` Gadimov
9eee00c6d7 QubesNetVm and subclasses use servicevm/ as vmdir 2015-11-17 21:21:02 +01:00
Bahtiar `kalkin-` Gadimov
1934f06869 XenStorage add DisposableVm handling 2015-11-17 21:15:13 +01:00
Bahtiar `kalkin-` Gadimov
989eab1d72 Add file image tests to tests/storage.py 2015-11-17 19:37:21 +01:00
Bahtiar `kalkin-` Gadimov
0ba0259d1a Extend documentation test/storage.py 2015-11-17 19:37:21 +01:00
Bahtiar `kalkin-` Gadimov
710b95a6ac Fix app icons errors 2015-11-17 19:37:20 +01:00
Bahtiar `kalkin-` Gadimov
76224dac86 Path to the Vm images is set by the storage
- This moves the logic for setting the path to the storage specific class like
  XenStore
2015-11-17 19:37:20 +01:00
Bahtiar `kalkin-` Gadimov
348030bf9c Add --storage-pool option to qvm-create 2015-11-17 19:37:20 +01:00
Bahtiar `kalkin-` Gadimov
0bc0bc9045 XenStorage make sure subdirs exist in pool dir 2015-11-17 19:37:20 +01:00
Bahtiar `kalkin-` Gadimov
58f23ca392 Add configurable pool_dir to XenPool 2015-11-17 19:37:20 +01:00
Bahtiar `kalkin-` Gadimov
16d480cf4c Add storage add_pool & remove_pool 2015-11-17 19:37:19 +01:00
Bahtiar `kalkin-` Gadimov
26711e7e9a Use default pool_config if pool name is 'default' 2015-11-17 19:37:19 +01:00
Bahtiar `kalkin-` Gadimov
78891dd70f QubesVm save the name of the storage pool used 2015-11-17 19:37:19 +01:00
Bahtiar `kalkin-` Gadimov
d1685a13df Add storage.pool_exists 2015-11-17 19:37:19 +01:00
Bahtiar `kalkin-` Gadimov
8e0207a199 Rename QubesXenVmStorage to XenStorage 2015-11-17 19:37:19 +01:00
Bahtiar `kalkin-` Gadimov
bfaf37dae5 Add pool config parsing 2015-11-17 19:37:18 +01:00
Bahtiar `kalkin-` Gadimov
15d5e6edbb Add Pool & XenPool 2015-11-17 19:37:18 +01:00
Bahtiar `kalkin-` Gadimov
7550fccf94 Removed WNI 2015-11-17 19:37:18 +01:00
Marek Marczykowski-Górecki
520b546d75
version 3.1.3 2015-11-15 04:20:45 +01:00
Marek Marczykowski-Górecki
2ccfff438a
tests: use xterm instead of gnome-terminal in DispVM tests
There is no gnome-terminal in minimal template.
2015-11-15 02:53:48 +01:00
Marek Marczykowski-Górecki
bae493d015
Kill remaining qubesdb-daemon instances after shutting down all the VMs
It may happen (especially when VM doesn't close cleanly and needs to be
killed) that qubesdb-daemon will not notice VM shutdown immediately.
Normally it would stop after 60s timeout, but speed it up in case of
system shutdown

QubesOS/qubes-issues#1425
2015-11-15 02:06:19 +01:00
Marek Marczykowski-Górecki
7359e394bc
core: detach connected VMs when shutting down NetVM
This is workaround for missing libxl/libvirt functionality: QubesOS/qubes-issues#1426

Also it should improve system shutdown time, as this is the situation
where all the VMs are shutting down simultaneously.

Fixes QubesOS/qubes-issues#1425
2015-11-15 02:06:18 +01:00
Marek Marczykowski-Górecki
46cbb4a133
Prevent stopping xenconsoled before shutting down all the VMs
Otherwise still running VMs will hang, consuming 100% CPU.

QubesOS/qubes-issues#1425
2015-11-14 23:29:21 +01:00