Code optimization for detach volume
There's no need to check attachment_id, the meth delete_server_volume is only support volume.id, and the delete_server_volume will do compatible processing. Implementation reference https://review.openstack.org/#/c/480826/ Change-Id: Id1cd37a4c69f57f2827411b3440aa45c8a187ae5
This commit is contained in:
parent
78cbfb2e43
commit
a650b3d822
@ -442,8 +442,8 @@ class CreateAndAttachVolume(cinder_utils.CinderBasic,
|
|||||||
server = self._boot_server(image, flavor, **create_vm_params)
|
server = self._boot_server(image, flavor, **create_vm_params)
|
||||||
volume = self.cinder.create_volume(size, **create_volume_params)
|
volume = self.cinder.create_volume(size, **create_volume_params)
|
||||||
|
|
||||||
attachment = self._attach_volume(server, volume)
|
self._attach_volume(server, volume)
|
||||||
self._detach_volume(server, volume, attachment)
|
self._detach_volume(server, volume)
|
||||||
|
|
||||||
self.cinder.delete_volume(volume)
|
self.cinder.delete_volume(volume)
|
||||||
self._delete_server(server)
|
self._delete_server(server)
|
||||||
@ -480,8 +480,8 @@ class CreateSnapshotAndAttachVolume(cinder_utils.CinderBasic,
|
|||||||
|
|
||||||
server = self.get_random_server()
|
server = self.get_random_server()
|
||||||
|
|
||||||
attachment = self._attach_volume(server, volume)
|
self._attach_volume(server, volume)
|
||||||
self._detach_volume(server, volume, attachment)
|
self._detach_volume(server, volume)
|
||||||
|
|
||||||
self.cinder.delete_snapshot(snapshot)
|
self.cinder.delete_snapshot(snapshot)
|
||||||
self.cinder.delete_volume(volume)
|
self.cinder.delete_volume(volume)
|
||||||
@ -553,7 +553,7 @@ class CreateNestedSnapshotsAndAttachVolume(cinder_utils.CinderBasic,
|
|||||||
|
|
||||||
nes_objs.reverse()
|
nes_objs.reverse()
|
||||||
for server, volume, snapshot, attachment in nes_objs:
|
for server, volume, snapshot, attachment in nes_objs:
|
||||||
self._detach_volume(server, volume, attachment)
|
self._detach_volume(server, volume)
|
||||||
self.cinder.delete_snapshot(snapshot)
|
self.cinder.delete_snapshot(snapshot)
|
||||||
self.cinder.delete_volume(volume)
|
self.cinder.delete_volume(volume)
|
||||||
|
|
||||||
|
@ -477,7 +477,7 @@ class BootServerAttachCreatedVolumeAndResize(utils.NovaScenario,
|
|||||||
server = self._boot_server(image, flavor, **boot_server_kwargs)
|
server = self._boot_server(image, flavor, **boot_server_kwargs)
|
||||||
volume = self.cinder.create_volume(volume_size, **create_volume_kwargs)
|
volume = self.cinder.create_volume(volume_size, **create_volume_kwargs)
|
||||||
|
|
||||||
attachment = self._attach_volume(server, volume)
|
self._attach_volume(server, volume)
|
||||||
self.sleep_between(min_sleep, max_sleep)
|
self.sleep_between(min_sleep, max_sleep)
|
||||||
self._resize(server, to_flavor)
|
self._resize(server, to_flavor)
|
||||||
|
|
||||||
@ -487,7 +487,7 @@ class BootServerAttachCreatedVolumeAndResize(utils.NovaScenario,
|
|||||||
self._resize_revert(server)
|
self._resize_revert(server)
|
||||||
|
|
||||||
if do_delete:
|
if do_delete:
|
||||||
self._detach_volume(server, volume, attachment)
|
self._detach_volume(server, volume)
|
||||||
self.cinder.delete_volume(volume)
|
self.cinder.delete_volume(volume)
|
||||||
self._delete_server(server, force=force_delete)
|
self._delete_server(server, force=force_delete)
|
||||||
|
|
||||||
@ -828,7 +828,7 @@ class BootServerAttachCreatedVolumeAndLiveMigrate(utils.NovaScenario,
|
|||||||
server = self._boot_server(image, flavor, **boot_server_kwargs)
|
server = self._boot_server(image, flavor, **boot_server_kwargs)
|
||||||
volume = self.cinder.create_volume(size, **create_volume_kwargs)
|
volume = self.cinder.create_volume(size, **create_volume_kwargs)
|
||||||
|
|
||||||
attachment = self._attach_volume(server, volume)
|
self._attach_volume(server, volume)
|
||||||
|
|
||||||
self.sleep_between(min_sleep, max_sleep)
|
self.sleep_between(min_sleep, max_sleep)
|
||||||
|
|
||||||
@ -836,7 +836,7 @@ class BootServerAttachCreatedVolumeAndLiveMigrate(utils.NovaScenario,
|
|||||||
self._live_migrate(server, new_host,
|
self._live_migrate(server, new_host,
|
||||||
block_migration, disk_over_commit)
|
block_migration, disk_over_commit)
|
||||||
|
|
||||||
self._detach_volume(server, volume, attachment)
|
self._detach_volume(server, volume)
|
||||||
|
|
||||||
self.cinder.delete_volume(volume)
|
self.cinder.delete_volume(volume)
|
||||||
self._delete_server(server)
|
self._delete_server(server)
|
||||||
|
@ -714,13 +714,21 @@ class NovaScenario(scenario.OpenStackScenario):
|
|||||||
|
|
||||||
@atomic.action_timer("nova.detach_volume")
|
@atomic.action_timer("nova.detach_volume")
|
||||||
def _detach_volume(self, server, volume, attachment=None):
|
def _detach_volume(self, server, volume, attachment=None):
|
||||||
|
"""Detach volume from the server.
|
||||||
|
|
||||||
|
:param server: A server object to detach volume from.
|
||||||
|
:param volume: A volume object to detach from the server.
|
||||||
|
:param attachment: DEPRECATED
|
||||||
|
"""
|
||||||
|
if attachment:
|
||||||
|
LOG.warning("An argument `attachment` of `_detach_volume` is "
|
||||||
|
"deprecated in favor of `volume` argument since "
|
||||||
|
"Rally 0.10.0")
|
||||||
|
|
||||||
server_id = server.id
|
server_id = server.id
|
||||||
# NOTE(chenhb): Recommend the use of attachment.The use of
|
|
||||||
# volume.id is retained mainly for backward compatibility.
|
|
||||||
attachment_id = attachment.id if attachment else volume.id
|
|
||||||
|
|
||||||
self.clients("nova").volumes.delete_server_volume(server_id,
|
self.clients("nova").volumes.delete_server_volume(server_id,
|
||||||
attachment_id)
|
volume.id)
|
||||||
utils.wait_for_status(
|
utils.wait_for_status(
|
||||||
volume,
|
volume,
|
||||||
ready_statuses=["available"],
|
ready_statuses=["available"],
|
||||||
|
@ -229,8 +229,7 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
|||||||
scenario._attach_volume.assert_called_once_with(
|
scenario._attach_volume.assert_called_once_with(
|
||||||
fake_server, mock_service.create_volume.return_value)
|
fake_server, mock_service.create_volume.return_value)
|
||||||
scenario._detach_volume.assert_called_once_with(
|
scenario._detach_volume.assert_called_once_with(
|
||||||
fake_server, mock_service.create_volume.return_value,
|
fake_server, mock_service.create_volume.return_value)
|
||||||
scenario._attach_volume.return_value)
|
|
||||||
|
|
||||||
mock_service.delete_volume.assert_called_once_with(
|
mock_service.delete_volume.assert_called_once_with(
|
||||||
mock_service.create_volume.return_value)
|
mock_service.create_volume.return_value)
|
||||||
@ -283,8 +282,7 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
|||||||
scenario._attach_volume.assert_called_once_with(
|
scenario._attach_volume.assert_called_once_with(
|
||||||
scenario.get_random_server.return_value, volume)
|
scenario.get_random_server.return_value, volume)
|
||||||
scenario._detach_volume.assert_called_once_with(
|
scenario._detach_volume.assert_called_once_with(
|
||||||
scenario.get_random_server.return_value, volume,
|
scenario.get_random_server.return_value, volume)
|
||||||
scenario._attach_volume.return_value)
|
|
||||||
mock_service.delete_volume.assert_called_once_with(volume)
|
mock_service.delete_volume.assert_called_once_with(volume)
|
||||||
|
|
||||||
@mock.patch("random.choice")
|
@mock.patch("random.choice")
|
||||||
@ -299,7 +297,6 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
|||||||
scenario.run(volume_type="type")
|
scenario.run(volume_type="type")
|
||||||
|
|
||||||
fake_volume = mock_service.create_volume.return_value
|
fake_volume = mock_service.create_volume.return_value
|
||||||
fake_attach = scenario._attach_volume.return_value
|
|
||||||
fake_server = scenario.get_random_server.return_value
|
fake_server = scenario.get_random_server.return_value
|
||||||
fake_snapshot = mock_service.create_snapshot.return_value
|
fake_snapshot = mock_service.create_snapshot.return_value
|
||||||
|
|
||||||
@ -311,8 +308,7 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
|||||||
scenario._attach_volume.assert_called_once_with(fake_server,
|
scenario._attach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume)
|
fake_volume)
|
||||||
scenario._detach_volume.assert_called_once_with(fake_server,
|
scenario._detach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume,
|
fake_volume)
|
||||||
fake_attach)
|
|
||||||
mock_service.delete_volume.assert_called_once_with(fake_volume)
|
mock_service.delete_volume.assert_called_once_with(fake_volume)
|
||||||
|
|
||||||
@mock.patch("random.randint")
|
@mock.patch("random.randint")
|
||||||
@ -343,8 +339,7 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
|||||||
mock_service.create_snapshot.return_value)
|
mock_service.create_snapshot.return_value)
|
||||||
scenario._detach_volume.assert_called_once_with(
|
scenario._detach_volume.assert_called_once_with(
|
||||||
scenario.get_random_server.return_value,
|
scenario.get_random_server.return_value,
|
||||||
mock_service.create_volume.return_value,
|
mock_service.create_volume.return_value)
|
||||||
scenario._attach_volume.return_value)
|
|
||||||
|
|
||||||
@mock.patch("random.randint")
|
@mock.patch("random.randint")
|
||||||
def test_create_nested_snapshots_and_attach_volume_2(self, mock_randint):
|
def test_create_nested_snapshots_and_attach_volume_2(self, mock_randint):
|
||||||
@ -393,7 +388,7 @@ class CinderServersTestCase(test.ScenarioTestCase):
|
|||||||
[mock.call(snapshot) for snapshot in fake_snapshots])
|
[mock.call(snapshot) for snapshot in fake_snapshots])
|
||||||
scenario._detach_volume.assert_has_calls(
|
scenario._detach_volume.assert_has_calls(
|
||||||
[mock.call(scenario.get_random_server.return_value,
|
[mock.call(scenario.get_random_server.return_value,
|
||||||
fake_volumes[i], fake_attachs[i])
|
fake_volumes[i])
|
||||||
for i in range(len(fake_volumes))])
|
for i in range(len(fake_volumes))])
|
||||||
|
|
||||||
def test_create_volume_backup(self):
|
def test_create_volume_backup(self):
|
||||||
|
@ -550,8 +550,7 @@ class NovaServersTestCase(test.ScenarioTestCase):
|
|||||||
scenario._attach_volume.assert_called_once_with(fake_server,
|
scenario._attach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume)
|
fake_volume)
|
||||||
scenario._detach_volume.assert_called_once_with(fake_server,
|
scenario._detach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume,
|
fake_volume)
|
||||||
fake_attachment)
|
|
||||||
scenario.sleep_between.assert_called_once_with(10, 20)
|
scenario.sleep_between.assert_called_once_with(10, 20)
|
||||||
scenario._resize.assert_called_once_with(fake_server, to_flavor)
|
scenario._resize.assert_called_once_with(fake_server, to_flavor)
|
||||||
|
|
||||||
@ -562,8 +561,7 @@ class NovaServersTestCase(test.ScenarioTestCase):
|
|||||||
|
|
||||||
if do_delete:
|
if do_delete:
|
||||||
scenario._detach_volume.assert_called_once_with(fake_server,
|
scenario._detach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume,
|
fake_volume)
|
||||||
fake_attachment)
|
|
||||||
cinder.delete_volume.assert_called_once_with(fake_volume)
|
cinder.delete_volume.assert_called_once_with(fake_volume)
|
||||||
scenario._delete_server.assert_called_once_with(fake_server,
|
scenario._delete_server.assert_called_once_with(fake_server,
|
||||||
force=False)
|
force=False)
|
||||||
@ -805,8 +803,7 @@ class NovaServersTestCase(test.ScenarioTestCase):
|
|||||||
scenario._attach_volume.assert_called_once_with(fake_server,
|
scenario._attach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume)
|
fake_volume)
|
||||||
scenario._detach_volume.assert_called_once_with(fake_server,
|
scenario._detach_volume.assert_called_once_with(fake_server,
|
||||||
fake_volume,
|
fake_volume)
|
||||||
fake_attachment)
|
|
||||||
scenario.sleep_between.assert_called_once_with(10, 20)
|
scenario.sleep_between.assert_called_once_with(10, 20)
|
||||||
scenario._live_migrate.assert_called_once_with(fake_server,
|
scenario._live_migrate.assert_called_once_with(fake_server,
|
||||||
"host_name",
|
"host_name",
|
||||||
|
@ -635,7 +635,7 @@ class NovaScenarioTestCase(test.ScenarioTestCase):
|
|||||||
nova_scenario = utils.NovaScenario(context=self.context)
|
nova_scenario = utils.NovaScenario(context=self.context)
|
||||||
nova_scenario._detach_volume(self.server, self.volume, attach)
|
nova_scenario._detach_volume(self.server, self.volume, attach)
|
||||||
(self.clients("nova").volumes.delete_server_volume
|
(self.clients("nova").volumes.delete_server_volume
|
||||||
.assert_called_once_with(self.server.id, attach.id))
|
.assert_called_once_with(self.server.id, self.volume.id))
|
||||||
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
|
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
|
||||||
"nova.detach_volume")
|
"nova.detach_volume")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user