]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Fix bug with 3PAR host entry in wrong domain
authorWalter A. Boring IV <walter.boring@hp.com>
Fri, 22 Mar 2013 21:31:15 +0000 (14:31 -0700)
committerWalter A. Boring IV <walter.boring@hp.com>
Fri, 22 Mar 2013 21:31:15 +0000 (14:31 -0700)
This patch exposes a more acurate exception message
when a user has created a manual host entry on a
3PAR system that is in an incorrect 3PAR domain than
the domain that is configured for the 3PAR driver.

The bug complained that it couldn't find a VLUN, when the
actual problem was the host existed in the wrong 3PAR domain.

Fixes bug #1158991

Change-Id: I3f92e59ae43a10a0788d97d987785b6520f9f1be

cinder/exception.py
cinder/volume/drivers/san/hp/hp_3par_common.py

index ccbaad114a6fa103a3c0235d15b62a4856ce6535..bec31fb1b3efc8e59207b1cdcf5d0b769769ae1b 100644 (file)
@@ -474,6 +474,10 @@ class Duplicate3PARHost(CinderException):
     message = _("3PAR Host already exists: %(err)s.  %(info)s")
 
 
+class Invalid3PARDomain(CinderException):
+    message = _("Invalid 3PAR Domain: %(err)s")
+
+
 class VolumeTypeCreateFailed(CinderException):
     message = _("Cannot create volume_type with "
                 "name %(name)s and specs %(extra_specs)s")
index cd1d9ee770df54858ee1b7fc07596ddcae1e81c5..ea37b89f54b47402cf8c91a3b1c9c9fceaad293e 100644 (file)
@@ -272,7 +272,12 @@ exit
         self._cli_run('removehost %s' % hostname, None)
 
     def _create_3par_vlun(self, volume, hostname):
-        self._cli_run('createvlun %s auto %s' % (volume, hostname), None)
+        out = self._cli_run('createvlun %s auto %s' % (volume, hostname), None)
+        if out and len(out) > 1:
+            if "must be in the same domain" in out[0]:
+                err = out[0].strip()
+                err = err + " " + out[1].strip()
+                raise exception.Invalid3PARDomain(err=err)
 
     def _safe_hostname(self, hostname):
         """