summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-09-10 17:55:08 +0000
committerGerrit Code Review <review@openstack.org>2012-09-10 17:55:08 +0000
commit641223db012211b353658dabaec27942e89ee5c6 (patch)
treed7ec07ec5139db2ff55fe60d9b4f2e4b85f51904
parent2e4c23279327e526d8d5ee936653c35181574c1d (diff)
parentff3b994f12edf28d187bb1987aa7094b7897b015 (diff)
downloadnova-641223db012211b353658dabaec27942e89ee5c6.tar.gz
nova-641223db012211b353658dabaec27942e89ee5c6.tar.xz
nova-641223db012211b353658dabaec27942e89ee5c6.zip
Merge "Handle missing 'provider_location' in rm_export."
-rw-r--r--nova/tests/api/ec2/test_cloud.py5
-rw-r--r--nova/volume/driver.py12
2 files changed, 11 insertions, 6 deletions
diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py
index ff84def77..6301ce180 100644
--- a/nova/tests/api/ec2/test_cloud.py
+++ b/nova/tests/api/ec2/test_cloud.py
@@ -99,6 +99,8 @@ class CloudTestCase(test.TestCase):
self.flags(compute_driver='nova.virt.fake.FakeDriver',
volumes_dir=vol_tmpdir)
self.stubs.Set(iscsi.TgtAdm, '_get_target', self.fake_get_target)
+ self.stubs.Set(iscsi.TgtAdm, 'remove_iscsi_target',
+ self.fake_remove_iscsi_target)
def fake_show(meh, context, id):
return {'id': id,
@@ -163,6 +165,9 @@ class CloudTestCase(test.TestCase):
def fake_get_target(obj, iqn):
return 1
+ def fake_remove_iscsi_target(obj, tid, lun, vol_id, **kwargs):
+ pass
+
def _stub_instance_get_with_fixed_ips(self, func_name):
orig_func = getattr(self.cloud.compute_api, func_name)
diff --git a/nova/volume/driver.py b/nova/volume/driver.py
index 07addd742..f7cd9fb57 100644
--- a/nova/volume/driver.py
+++ b/nova/volume/driver.py
@@ -356,12 +356,6 @@ class ISCSIDriver(VolumeDriver):
def remove_export(self, context, volume):
"""Removes an export for a logical volume."""
- #BOOKMARK jdg
- location = volume['provider_location'].split(' ')
- iqn = location[1]
- if 'iqn' not in iqn:
- LOG.warning(_("Jacked... didn't get an iqn"))
- return
# NOTE(jdg): tgtadm doesn't use the iscsi_targets table
# TODO(jdg): In the future move all of the dependent stuff into the
@@ -378,6 +372,12 @@ class ISCSIDriver(VolumeDriver):
iscsi_target = 0
try:
+
+ # NOTE: provider_location may be unset if the volume hasn't
+ # been exported
+ location = volume['provider_location'].split(' ')
+ iqn = location[1]
+
# ietadm show will exit with an error
# this export has already been removed
self.tgtadm.show_target(iscsi_target, iqn=iqn)