Commit Graph

113 Commits

Author SHA1 Message Date
Bahtiar `kalkin-` Gadimov
296fa17322
QubesVM remove obsolete *_img methods 2016-06-21 14:58:12 +02:00
Bahtiar `kalkin-` Gadimov
a4577c0dce Rename Storage.create_on_disk to Storage.create 2016-06-16 16:59:27 +02:00
Bahtiar `kalkin-` Gadimov
930fe417a8 Remove storage size and usage methods from QubesVM 2016-06-16 16:59:26 +02:00
Wojtek Porczyk
e47043ebd7 More pylint fixes 2016-06-16 13:29:16 +02:00
Wojtek Porczyk
3cb5f031a9 Fix storage initialisation 2016-06-16 13:29:15 +02:00
Wojtek Porczyk
1f302fb776 Fix "pylint fixes" wrt dir_path 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
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
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
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
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
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
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
Bahtiar `kalkin-` Gadimov
3f5a92772a
A QubesVM always has an empty DomainPool
- A DomainPool is initialized by QubesVM after Storage initialization on a
  `domain-load` event
2016-05-22 22:09:56 +02:00
Bahtiar `kalkin-` Gadimov
8959e5a77e
Implement qvm-remove
- Remove old qvm-remove
- Remove a log line from Storage, because it prints confusing lines, like:
    Removing volume kernel: /var/lib/qubes/vm-kernels/4.1.13-6/modules.img
2016-05-21 01:35:30 +02:00
Bahtiar `kalkin-` Gadimov
29f4be0f10 If vm doesnt support volume_config raise TypeError 2016-04-25 07:17:21 +02:00
Bahtiar `kalkin-` Gadimov
d7ff4b9057 Move volume xml config from QubesVM to Volume 2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
49b4951389 Storage move rename() logic to XenPool
- Fix config renaming
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
2c2a778a1d Serialize volume_config from qubes.xml 2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
fe6a35155e Move kernel file checks to LinuxKernel pool 2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
5f7cb41a21 Move Storage.clone_disk_files logic to XenPool
- Add XenVolume to identify volumes which can be cloned even if they are not in
the same pool
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
973c83cedd Move most resize logic to XenPool 2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
bdfb85ac19 Refactor Storage, Pool and XenPool
- Remove all *_dev_config methods
 - Checks if a storage image exists moved to XenPool
 - Storage.remove wraps Pool.remove()
 - Stop volumes on domain sutdown/kill
 - Warn when using deprecated methods
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
32255a7916 Reverted Storage ←→ Pool dependency
- Storage() operates on a pool and in future on multiple pools
2016-04-25 07:17:16 +02:00
Bahtiar `kalkin-` Gadimov
9d646aabd3 Add volume_config to AppVM and TemplateVM 2016-04-25 07:17:13 +02:00
Bahtiar `kalkin-` Gadimov
428dd5bc1b QubesVM.dir_path is set independent of storage 2016-04-25 07:16:37 +02:00
Bahtiar `kalkin-` Gadimov
cc7dd625d9 Loop over QubesVM.block_devices in libvirt xml 2016-04-25 07:16:36 +02:00
Bahtiar `kalkin-` Gadimov
ebb79e9c4f Fix TC_01_Properties/test_030_rename_conflict_app 2016-04-20 14:02:04 +02:00
Bahtiar `kalkin-` Gadimov
6aac0a5732 On startup-failure only force_shutdown if running
This avoids losing the exception if an exception is raised in
self.force_shutdown(), because the vm is not running or paused
2016-04-20 13:59:17 +02:00
Wojtek Porczyk
fe8fdb264b qubes/vm/qubesvm: move is_guid_running to GUI extension 2016-04-20 13:54:56 +02:00
Marek Marczykowski-Górecki
8c6fe7ed90
Merge remote-tracking branch 'origin/master' into core3-devel-mm 2016-04-11 13:03:12 +02:00
Marek Marczykowski-Górecki
424d3054f3 backup: use vm.features to store backup-specific metadata
Do not keep them in system qubes.xml.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
e8f21929ad backup: by default include all the VMs with vm.include_in_backups
If there is a need for more robust default, it should be handled at that
property.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
45d6ab3862 qubes/vm: store libvirt config in libvirt.xml, fix rename handling 2016-04-07 13:03:46 +02:00
Marek Marczykowski-Górecki
7cbe2dbd38 qubes/vm: add passio_stderr argument to vm.run_service
This allows getting error messages from service call, to provide more
meaningful error messages.
2016-04-07 12:58:05 +02:00
Marek Marczykowski-Górecki
15e032cddb qubes/vm: fix handling "None" kernel
The "None" value still makes sense for HVM domains.
2016-03-21 11:44:59 +01:00
Wojtek Porczyk
04cc2099f7 HVM part 2 2016-03-21 11:44:54 +01:00
Marek Marczykowski-Górecki
8da7416f30 vm: Remove reference to old libvirt config template
This file isn't installed anymore
2016-03-21 11:44:54 +01:00
Wojtek Porczyk
5eaf03c4a2 HVM part 1 2016-03-21 11:44:46 +01:00
Wojtek Porczyk
d766b8e110 qubes: Fix "unify event names" 2016-03-21 11:43:33 +01:00
Marek Marczykowski-Górecki
736773dbec vm: remove obsolete firewall handling code
There is no vm.write_iptables_xenstore_entry().

QubesOS/qubes-issues#1815
2016-03-21 11:43:33 +01:00
Wojtek Porczyk
0f9ca47d90 qubes/ext/guid: Move gui-related code to extension 2016-03-21 11:43:32 +01:00
Wojtek Porczyk
75dd882b83 qubes: Unify event names
Events will be named <object>-[pre-]-<verb>, where verb is in infinitive
form.
2016-03-21 11:43:32 +01:00