diff options
author | Jenkins <jenkins@review.openstack.org> | 2012-09-10 17:55:08 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2012-09-10 17:55:08 +0000 |
commit | 641223db012211b353658dabaec27942e89ee5c6 (patch) | |
tree | d7ec07ec5139db2ff55fe60d9b4f2e4b85f51904 | |
parent | 2e4c23279327e526d8d5ee936653c35181574c1d (diff) | |
parent | ff3b994f12edf28d187bb1987aa7094b7897b015 (diff) | |
download | nova-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.py | 5 | ||||
-rw-r--r-- | nova/volume/driver.py | 12 |
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) |