Kaynağa Gözat

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 yıl önce
ebeveyn
işleme
adbc618545
1 değiştirilmiş dosya ile 2 ekleme ve 0 silme
  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))