Use correct bool properties parsing by default

Boolean properties require specific setter to properly handle literal
"True" and "False" values. Previously it required all bool properties to
include 'setter=qubes.property.bool' in addition to 'type=bool'.
This fixes loading some boolean properties from qubes.xml. Specifically
at least include_in_backups on DispVM class lacked setter, which
resulted in property being reset to True automatically on qubesd
restart.

Fixes QubesOS/qubes-issues#4831
This commit is contained in:
Marek Marczykowski-Górecki 2019-02-18 19:43:34 +01:00
parent c5cfb81b94
commit adbc618545
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -195,6 +195,8 @@ class property: # pylint: disable=redefined-builtin,invalid-name
doc=None):
# pylint: disable=redefined-builtin
self.__name__ = name
if setter is None and type is bool:
setter = qubes.property.bool
self._setter = setter
self._saver = saver if saver is not None else (
lambda self, prop, value: str(value))