Add storage add_pool & remove_pool
This commit is contained in:
parent
26711e7e9a
commit
16d480cf4c
@ -258,6 +258,32 @@ def get_pool(name, vm):
|
|||||||
return klass(vm, **kwargs)
|
return klass(vm, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def pool_exists(name):
|
||||||
|
""" Check if the specified pool exists """
|
||||||
|
try:
|
||||||
|
_get_pool_klass(name)
|
||||||
|
return True
|
||||||
|
except StoragePoolException:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def add_pool(name, **kwargs):
|
||||||
|
""" Add a storage pool to config."""
|
||||||
|
config = _get_storage_config_parser()
|
||||||
|
config.add_section(name)
|
||||||
|
for key, value in kwargs.iteritems():
|
||||||
|
config.set(name, key, value)
|
||||||
|
_write_config(config)
|
||||||
|
|
||||||
|
def remove_pool(name):
|
||||||
|
""" Remove a storage pool from config file. """
|
||||||
|
config = _get_storage_config_parser()
|
||||||
|
config.remove_section(name)
|
||||||
|
_write_config(config)
|
||||||
|
|
||||||
|
def _write_config(config):
|
||||||
|
with open(CONFIG_FILE, 'w') as configfile:
|
||||||
|
config.write(configfile)
|
||||||
|
|
||||||
def _get_storage_config_parser():
|
def _get_storage_config_parser():
|
||||||
""" Instantiates a `ConfigParaser` for specified storage config file.
|
""" Instantiates a `ConfigParaser` for specified storage config file.
|
||||||
|
|
||||||
@ -297,14 +323,6 @@ def _get_pool_klass(name, config=None):
|
|||||||
return klass
|
return klass
|
||||||
|
|
||||||
|
|
||||||
def pool_exists(name):
|
|
||||||
""" Check if the specified pool exists """
|
|
||||||
try:
|
|
||||||
_get_pool_klass(name)
|
|
||||||
return True
|
|
||||||
except StoragePoolException:
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
class StoragePoolException(QubesException):
|
class StoragePoolException(QubesException):
|
||||||
pass
|
pass
|
||||||
|
@ -6,6 +6,7 @@ type=xen ; the default xen storage
|
|||||||
; class name
|
; class name
|
||||||
; [pool-b]
|
; [pool-b]
|
||||||
; class = foo.bar.MyStorage
|
; class = foo.bar.MyStorage
|
||||||
;
|
;
|
||||||
|
; [test-dummy]
|
||||||
|
; type=dummy
|
||||||
|
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
|
||||||
from qubes.tests import QubesTestCase, SystemTestsMixin
|
|
||||||
from qubes.qubes import defaults
|
|
||||||
|
|
||||||
import qubes.storage
|
import qubes.storage
|
||||||
from qubes.storage.xen import XenStorage, XenPool
|
from qubes.qubes import defaults
|
||||||
|
from qubes.tests import QubesTestCase, SystemTestsMixin
|
||||||
|
|
||||||
|
from qubes.storage.xen import XenPool, XenStorage
|
||||||
|
|
||||||
|
|
||||||
class TC_00_Storage(SystemTestsMixin, QubesTestCase):
|
class TC_00_Storage(SystemTestsMixin, QubesTestCase):
|
||||||
@ -62,6 +62,19 @@ class TC_00_Storage(SystemTestsMixin, QubesTestCase):
|
|||||||
self.assertFalse(
|
self.assertFalse(
|
||||||
qubes.storage.pool_exists('asdh312096r832598213iudhas'))
|
qubes.storage.pool_exists('asdh312096r832598213iudhas'))
|
||||||
|
|
||||||
|
def test_006_add_remove_pool(self):
|
||||||
|
""" Tries to adding and removing a pool. """
|
||||||
|
pool_name = 'asdjhrp89132'
|
||||||
|
|
||||||
|
# make sure it's really does not exist
|
||||||
|
qubes.storage.remove_pool(pool_name)
|
||||||
|
|
||||||
|
qubes.storage.add_pool(pool_name, type='xen')
|
||||||
|
self.assertTrue(qubes.storage.pool_exists(pool_name))
|
||||||
|
|
||||||
|
qubes.storage.remove_pool(pool_name)
|
||||||
|
self.assertFalse(qubes.storage.pool_exists(pool_name))
|
||||||
|
|
||||||
|
|
||||||
class TC_00_Pool(SystemTestsMixin, QubesTestCase):
|
class TC_00_Pool(SystemTestsMixin, QubesTestCase):
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user