]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Check sio_storage_pools in check_for_setup_error
authorXing Yang <xing.yang@emc.com>
Sat, 22 Aug 2015 10:28:32 +0000 (06:28 -0400)
committerXing Yang <xing.yang@emc.com>
Sat, 22 Aug 2015 10:39:45 +0000 (06:39 -0400)
The ScaleIO driver fails to load if sio_storage_pools is not
specified in cinder.conf. This patch checks it in check_for_setup_error
and also check it in __init__.

Change-Id: I0fed70848ad2ecf3899b07058fabfa68df07edbd
Closes-Bug: #1497413

cinder/tests/unit/volume/drivers/emc/scaleio/test_misc.py
cinder/volume/drivers/emc/scaleio.py

index eea2c2da08db37c7b30e0e0fb42a7c8ac6103f47..e7e20a474705e6e1fbdcaea7571034787ecb1866 100644 (file)
@@ -84,6 +84,12 @@ class TestMisc(scaleio.TestScaleIODriver):
         self.assertRaises(exception.InvalidInput,
                           self.driver.check_for_setup_error)
 
+    def test_no_storage_pools(self):
+        """No storage pools."""
+        self.driver.storage_pools = None
+        self.assertRaises(exception.InvalidInput,
+                          self.driver.check_for_setup_error)
+
     def test_volume_size_round_true(self):
         self.driver._check_volume_size(1)
 
index 27a572e8939c840d7028dcd737bff0e6a74a0a63..c74d3951e5367b42996ec9849c30788a6af7a61e 100644 (file)
@@ -122,8 +122,13 @@ class ScaleIODriver(driver.VolumeDriver):
              'user': self.server_username,
              'verify_cert': self.verify_server_certificate})
 
-        self.storage_pools = [e.strip() for e in
-                              self.configuration.sio_storage_pools.split(',')]
+        self.storage_pools = None
+        if self.configuration.sio_storage_pools:
+            self.storage_pools = [
+                e.strip() for e in
+                self.configuration.sio_storage_pools.split(',')
+            ]
+
         self.storage_pool_name = self.configuration.sio_storage_pool_name
         self.storage_pool_id = self.configuration.sio_storage_pool_id
         if self.storage_pool_name is None and self.storage_pool_id is None:
@@ -205,6 +210,12 @@ class ScaleIODriver(driver.VolumeDriver):
             msg = _("Must specify storage pool name or id.")
             raise exception.InvalidInput(reason=msg)
 
+        if not self.storage_pools:
+            msg = _(
+                "Must specify storage pools. Option: sio_storage_pools."
+            )
+            raise exception.InvalidInput(reason=msg)
+
     def _find_storage_pool_id_from_storage_type(self, storage_type):
         # Default to what was configured in configuration file if not defined.
         return storage_type.get(STORAGE_POOL_ID,