]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
VMware: Skip unsupported datastore types
authorVipin Balachandran <vbala@vmware.com>
Mon, 23 Nov 2015 11:24:13 +0000 (16:54 +0530)
committerVipin Balachandran <vbala@vmware.com>
Tue, 24 Nov 2015 11:29:13 +0000 (16:59 +0530)
vCenter supports different types of datastores such as
VMFS, NFS etc. Currently the VMDK driver supports only
vSAN, VMFS and NFS datastores for storing volume vmdks.
This patch adds a check to skip unsupported datastore
types during volume creation.

Closes-bug: #1519316
Change-Id: I314abbe0de09bb304859c72b27054784eeef9044

cinder/tests/unit/test_vmware_datastore.py
cinder/volume/drivers/vmware/datastore.py

index 56ee991bd8f838f8edcc2e2687075fc61419b5f6..03468edc8430c8e18a9f704f9ca5215fb3527c87 100644 (file)
@@ -71,6 +71,21 @@ class DatastoreTest(test.TestCase):
         host.value = value
         return host
 
+    def test_filter_datastores_with_unsupported_type(self):
+        ds_1 = self._create_datastore('ds-1')
+        ds_2 = self._create_datastore('ds-2')
+        datastores = [ds_1, ds_2]
+
+        self._vops.get_summary.side_effect = [
+            self._create_summary(ds_1),
+            self._create_summary(ds_2, _type='foo')]
+
+        res = self._ds_sel._filter_datastores(
+            datastores, units.Ki, None, None, None)
+
+        self.assertEqual(1, len(res))
+        self.assertEqual(ds_1, res[0].datastore)
+
     @mock.patch('cinder.volume.drivers.vmware.datastore.DatastoreSelector.'
                 '_filter_by_profile')
     def test_filter_datastores(self, filter_by_profile):
index 3f5f126fb5b2d082df78fda1ed4d581b12af9981..e2a46a5a50fc6725a1da59961995e1eb10c754ed 100644 (file)
@@ -115,6 +115,7 @@ class DatastoreSelector(object):
 
         return [summary for summary in filtered_summaries
                 if (summary.freeSpace > size_bytes and
+                    summary.type.lower() in DatastoreType.get_all_types() and
                     (hard_affinity_ds_types is None or
                      summary.type.lower() in hard_affinity_ds_types))]