From: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
Date: Fri, 13 Feb 2015 23:49:54 +0000 (-0500)
Subject: Ensure initialize_connection in targets pass multipath parameter
X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=2d61d8b1cfe84252bce82d8d38699c1cb7457f58;p=openstack-build%2Fcinder-build.git

Ensure initialize_connection in targets pass multipath parameter

When the connector dict specified to initialize_connection has
'multipath' key, its value should be passed to _get_iscsi_properties
so that it can generate multipath information if available.
This removes the duplicated codes and ensures every target passes
the multipath property.

Change-Id: Ia4a8c14c3d2544682f677622fb2dfe4291d95ffc
---

diff --git a/cinder/volume/targets/iscsi.py b/cinder/volume/targets/iscsi.py
index aea40eaf9..8dd1e78f6 100644
--- a/cinder/volume/targets/iscsi.py
+++ b/cinder/volume/targets/iscsi.py
@@ -279,7 +279,9 @@ class ISCSITarget(driver.Target):
             }
         """
 
-        iscsi_properties = self._get_iscsi_properties(volume)
+        iscsi_properties = self._get_iscsi_properties(volume,
+                                                      connector.get(
+                                                          'multipath'))
         return {
             'driver_volume_type': self.iscsi_protocol,
             'data': iscsi_properties
diff --git a/cinder/volume/targets/iser.py b/cinder/volume/targets/iser.py
index a6a3b5eea..5cfa7220a 100644
--- a/cinder/volume/targets/iser.py
+++ b/cinder/volume/targets/iser.py
@@ -44,25 +44,3 @@ class ISERTgtAdm(tgt.TgtAdm):
         self.configuration.iscsi_ip_address = \
             self.configuration.iser_ip_address
         self.configuration.iscsi_port = self.configuration.iser_port
-
-    def initialize_connection(self, volume, connector):
-        """Initializes the connection and returns connection info.
-        The iser driver returns a driver_volume_type of 'iser'.
-        The format of the driver data is defined in _get_iscsi_properties.
-        Example return value::
-            {
-                'driver_volume_type': 'iser'
-                'data': {
-                    'target_discovered': True,
-                    'target_iqn':
-                    'iqn.2010-10.org.openstack:volume-00000001',
-                    'target_portal': '127.0.0.0.1:3260',
-                    'volume_id': 1,
-                }
-            }
-        """
-        iser_properties = self._get_iscsi_properties(volume)
-        return {
-            'driver_volume_type': 'iser',
-            'data': iser_properties
-        }
diff --git a/cinder/volume/targets/lio.py b/cinder/volume/targets/lio.py
index 21f9b635e..43d50a900 100644
--- a/cinder/volume/targets/lio.py
+++ b/cinder/volume/targets/lio.py
@@ -171,14 +171,7 @@ class LioAdm(iscsi.ISCSITarget):
         # We make changes persistent
         self._persist_configuration(volume['id'])
 
-        iscsi_properties = self._get_iscsi_properties(volume,
-                                                      connector.get(
-                                                          'multipath'))
-
-        return {
-            'driver_volume_type': self.iscsi_protocol,
-            'data': iscsi_properties
-        }
+        return super(LioAdm, self).initialize_connection(volume, connector)
 
     def terminate_connection(self, volume, connector, **kwargs):
         volume_iqn = volume['provider_location'].split(' ')[1]
diff --git a/cinder/volume/targets/scst.py b/cinder/volume/targets/scst.py
index a262ad9aa..906713d9f 100644
--- a/cinder/volume/targets/scst.py
+++ b/cinder/volume/targets/scst.py
@@ -393,10 +393,3 @@ class SCSTAdm(iscsi.ISCSITarget):
         if tid is None:
             raise exception.ISCSITargetHelperCommandFailed(
                 error_message="Target not found")
-
-    def initialize_connection(self, volume, connector):
-        iscsi_properties = self._get_iscsi_properties(volume)
-        return {
-            'driver_volume_type': 'iscsi',
-            'data': iscsi_properties
-        }
diff --git a/cinder/volume/targets/tgt.py b/cinder/volume/targets/tgt.py
index 2b29536d9..0df053d6b 100644
--- a/cinder/volume/targets/tgt.py
+++ b/cinder/volume/targets/tgt.py
@@ -277,15 +277,6 @@ class TgtAdm(iscsi.ISCSITarget):
 
         return tid
 
-    def initialize_connection(self, volume, connector):
-        iscsi_properties = self._get_iscsi_properties(volume,
-                                                      connector.get(
-                                                          'multipath'))
-        return {
-            'driver_volume_type': self.iscsi_protocol,
-            'data': iscsi_properties
-        }
-
     def remove_iscsi_target(self, tid, lun, vol_id, vol_name, **kwargs):
         LOG.info(_LI('Removing iscsi_target for Volume ID: %s'), vol_id)
         vol_uuid_file = vol_name