Skip to content

Commit

Permalink
Fix bug with 3PAR host entry in wrong domain
Browse files Browse the repository at this point in the history
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
  • Loading branch information
hemna committed Mar 22, 2013
1 parent 9b002be commit 3a20db0
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
4 changes: 4 additions & 0 deletions cinder/exception.py
Expand Up @@ -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")
Expand Down
7 changes: 6 additions & 1 deletion cinder/volume/drivers/san/hp/hp_3par_common.py
Expand Up @@ -272,7 +272,12 @@ def _delete_3par_host(self, hostname):
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):
"""
Expand Down

0 comments on commit 3a20db0

Please sign in to comment.