Ver código fonte

features: serialize True as '1'

Do the same as core-admin code.
Marek Marczykowski-Górecki 6 anos atrás
pai
commit
0fae70be53

+ 3 - 2
qubesadmin/features.py

@@ -42,9 +42,10 @@ class Features(object):
         self.vm.qubesd_call(self.vm.name, 'admin.vm.feature.Remove', key)
 
     def __setitem__(self, key, value):
-        if value is False:
+        if isinstance(value, bool):
             # False value needs to be serialized as empty string
-            self.vm.qubesd_call(self.vm.name, 'admin.vm.feature.Set', key, b'')
+            self.vm.qubesd_call(self.vm.name, 'admin.vm.feature.Set', key,
+                b'1' if value else b'')
         else:
             self.vm.qubesd_call(self.vm.name, 'admin.vm.feature.Set', key,
                 str(value).encode())

+ 2 - 0
qubesadmin/tests/backup/backupcompatibility.py

@@ -1354,6 +1354,8 @@ class TC_10_BackupCompatibility(qubesadmin.tests.backup.BackupTestCase):
             for feature, value in vm['features'].items():
                 if value is False:
                     value = ''
+                elif value is True:
+                    value = '1'
                 self.app.expected_calls[
                     (name, 'admin.vm.feature.Set', feature,
                     str(value).encode())] = b'0\0'

+ 1 - 1
qubesadmin/tests/features.py

@@ -78,7 +78,7 @@ class TC_00_Features(qubesadmin.tests.QubesTestCase):
 
     def test_021_set_bool(self):
         self.app.expected_calls[
-            ('test-vm', 'admin.vm.feature.Set', 'feature1', b'True')] = \
+            ('test-vm', 'admin.vm.feature.Set', 'feature1', b'1')] = \
             b'0\0'
         self.vm.features['feature1'] = True
         self.assertAllCalled()

+ 2 - 2
qubesadmin/tests/tools/qvm_template_postprocess.py

@@ -243,7 +243,7 @@ class TC_00_qvm_template_postprocess(qubesadmin.tests.QubesTestCase):
         self.app.expected_calls[
             ('test-vm', 'admin.vm.property.Reset', 'netvm', None)] = b'0\0'
         self.app.expected_calls[
-            ('test-vm', 'admin.vm.feature.Set', 'qrexec', b'True')] = b'0\0'
+            ('test-vm', 'admin.vm.feature.Set', 'qrexec', b'1')] = b'0\0'
         self.app.expected_calls[
             ('test-vm', 'admin.vm.Start', None, None)] = b'0\0'
         self.app.expected_calls[
@@ -293,7 +293,7 @@ class TC_00_qvm_template_postprocess(qubesadmin.tests.QubesTestCase):
         self.app.expected_calls[
             ('test-vm', 'admin.vm.property.Reset', 'netvm', None)] = b'0\0'
         self.app.expected_calls[
-            ('test-vm', 'admin.vm.feature.Set', 'qrexec', b'True')] = b'0\0'
+            ('test-vm', 'admin.vm.feature.Set', 'qrexec', b'1')] = b'0\0'
         self.app.expected_calls[
             ('test-vm', 'admin.vm.Start', None, None)] = b'0\0'
         self.app.expected_calls[