]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Revert initialize_connection changes
authorjohn-griffith <john.griffith@solidfire.com>
Wed, 29 Jan 2014 04:30:59 +0000 (21:30 -0700)
committerjohn-griffith <john.griffith@solidfire.com>
Wed, 29 Jan 2014 13:30:48 +0000 (06:30 -0700)
A change was merged that reusulted in interittent
gate failures.  It seems that in certain cases the
intitialize is doing an update targets and is
deleting the existing targets and not recreating them.

The idea of this patch was to fix up the iscis targets
for cases where volumes are extended.

A better solution is in progress that will remove the
target creation from the create_volume process altogether.

Currently we seem to have create_export, ensure_export and
now initialize that all are designed to do very similar
things.

A bug has been filed to address this and will attempt
to collapse these functions to be done at attach time.

This particular patch in essence reverts two patches:
commit: 18f8f5be94aae3b1747b143479ea1b188872f000
commit: a9267644ee09591e2d642d6c1204d94a9fdd8c82

Change-Id: Ib615847f3cbeb74b1e4416d51730162ad1d07a40
Closes-Bug: 1270608

cinder/brick/exception.py
cinder/brick/iscsi/iscsi.py
cinder/volume/drivers/lvm.py

index b32eb1324b4ae03d93527153ce54a018be70c297..3d6e014dcddd585dab522c7454b252415f12cde2 100644 (file)
@@ -105,10 +105,6 @@ class ISCSITargetCreateFailed(BrickException):
     message = _("Failed to create iscsi target for volume %(volume_id)s.")
 
 
-class ISCSITargetUpdateFailed(BrickException):
-    message = _("Failed to update iscsi target for volume %(name)s.")
-
-
 class ISCSITargetRemoveFailed(BrickException):
     message = _("Failed to remove iscsi target for volume %(volume_id)s.")
 
index ceac1b9c2c4be0eb7cdb52800b36b55bb05095e5..33939eb39550f4cf1e819fa72745d3c8e53a3f4e 100644 (file)
@@ -188,7 +188,10 @@ class TgtAdm(TargetAdmin):
             # by creating the entry in the persist file
             # and then doing an update to get the target
             # created.
-            self.update_iscsi_target(name)
+            (out, err) = self._execute('tgt-admin', '--update', name,
+                                       run_as_root=True)
+            LOG.debug("StdOut from tgt-admin --update: %s", out)
+            LOG.debug("StdErr from tgt-admin --update: %s", err)
 
             # Grab targets list for debug
             # Consider adding a check for lun 0 and 1 for tgtadm
@@ -202,8 +205,7 @@ class TgtAdm(TargetAdmin):
                                        'target',
                                        run_as_root=True)
             LOG.debug("Targets after update: %s" % out)
-        except (putils.ProcessExecutionError,
-                exception.ISCSITargetUpdateFailed) as e:
+        except putils.ProcessExecutionError as e:
             LOG.warning(_("Failed to create iscsi target for volume "
                         "id:%(vol_id)s: %(e)s")
                         % {'vol_id': vol_id, 'e': str(e)})
@@ -245,20 +247,6 @@ class TgtAdm(TargetAdmin):
 
         return tid
 
-    def update_iscsi_target(self, name):
-
-        LOG.info(_('Updating iscsi target: %s') % name)
-
-        try:
-            (out, err) = self._execute('tgt-admin', '--update', name,
-                                       run_as_root=True)
-        except putils.ProcessExecutionError as e:
-            LOG.error(_("Failed to update iscsi target %(name)s: %(e)s") %
-                      {'name': name, 'e': str(e)})
-            LOG.error("StdOut from tgt-admin --update: %s", e.stdout)
-            LOG.error("StdErr from tgt-admin --update: %s", e.stderr)
-            raise exception.ISCSITargetUpdateFailed(name=name)
-
     def remove_iscsi_target(self, tid, lun, vol_id, vol_name, **kwargs):
         LOG.info(_('Removing iscsi_target for: %s') % vol_id)
         vol_uuid_file = vol_name
@@ -447,9 +435,6 @@ class FakeIscsiHelper(object):
         self.tid += 1
         return self.tid
 
-    def update_iscsi_target(self, name):
-        return
-
 
 class LioAdm(TargetAdmin):
     """iSCSI target administration for LIO using python-rtslib."""
index 61fa1d12fb508634fe16cc6898c3e7c2eb64e2d7..0d7369146067f3446f153d40546d230833f741da 100644 (file)
@@ -750,30 +750,6 @@ class LVMISCSIDriver(LVMVolumeDriver, driver.ISCSIDriver):
     def _iscsi_authentication(self, chap, name, password):
         return "%s %s %s" % (chap, name, password)
 
-    def initialize_connection(self, volume, connector):
-        """Initializes the connection and returns connection info.
-
-        This function overrides the base class implementation so that the iSCSI
-        target can be updated.  This is necessary in the event that a user
-        extended the volume before attachement.
-        """
-
-        # update the iSCSI target
-        iscsi_name = "%s%s" % (self.configuration.iscsi_target_prefix,
-                               volume['name'])
-        try:
-            self.tgtadm.update_iscsi_target(iscsi_name)
-        except brick_exception.ISCSITargetUpdateFailed as e:
-            msg = (_('Failed to initialize iscsi '
-                     'connection for target: %s.') % iscsi_name)
-            LOG.error(msg)
-            raise exception.VolumeBackendAPIException(data=msg)
-
-        # continue with the base class behaviour
-        return driver.ISCSIDriver.initialize_connection(self,
-                                                        volume,
-                                                        connector)
-
 
 class LVMISERDriver(LVMISCSIDriver, driver.ISERDriver):
     """Executes commands relating to ISER volumes.