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
|
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):
|
class QubesInternalAPI(qubes.api.AbstractQubesAPI):
|
||||||
''' Communication interface for dom0 components,
|
''' Communication interface for dom0 components,
|
||||||
by design the input here is trusted.'''
|
by design the input here is trusted.'''
|
||||||
@ -42,19 +59,7 @@ class QubesInternalAPI(qubes.api.AbstractQubesAPI):
|
|||||||
self.enforce(self.dest.name == 'dom0')
|
self.enforce(self.dest.name == 'dom0')
|
||||||
self.enforce(not self.arg)
|
self.enforce(not self.arg)
|
||||||
|
|
||||||
system_info = {'domains': {
|
system_info = get_system_info(self.app)
|
||||||
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
|
|
||||||
}}
|
|
||||||
|
|
||||||
return json.dumps(system_info)
|
return json.dumps(system_info)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user