api/internal: extract get_system_info() function
This will be useful in other places too. QubesOS/qubes-issues#5099
This commit is contained in:
parent
135eda0582
commit
879ee9e7d6
@ -30,6 +30,23 @@ import qubes.vm.adminvm
|
||||
import qubes.vm.dispvm
|
||||
|
||||
|
||||
def get_system_info(app):
|
||||
system_info = {'domains': {
|
||||
domain.name: {
|
||||
'tags': list(domain.tags),
|
||||
'type': domain.__class__.__name__,
|
||||
'template_for_dispvms':
|
||||
getattr(domain, 'template_for_dispvms', False),
|
||||
'default_dispvm': (domain.default_dispvm.name if
|
||||
getattr(domain, 'default_dispvm', None) else None),
|
||||
'icon': str(domain.label.icon),
|
||||
'guivm': (domain.guivm.name if getattr(domain, 'guivm', None)
|
||||
else None),
|
||||
} for domain in app.domains
|
||||
}}
|
||||
return system_info
|
||||
|
||||
|
||||
class QubesInternalAPI(qubes.api.AbstractQubesAPI):
|
||||
''' Communication interface for dom0 components,
|
||||
by design the input here is trusted.'''
|
||||
@ -42,19 +59,7 @@ class QubesInternalAPI(qubes.api.AbstractQubesAPI):
|
||||
self.enforce(self.dest.name == 'dom0')
|
||||
self.enforce(not self.arg)
|
||||
|
||||
system_info = {'domains': {
|
||||
domain.name: {
|
||||
'tags': list(domain.tags),
|
||||
'type': domain.__class__.__name__,
|
||||
'template_for_dispvms':
|
||||
getattr(domain, 'template_for_dispvms', False),
|
||||
'default_dispvm': (domain.default_dispvm.name if
|
||||
getattr(domain, 'default_dispvm', None) else None),
|
||||
'icon': str(domain.label.icon),
|
||||
'guivm': (domain.guivm.name if getattr(domain, 'guivm', None)
|
||||
else None),
|
||||
} for domain in self.app.domains
|
||||
}}
|
||||
system_info = get_system_info(self.app)
|
||||
|
||||
return json.dumps(system_info)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user