Commit Graph

4231 Commits

Author SHA1 Message Date
Wojtek Porczyk
677a3e51f4 Move libvirt XML network device to jinja 2016-06-16 13:29:15 +02:00
Wojtek Porczyk
ba20254888 Rewrite PCI attaching/detaching from xl to libvirt
The only remaining part is querying vm-side BDF. That can't be done
in libvirt.
2016-06-16 13:29:15 +02:00
Wojtek Porczyk
e187fbcaf1 Remove qubes-guid manpage
There is another, better one, in the proper package.
2016-06-16 13:15:24 +02:00
Wojtek Porczyk
129f55fe36 Handle host e820 memory map feature
This is port of marmarek's "core: add pci_e820_host property"

QubesOS/qubes-issues#2019
2016-06-13 23:20:39 +02:00
Wojtek Porczyk
8de987443c Fix whitespace in libvirt template 2016-06-13 22:09:48 +02:00
Wojtek Porczyk
63b6674fbd fix qvm-ls display of cpu_time
QubesOS/qubes-core-admin#27
2016-06-13 19:10:01 +02:00
Wojtek Porczyk
6a10daf7be Merge branch 'master' into core3-devel
Remains to be fixed:
  88cb62fc
  d2640b51
  958c2926
2016-06-13 19:03:46 +02:00
Wojtek Porczyk
6ade5736d7 pylint fixes 2016-06-10 21:27:29 +02:00
Wojtek Porczyk
6895f34a7f qubes/vm/qubesvm: change type of exception 2016-06-10 21:27:29 +02:00
Wojtek Porczyk
3b08e85a2d qubes/tests/init: Fix VMCollection reference 2016-06-10 21:27:29 +02:00
Wojtek Porczyk
37018952d1 test-packages/dbus: add SystemBus
This is needed in travis.
2016-06-10 21:27:29 +02:00
Wojtek Porczyk
c925eecd40 travis-ci config file 2016-06-10 21:27:26 +02:00
Marek Marczykowski-Górecki
7f86782e14
version 3.2.3 2016-06-07 06:46:30 +02:00
Marek Marczykowski-Górecki
d0ba43f253
core: start guid as normal user even when VM started by root
Another attempt to avoid permissions-related problems...

QubesOS/qubes-issues#1768
2016-06-06 02:21:08 +02:00
Marek Marczykowski-Górecki
89d002a031
core: use runuser instead of sudo for switching root->user
There are problems with using sudo in early system startup
(systemd-logind not running yet, pam_systemd timeouts). Since we don't
need full session here, runuser is good enough (even better: faster).
2016-06-06 02:19:51 +02:00
Marek Marczykowski-Górecki
2265fd3d52
core: start qubesdb as normal user, even when VM is started by root
On VM start, old qubesdb-daemon is terminated (if still running). In
practice it happen only at VM startart (shutdown and quickly start
again). But in that case, if the VM was started by root, such operation
would fail.
So when VM is started by root, make sure that qubesdb-daemon will be
running as normal user (the first user in group 'qubes' - there should
be only one).

Fixes QubesOS/qubes-issues#1745
2016-06-06 02:19:28 +02:00
Marek Marczykowski-Górecki
a857ac3afb
Install dom0 qvm-* tools man pages by default 2016-06-04 16:57:13 +02:00
Marek Marczykowski-Górecki
88cb62fcf6
core: add pci_e820_host property
Enable e820_host option for VMs with PCI devices (to allow VM kernel to
deal with address space conflicts). But add a property to allow
disabling it.

Fixes QubesOS/qubes-issues#2019
2016-06-04 16:52:02 +02:00
Wojtek Porczyk
5a76d0b03b qubes/vm/dispvm: Add methods for creating and destroying
fixes QubesOS/qubes-issues#866
2016-06-02 19:55:42 +02:00
Wojtek Porczyk
a719e0d93d qubes/vm/qubesvm: allow looking up by UUID
Also, allow lookup using VM from other app.

QubesOS/qubes-issues#866
2016-06-02 17:18:33 +02:00
Wojtek Porczyk
476b681749 qubes/vm/qubesvm: return self from methods modifying state
This is helpful when writing oneliners.

QubesOS/qubes-issues#866
2016-06-02 17:17:05 +02:00
Wojtek Porczyk
27d0e11872 qubes/tests/vm: fix tests 2016-06-02 15:46:01 +02:00
Wojtek Porczyk
a615a45ecd Merge remote-tracking branch 'woju/pull/13/head' into core3-devel 2016-06-02 13:24:15 +02:00
Marek Marczykowski-Górecki
7e0af81ecc qubes/vm: fix PCI device detach 2016-06-02 13:22:48 +02:00
Marek Marczykowski-Górecki
485e75091b tests: fix checking rename 2016-06-02 13:22:43 +02:00
Marek Marczykowski-Górecki
077dec8d2e tests: fix rename test 2016-06-02 13:22:40 +02:00
Marek Marczykowski-Górecki
bb2e1f2870 qubes/vm: handle VM toplevel directory in QubesVM object not Storage
This directory is not only for disk images (in fact disk images may be
elsewhere depending on choosen volume pool), so it would be cleaner to
handle (create/remove) it directly in QubesVM class.
2016-06-02 13:22:07 +02:00
Marek Marczykowski-Górecki
ed6e69b77e qubes/vm: minor 2016-06-02 13:14:19 +02:00
Marek Marczykowski-Górecki
2d8d78bebe qubes/vm/standalonevm: set volume_config
Otherwise VM wouldn't have any hard disk...
2016-06-02 13:14:02 +02:00
Marek Marczykowski-Górecki
5b5f290c23 qubes/vm: fix setting autostart property
This is actually workaround for systemd bug reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=1181922

qubesos/qubes-issues#925

This is migration of 9bfcb72722 commit to
core3.
2016-06-02 13:13:21 +02:00
Marek Marczykowski-Górecki
b37bf55f5e qubes/vm: fix handling rename
Libvirt VM config is no longer named after VM.
2016-06-02 13:10:56 +02:00
Marek Marczykowski-Górecki
5e2b617c6f qubes/vm: fix parameters for some even handlers 2016-06-02 13:10:43 +02:00
Marek Marczykowski-Górecki
2bb73ab0a1 qubes/vm: add validators for many properties 2016-06-02 13:10:28 +02:00
Marek Marczykowski-Górecki
36644f3710 qubes/vm: initialize vm.volumes in one place
Move it to QubesVM, instead of each class separately.
2016-06-02 13:10:02 +02:00
Marek Marczykowski-Górecki
28591fa6be tests: remove/skip some tests
1. It is unclear yet whether dispvm_netvm will be implemented in core3, but
probably not.
2. Remove tests for setting memory/cpu above host resouces - rejecting
those values at property set time would break backup restore on some
machines (when migrating from bigger to smaller system).
2016-06-02 13:09:39 +02:00
Marek Marczykowski-Górecki
bf0966bfcf tests: fix get_label mockup to return meaningful values
Reject invalid argument.
2016-06-02 13:08:48 +02:00
Marek Marczykowski-Górecki
98115eb541 tests/backup: fix to core3 API - there is no verbose= argument 2016-06-02 13:08:03 +02:00
Marek Marczykowski-Górecki
0a21300872 qubes/storage: unify _remove_if_exists argument type
In some places full volume object was called, in others - just file
path. Since this function is also used in some volume init/teardown, use
path everywhere.
2016-06-02 13:07:35 +02:00
Marek Marczykowski-Górecki
574834ac68 qubes/core2migration: rework load order
To successfully load all the data, proceed in order:
- set app.default_kernel
- load all templates
- set app.default_template
- load other VMs
- update network dependencies between VMs
- set other global properties
2016-06-02 12:44:31 +02:00
Marek Marczykowski-Górecki
554a99610f qubes/core2migration: use app.load_initial_values
Reduce code duplication.
2016-06-02 12:43:25 +02:00
Marek Marczykowski-Górecki
692f75353e qubes/app: split initialising empty Qubes object from saving it
It may be useful to create fresh Qubes() object but not save it yet
before setting other things. One such case is migration from core2.
2016-06-02 12:42:37 +02:00
Marek Marczykowski-Górecki
2909d252d6 backup: get_fisk_usage is now in storage.file 2016-06-02 12:41:59 +02:00
Marek Marczykowski-Górecki
ff78b26f66 qubes: implement offline mode
Apparently the most important (the only?) property required in offline
mode is "is_running". So let's patch it to return False and make sure
any other libvirt usage would result in failure.

Or maybe better simply returh False in vm.is_running, when libvirt
connection fails? But then it would not be possible to use offline mode
and have (some, probably unrelated) libvirtd running at the same time.

Fixes QubesOS/qubes-issues#2008
2016-06-02 12:41:26 +02:00
Marek Marczykowski-Górecki
b119b2c36b storage/file: simplify search for origin volume of snapshot/read-only
Check directly vm.template, throwing AttributeError when not found.
There may be some value in converting it to more descriptive error, but
since that's mostly for internal users (not user facing actions) don't
bother for now.

QubesOS/qubes-issues#1842
2016-06-02 12:38:07 +02:00
Marek Marczykowski-Górecki
07b72ef3fd tests: fix after moving VMCollection to qubes.app 2016-06-02 12:37:30 +02:00
Marek Marczykowski-Górecki
c965024287 qubes/vm: Implement Disposable VM
Implement DispVM as a VM based on AppVM.

QubesOS/qubes-issues#866
2016-06-02 12:37:19 +02:00
Marek Marczykowski-Górecki
54c70766a4 qubes/storage: allow snapshots of snapshots
It may make sense to create 'snapshot' volume out of already 'snapshot',
not only 'origin'. In pracice it will exactly the same as 'snapshot
connected directly to 'origin'.

QubesOS/qubes-issues#866
2016-06-02 12:37:00 +02:00
Marek Marczykowski-Górecki
48176d51f1 qubes/storage: minor error message fix 2016-06-02 12:29:39 +02:00
Marek Marczykowski-Górecki
d80f34888d qubes/storage: fix getting origin pool
volume_config parameter is about target volume, not origin.

QubesOS/qubes-issues#1842
2016-06-02 12:29:30 +02:00
Marek Marczykowski-Górecki
b24ab45d00 qubes/vm: fix network attach/detach 2016-06-02 12:28:53 +02:00