From: Vipin Balachandran Date: Mon, 23 Nov 2015 11:24:13 +0000 (+0530) Subject: VMware: Skip unsupported datastore types X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=c20778fe6bead5aed4ceb541336f757d0d25fda6;p=openstack-build%2Fcinder-build.git VMware: Skip unsupported datastore types 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 --- diff --git a/cinder/tests/unit/test_vmware_datastore.py b/cinder/tests/unit/test_vmware_datastore.py index 56ee991bd..03468edc8 100644 --- a/cinder/tests/unit/test_vmware_datastore.py +++ b/cinder/tests/unit/test_vmware_datastore.py @@ -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): diff --git a/cinder/volume/drivers/vmware/datastore.py b/cinder/volume/drivers/vmware/datastore.py index 3f5f126fb..e2a46a5a5 100644 --- a/cinder/volume/drivers/vmware/datastore.py +++ b/cinder/volume/drivers/vmware/datastore.py @@ -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))]