Преглед на файлове

vm: allow StandaloneVM to be a DVM template

Fixes QubesOS/qubes-issues#4670
Marek Marczykowski-Górecki преди 5 години
родител
ревизия
f4528296b5
променени са 2 файла, в които са добавени 10 реда и са изтрити 2 реда
  1. 7 1
      qubes/vm/dispvm.py
  2. 3 1
      qubes/vm/standalonevm.py

+ 7 - 1
qubes/vm/dispvm.py

@@ -26,12 +26,18 @@ import qubes.vm.qubesvm
 import qubes.vm.appvm
 import qubes.config
 
+def _setter_template(self, prop, value):
+    if not getattr(value, 'template_for_dispvms', False):
+        raise qubes.exc.QubesPropertyValueError(self, prop, value,
+            'template for DispVM must have template_for_dispvms=True')
+    return value
+
 class DispVM(qubes.vm.qubesvm.QubesVM):
     '''Disposable VM'''
 
     template = qubes.VMProperty('template',
                                 load_stage=4,
-                                vmclass=qubes.vm.appvm.AppVM,
+                                setter=_setter_template,
                                 doc='AppVM, on which this DispVM is based.')
 
     dispid = qubes.property('dispid', type=int, write_once=True,

+ 3 - 1
qubes/vm/standalonevm.py

@@ -19,10 +19,12 @@
 #
 
 import qubes.events
+import qubes.vm.mix.dvmtemplate
 import qubes.vm.qubesvm
 import qubes.config
 
-class StandaloneVM(qubes.vm.qubesvm.QubesVM):
+class StandaloneVM(qubes.vm.mix.dvmtemplate.DVMTemplateMixin,
+        qubes.vm.qubesvm.QubesVM):
     '''Standalone Application VM'''
 
     def __init__(self, *args, **kwargs):