Просмотр исходного кода

qubes/storage: fix storage instantiation

Wojtek Porczyk 9 лет назад
Родитель
Сommit
8e16dd2b28
4 измененных файлов с 11 добавлено и 4 удалено
  1. 1 2
      qubes/config.py
  2. 1 1
      qubes/storage/__init__.py
  3. 6 0
      qubes/tests/init.py
  4. 3 1
      qubes/vm/qubesvm.py

+ 1 - 2
qubes/config.py

@@ -22,7 +22,6 @@
 #
 #
 
-
 qubes_base_dir   = "/var/lib/qubes"
 system_path = {
     'qubes_guid_path': '/usr/bin/qubes-guid',
@@ -75,7 +74,7 @@ defaults = {
     'private_img_size': 2*1024*1024*1024,
     'root_img_size': 10*1024*1024*1024,
 
-    'storage_class': None,
+    'storage_class': 'qubes.storage.xen.XenVMStorage',
 
     # how long (in sec) to wait for VMs to shutdown,
     # before killing them (when used qvm-run with --wait option),

+ 1 - 1
qubes/storage/__init__.py

@@ -22,6 +22,7 @@
 
 from __future__ import absolute_import
 
+import importlib
 import os
 import os.path
 import re
@@ -32,7 +33,6 @@ import sys
 import qubes
 import qubes.utils
 
-
 class VMStorage(object):
     '''Class for handling VM virtual disks.
 

+ 6 - 0
qubes/tests/init.py

@@ -322,6 +322,12 @@ class TC_30_VMCollection(qubes.tests.QubesTestCase):
 
 
 class TC_90_Qubes(qubes.tests.QubesTestCase):
+    @qubes.tests.skipUnlessDom0
+    def test_000_init_empty(self):
+        try: os.unlink('/tmp/qubestest.xml')
+        except: pass
+        app = qubes.Qubes('/tmp/qubestest.xml')
+
     @qubes.tests.skipUnlessGit
     def test_900_example_xml_in_doc(self):
         self.assertXMLIsValid(

+ 3 - 1
qubes/vm/qubesvm.py

@@ -41,6 +41,7 @@ import qubes.config
 #import qubes.qdb
 #import qubes.qmemman
 #import qubes.qmemman_algo
+import qubes.storage
 import qubes.utils
 import qubes.vm
 
@@ -440,7 +441,8 @@ class QubesVM(qubes.vm.BaseVM):
             self.services['meminfo-writer'] = False
 
         # Initialize VM image storage class
-        self.storage = qubes.config.defaults["storage_class"](self)
+        self.storage = qubes.storage.get_storage(self)
+
         if hasattr(self, 'kernels_dir'):
             self.storage.modules_img = os.path.join(self.kernels_dir,
                     "modules.img")