diff --git a/qubes/config.py b/qubes/config.py index f35801f0..1277e244 100644 --- a/qubes/config.py +++ b/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), diff --git a/qubes/storage/__init__.py b/qubes/storage/__init__.py index dd98e7f5..38ce072c 100644 --- a/qubes/storage/__init__.py +++ b/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. diff --git a/qubes/tests/init.py b/qubes/tests/init.py index ddd211d8..4bd48e77 100644 --- a/qubes/tests/init.py +++ b/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( diff --git a/qubes/vm/qubesvm.py b/qubes/vm/qubesvm.py index b6f477b8..bf074856 100644 --- a/qubes/vm/qubesvm.py +++ b/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")