Marek Marczykowski-Górecki
e8c303977b
vm/adminvm: fix str(AdminVM) after changing its base
...
BaseVM have no (useful) __str__ method.
2017-06-12 10:15:13 +02:00
Marek Marczykowski-Górecki
26f25aeecd
vm/mix/net: remove cleanup_vifs
...
With libvirt in place, this isn't enough - libvirt also keep VM
configuration in its memory and adjusting xenstore doesn't change that.
In fact changing xenstore behind it back make it even worse in some
situations.
QubesOS/qubes-issues#1426
2017-06-06 22:17:00 +02:00
Marek Marczykowski-Górecki
fa1da422d1
vm/adminvm: don't base AdminVM on QubesVM
...
dom0 isn't real VM and most properties doesn't apply to it. Lets make it
more explicit.
2017-06-06 21:57:27 +02:00
Marek Marczykowski-Górecki
67fcda2cde
tests: basic tests for AppVM
...
Specifically, check if root volume is updated after template switch.
2017-06-06 03:33:31 +02:00
Marek Marczykowski-Górecki
89e025ca3b
vm: make vm.get_power_state() return 'Halted' in offline_mode
...
Again, if libvirt or even Xen isn't running, we can safely assume VM
isn't too.
2017-06-06 03:33:31 +02:00
Marek Marczykowski-Górecki
313d7422e7
tests: remove obsolete tests, formatting
2017-06-06 03:33:31 +02:00
Marek Marczykowski-Górecki
04fd2ff34a
vm: adjust VM's root volume when changing its template
...
Re-init volume config of all 'snap_on_start' volumes at template
chanage. For this, save original volume config and re-use
config_volume_from_source function introduced in previous commit.
At the same time, forbid changing template of running AppVM or any
DispVM.
QubesOS/qubes-issues#2256
2017-06-06 03:33:30 +02:00
Marek Marczykowski-Górecki
63c23c835b
vm: reduce code duplication
...
Move inheriting volume from template to a helper function.
No functional change.
QubesOS/qubes-issues#2256
2017-06-06 03:33:30 +02:00
Marek Marczykowski-Górecki
28737d16ce
Migrate qubes.NotifyTools, qubes.FeaturesRequest, qubes.NotifyUpdates
...
Make them call into qubesd. Create separate socket for "misc" calls - VM
accessible, but not part of Admin API.
2017-06-06 03:33:30 +02:00
Marek Marczykowski-Górecki
43fd1d76e8
tools/qubesd-query: add option to report failure with exit code
2017-06-06 03:33:30 +02:00
Marek Marczykowski-Górecki
05ba73bb3a
api/internal: add methods for handling host suspend
2017-06-06 03:33:29 +02:00
Marek Marczykowski-Górecki
f80fddf7ae
vm: restore code for suspending domains with PCI devices
2017-06-06 03:33:29 +02:00
Marek Marczykowski-Górecki
4c4f903fe3
vm: change kernel=None to kernel=''
...
vm.kernel property have type 'str'. Putting None there makes a lot of
troubles: it gets encoded as 'None' in qubes.xml and then loaded back as
'None' string, not None value. Also it isn't possible to assign None
value to str property throgh Admin API.
kernel='' is equally good to specify "no kernel from dom0".
QubesOS/qubes-issues#2622
2017-06-05 23:38:30 +02:00
Marek Marczykowski-Górecki
d5cd58df51
templatevm: set default netvm to None for templates
...
Since we have qrexec-based updates proxy, we can even stronger isolate
templates from outside threats.
QubesOS/qubes-issues#1854
2017-06-05 23:38:30 +02:00
Marek Marczykowski-Górecki
1ed0b14d93
vm: make vm.hvm=True by default
...
QubesOS/qubes-issues#2185
2017-06-05 23:38:30 +02:00
Marek Marczykowski-Górecki
5d3204c730
vm: remove prepare_dvm parameter from methods and events
...
It was related to DispVM savefile preparation, but it is no longer
applicable in Qubes 4.0
2017-06-05 23:38:30 +02:00
Marek Marczykowski-Górecki
018877a19c
vm: avoid starting the same VM multiple times simultaneously
...
While libvirt handle locking itself, there is also Qubes-specific
startup part. Especially starting qrexec-daemon and waiting until
qrexec-agent connect to it. When someone will attempt to start VM the
second time (or simply assume it's already running) - qrexec will not be
connected yet and the operation will fail. Solve the problem by wrapping
the whole vm.start() function with a lock, including a check if VM is
running and waiting for qrexec.
Also, do not throw exception if VM is already running.
This way, after a call to vm.start(), VM will be started with qrexec
connected - regardless of who really started it.
Note that, it will not solve the situation when someone check if VM is
running manually, like:
if not vm.is_running():
yield from vm.start()
Such code should be changed to simply:
yield from vm.start()
Fixes QubesOS/qubes-issues#2001
Fixes QubesOS/qubes-issues#2666
2017-06-05 23:38:30 +02:00
Marek Marczykowski-Górecki
1f86c9253c
rpm: depend on linux-stubdom package
...
Install both stubdom implementations: mini-os one (xen-hvm) and linux
one (xen-hvm-stubdom-linux).
QubesOS/qubes-issues#2185
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
79a8d9c58f
systemd: fix qubes-vm@.service - qvm-start no longer have --no-guid arg
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
0816f002ba
systemd: use appropriate meminfo-writer service for dom0
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
ae66d29aff
Cleanup qubes-block-cleaner from one more place
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
05f70b8397
rpm: don't set default-kernel at installation time
...
qubesd isn't running at this stage yet.
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
257c8c0821
devices : make DeviceInfo sortable
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
b08574acf3
api/internal: make GetSystemInfo not crash on not set default DispVM
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
b5a4573290
storage: remove DomainPool
...
Replaced by BlockDevice extension
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
9bb5054e50
ext: BlockDevices extension
...
Handle block devices exposed by VMs
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
866d908b6d
qubesd-query-fast: fix compile warnings, enable -Werror
2017-06-05 23:33:58 +02:00
Marek Marczykowski-Górecki
882abf2fb5
version 4.0.0
2017-06-05 23:31:54 +02:00
Marek Marczykowski-Górecki
0e073bf17e
Merge remote-tracking branch 'qubesos/pr/108'
...
* qubesos/pr/108:
last fixes (thanks, @marmarek!)
ci/pylintrc: disable wrong-import-order
qubespolicy: fix import order
Fixes from marmarek's review
qubes/tests: fix qrexec policy context
Make pylint very ♥
qubes.tests asyncio, part 2
Fix miscellaneous warnings
qubes/vm/qubesvm: don't use .run_service() for .run()
qubes/ext/gui: remove is-fully-usable and is_guid_running
qubes-rpc/admin.vm.volume.Import: fix dd flags
qubes.tests asyncio
2017-06-05 17:40:01 +02:00
Wojtek Porczyk
d9f5192cc2
last fixes (thanks, @marmarek!)
2017-06-05 14:34:06 +02:00
Marek Marczykowski-Górecki
f02f28f6d9
travis: flag codecov.io uploads with 'unittests' flag
...
We may later upload also integrations tests coverage, ease
distinguishing those two.
2017-06-02 12:31:07 +02:00
Wojtek Porczyk
dc14b839c6
ci/pylintrc: disable wrong-import-order
...
This one has false positives across different Python versions and is not
that useful anyway.
2017-06-01 12:31:15 +02:00
Wojtek Porczyk
00a81b75a3
qubespolicy: fix import order
2017-06-01 12:31:14 +02:00
Wojtek Porczyk
dc793be81f
Fixes from marmarek's review
2017-06-01 12:31:14 +02:00
Wojtek Porczyk
cb3c9a82b3
qubes/tests: fix qrexec policy context
...
Now it removes policy file if it was created while entering the context.
2017-06-01 12:31:14 +02:00
Marek Marczykowski-Górecki
8dd4258d43
travis: enable sending coverage data to codecov.io
2017-05-31 13:39:35 +02:00
Wojtek Porczyk
bbe757d0a7
Make pylint very ♥
2017-05-30 15:06:05 +02:00
Wojtek Porczyk
42cbd9ff68
qubes.tests asyncio, part 2
...
QubesOS/qubes-issues#2622
2017-05-29 19:08:38 +02:00
Wojtek Porczyk
df03800278
Fix miscellaneous warnings
...
Among them:
- explicitly close files (possibly using with: syntax)
- use non-deprecated methods
2017-05-29 17:34:15 +02:00
Wojtek Porczyk
b212a75ba3
qubes/vm/qubesvm: don't use .run_service() for .run()
...
QubesOS/qubes-issues#2622
2017-05-29 17:34:15 +02:00
Wojtek Porczyk
a9755ed76a
qubes/ext/gui: remove is-fully-usable and is_guid_running
2017-05-29 17:34:15 +02:00
Wojtek Porczyk
0fdcbfc237
qubes-rpc/admin.vm.volume.Import: fix dd flags
...
QubesOS/qubes-issues#2622
2017-05-29 17:34:15 +02:00
Wojtek Porczyk
b256af3bfb
qubes.tests asyncio
...
QubesOS/qubes-issues#2622
2017-05-29 17:34:15 +02:00
Wojtek Porczyk
345c16aa47
doc/manpages: fix qubes-create.1
...
The --property option went out in
83eef56f9d
.
2017-05-26 17:19:30 +02:00
Marek Marczykowski-Górecki
7f3dd8b3d7
storage: don't fail on import if lvm is not installed
2017-05-26 15:08:20 +02:00
Marek Marczykowski-Górecki
e54cc11a2c
vm: expose to VM only features with 'service/' prefix
...
And place them in /qubes-service/ QubesDB directory. This allows
extensions to easily store some data not exposed to VM, but also have
control what VM will see. And at the same time, it make it compatible
with existing services framework
QubesOS/qubes-issues#1637
2017-05-26 15:08:19 +02:00
Marek Marczykowski-Górecki
2c01504a50
Add default policy for qubes.UpdatesProxy service
...
QubesOS/qubes-issues#1854
2017-05-26 15:08:19 +02:00
Marek Marczykowski-Górecki
6297919a72
rpm: drop dependency on now obsolete qubes-core-dom0-doc package
2017-05-26 15:08:18 +02:00
Marek Marczykowski-Górecki
607dcbaf37
admin-api: fix handling admin.vm.property.Set with None VM value
...
Setting VMProperty to None VM should be encoded as '' value (according
to VMProperty._none_value). But value validation rejected this value.
QubesOS/qubes-issues#2622
2017-05-26 15:08:18 +02:00
Marek Marczykowski-Górecki
305fb5b6d0
Move qvm-template-postprocess tool to core-admin-client
...
Since implementing admin.vm.volume.Import, this migrated to Admin API.
2017-05-26 15:08:17 +02:00