]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Base iSCSI initiator validation
authorIvan Kolodyazhny <e0ne@e0ne.info>
Thu, 14 Jan 2016 17:04:10 +0000 (19:04 +0200)
committerIvan Kolodyazhny <e0ne@e0ne.info>
Thu, 14 Jan 2016 17:04:10 +0000 (19:04 +0200)
Validate that iSCSI initiator is string

Change-Id: I2309c70e1d937b1897a0e4f85a9255a9abe15169
Closes-Bug: #1534199

cinder/tests/unit/test_volume.py
cinder/volume/manager.py

index adb9c7004a735a4243bd3df75f3f9309cd847002..a732b60d442251d490642a3c8e85f2c41823cbf4 100644 (file)
@@ -4280,6 +4280,19 @@ class VolumeTestCase(BaseVolumeTestCase):
         volume = db.volume_get(context.get_admin_context(), test_vol_id)
         self.assertEqual('error', volume['status'])
 
+    def test__get_driver_initiator_data(self):
+        manager = vol_manager.VolumeManager()
+
+        data = manager._get_driver_initiator_data(None, {'key': 'val'})
+        self.assertIsNone(data)
+
+        connector = {'initiator': {'key': 'val'}}
+
+        self.assertRaises(exception.InvalidInput,
+                          manager._get_driver_initiator_data,
+                          None,
+                          connector)
+
 
 @ddt.ddt
 class VolumeMigrationTestCase(VolumeTestCase):
index 4797ba9255324a2bf49fae9f026df6835555809b..b5d26a7c48b5dff9395de5081d36458d2e80091b 100644 (file)
@@ -1256,6 +1256,9 @@ class VolumeManager(manager.SchedulerDependentManager):
         data = None
         initiator = connector.get('initiator', False)
         if initiator:
+            if not isinstance(initiator, six.string_types):
+                msg = _('Invalid initiator value received')
+                raise exception.InvalidInput(reason=msg)
             namespace = self._driver_data_namespace()
             try:
                 data = self.db.driver_initiator_data_get(