summaryrefslogtreecommitdiff
path: root/openstackclient/compute
diff options
context:
space:
mode:
authorDiwei Zhu <zhu.diw@northeastern.edu>2021-11-16 19:08:58 +0000
committerStephen Finucane <stephenfin@redhat.com>2021-11-26 16:11:21 +0000
commitfae293dd5218cf4ea03d0a4c44d17b97987dea12 (patch)
treedfa17d98b184ba0089bd17d064aec203f93500aa /openstackclient/compute
parent28cd5763de8706fb997bdd53deaf94aca0de5c52 (diff)
downloadpython-openstackclient-fae293dd5218cf4ea03d0a4c44d17b97987dea12.tar.gz
Switch command server remove volume to sdk
Change-Id: If6f6cf93b55a67e767c54de8ce21f25252cf99ca
Diffstat (limited to 'openstackclient/compute')
-rw-r--r--openstackclient/compute/v2/server.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 18c1197c..121a7b82 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -3793,22 +3793,29 @@ class RemoveServerVolume(command.Command):
return parser
def take_action(self, parsed_args):
- compute_client = self.app.client_manager.compute
- volume_client = self.app.client_manager.volume
+ compute_client = self.app.client_manager.sdk_connection.compute
+ volume_client = self.app.client_manager.sdk_connection.volume
- server = utils.find_resource(
- compute_client.servers,
+ server = compute_client.find_server(
parsed_args.server,
+ ignore_missing=False,
)
- volume = utils.find_resource(
- volume_client.volumes,
+ volume = volume_client.find_volume(
parsed_args.volume,
+ ignore_missing=False,
)
- compute_client.volumes.delete_server_volume(
- server.id,
- volume.id,
- )
+ volume_attachments = compute_client.volume_attachments(server)
+ for volume_attachment in volume_attachments:
+ if volume_attachment.volume_id == volume.id:
+ compute_client.delete_volume_attachment(
+ volume_attachment,
+ server,
+ )
+ break
+ else:
+ msg = _('Target volume attachment not found.')
+ raise exceptions.CommandError(msg)
class RescueServer(command.Command):