Move vm.appvms to QubesVM

First, TemplateVM is not used anymore (see previous commit). Second,
don't harcode on client side that "only TemplateVM can be a template for
any VM" (which actually isn't true: AppVM can be a template for DispVM).
This commit is contained in:
Marek Marczykowski-Górecki 2017-10-02 20:50:33 +02:00
parent edcaed537a
commit b55f615942
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -315,6 +315,21 @@ class QubesVM(qubesadmin.base.PropertyHolder):
e.cmd = command
raise e
@property
def appvms(self):
''' Returns a generator containing all domains based on the current
TemplateVM.
Do not check vm type of self, core (including its extentions) have
ultimate control what can be a template of what.
'''
for vm in self.app.domains:
try:
if vm.template == self:
yield vm
except AttributeError:
pass
@property
def klass(self):
''' Qube class '''
@ -342,18 +357,8 @@ class StandaloneVM(QubesVM):
class TemplateVM(QubesVM):
'''Template for AppVM'''
pass
@property
def appvms(self):
''' Returns a generator containing all domains based on the current
TemplateVM.
'''
for vm in self.app.domains:
try:
if vm.template == self:
yield vm
except AttributeError:
pass
class DispVMWrapper(QubesVM):
'''Wrapper class for new DispVM, supporting only service call