Browse Source

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
Marek Marczykowski-Górecki 5 years ago
parent
commit
adbc618545
1 changed files with 2 additions and 0 deletions
  1. 2 0
      qubes/__init__.py

+ 2 - 0
qubes/__init__.py

@@ -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))