qubesvm: Let HVMs enter 'Running' state

Prior to this commit, a properly configured Linux HVM would not
transition from the 'Transient' state to the 'Running' state according
to qvm-ls output, even if the HVM in question had the 'qrexec' feature
disabled.

This issue is caused by an unconditional qrexec check in the
'on_domain_is_fully_usable' method, and is resolved by adding
a check that short-circuits the qrexec check if the aforementioned
feature is not enabled for the VM in question.
This commit is contained in:
M. Vefa Bicakci 2020-01-05 16:13:04 -05:00
parent d81d6a9267
commit 2d55841a5e
No known key found for this signature in database
GPG Key ID: 1DF87CE3B3A5DFAF

View File

@ -1953,9 +1953,11 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
Currently this checks for running qrexec.
""" # pylint: disable=unused-argument
# Running gui-daemon implies also VM running
if not self.is_qrexec_running():
yield False
if self.features.check_with_template('qrexec', False):
# Running gui-daemon implies also VM running
yield self.is_qrexec_running()
else:
yield True
# memory and disk