Add power state to get_system_info

For qrexec policy, to implement 'autostart'
(see QubesOS/qubes-issues#5952).
This commit is contained in:
Paweł Marczewski 2020-07-23 13:32:16 +02:00
parent 784878f1f7
commit 4acf69e8ec
No known key found for this signature in database
GPG Key ID: DE42EE9B14F96465
2 changed files with 5 additions and 0 deletions

View File

@ -42,6 +42,7 @@ def get_system_info(app):
'icon': str(domain.label.icon), 'icon': str(domain.label.icon),
'guivm': (domain.guivm.name if getattr(domain, 'guivm', None) 'guivm': (domain.guivm.name if getattr(domain, 'guivm', None)
else None), else None),
'power_state': domain.get_power_state(),
} for domain in app.domains } for domain in app.domains
}} }}
return system_info return system_info

View File

@ -150,6 +150,7 @@ class TC_00_API_Misc(qubes.tests.QubesTestCase):
self.dom0.default_dispvm = None self.dom0.default_dispvm = None
self.dom0.template_for_dispvms = False self.dom0.template_for_dispvms = False
self.dom0.label.icon = 'icon-dom0' self.dom0.label.icon = 'icon-dom0'
self.dom0.get_power_state.return_value = 'Running'
del self.dom0.guivm del self.dom0.guivm
vm = mock.NonCallableMock(spec=qubes.vm.qubesvm.QubesVM) vm = mock.NonCallableMock(spec=qubes.vm.qubesvm.QubesVM)
@ -159,6 +160,7 @@ class TC_00_API_Misc(qubes.tests.QubesTestCase):
vm.template_for_dispvms = True vm.template_for_dispvms = True
vm.label.icon = 'icon-vm' vm.label.icon = 'icon-vm'
vm.guivm = vm vm.guivm = vm
vm.get_power_state.return_value = 'Halted'
self.domains['vm'] = vm self.domains['vm'] = vm
ret = json.loads(self.call_mgmt_func(b'internal.GetSystemInfo')) ret = json.loads(self.call_mgmt_func(b'internal.GetSystemInfo'))
@ -171,6 +173,7 @@ class TC_00_API_Misc(qubes.tests.QubesTestCase):
'template_for_dispvms': False, 'template_for_dispvms': False,
'icon': 'icon-dom0', 'icon': 'icon-dom0',
'guivm': None, 'guivm': None,
'power_state': 'Running',
}, },
'vm': { 'vm': {
'tags': ['tag3', 'tag4'], 'tags': ['tag3', 'tag4'],
@ -179,6 +182,7 @@ class TC_00_API_Misc(qubes.tests.QubesTestCase):
'template_for_dispvms': True, 'template_for_dispvms': True,
'icon': 'icon-vm', 'icon': 'icon-vm',
'guivm': 'vm', 'guivm': 'vm',
'power_state': 'Halted',
} }
} }
}) })