Преглед на файлове

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 години
родител
ревизия
adbc618545
променени са 1 файла, в които са добавени 2 реда и са изтрити 0 реда
  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))