summaryrefslogtreecommitdiffstats
path: root/nova/virt
diff options
context:
space:
mode:
authorMate Lakat <mate.lakat@citrix.com>2013-01-07 16:36:16 +0000
committerMate Lakat <mate.lakat@citrix.com>2013-01-18 09:29:07 +0000
commitabaef3b618caeb6c8e55650a96afbf3945ccccfa (patch)
treec85058841eff392fac65f4426b92bff21a234974 /nova/virt
parente3a729b7c8873146d00d915a07094d327f97d184 (diff)
downloadnova-abaef3b618caeb6c8e55650a96afbf3945ccccfa.tar.gz
nova-abaef3b618caeb6c8e55650a96afbf3945ccccfa.tar.xz
nova-abaef3b618caeb6c8e55650a96afbf3945ccccfa.zip
Refactor: extract method: driver_dict_from_config
Related to blueprint xenapi-volume-drivers Extract method to create driver registries, so that it could be re-used in xenapi for a similar purpose. Change-Id: Ifd25d12335ac96a15dfea4c5ab7f315ff7ddfd8b
Diffstat (limited to 'nova/virt')
-rw-r--r--nova/virt/driver.py11
-rw-r--r--nova/virt/libvirt/driver.py9
2 files changed, 15 insertions, 5 deletions
diff --git a/nova/virt/driver.py b/nova/virt/driver.py
index aa0439e74..f699d2011 100644
--- a/nova/virt/driver.py
+++ b/nova/virt/driver.py
@@ -49,6 +49,17 @@ CONF.register_opts(driver_opts)
LOG = logging.getLogger(__name__)
+def driver_dict_from_config(named_driver_config, *args, **kwargs):
+ driver_registry = dict()
+
+ for driver_str in named_driver_config:
+ driver_type, _sep, driver = driver_str.partition('=')
+ driver_class = importutils.import_class(driver)
+ driver_registry[driver_type] = driver_class(*args, **kwargs)
+
+ return driver_registry
+
+
def block_device_info_get_root(block_device_info):
block_device_info = block_device_info or {}
return block_device_info.get('root_device_name')
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index 597aa39a0..86afa1687 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -284,11 +284,10 @@ class LibvirtDriver(driver.ComputeDriver):
self.virtapi,
get_connection=self._get_connection)
self.vif_driver = importutils.import_object(CONF.libvirt_vif_driver)
- self.volume_drivers = {}
- for driver_str in CONF.libvirt_volume_drivers:
- driver_type, _sep, driver = driver_str.partition('=')
- driver_class = importutils.import_class(driver)
- self.volume_drivers[driver_type] = driver_class(self)
+
+ self.volume_drivers = driver.driver_dict_from_config(
+ CONF.libvirt_volume_drivers, self)
+
self._host_state = None
disk_prefix_map = {"lxc": "", "uml": "ubd", "xen": "sd"}