summaryrefslogtreecommitdiff
path: root/openstackclient/volume
diff options
context:
space:
mode:
authorwanghong <w.wanghong@huawei.com>2014-12-10 11:47:54 +0800
committerwanghong <w.wanghong@huawei.com>2014-12-23 09:31:10 +0800
commit470b7e53a8d7e7ba088b934c49163412c8ee5ed9 (patch)
treea1431caa7a027177a3db0861bc4e924e72b05ba8 /openstackclient/volume
parent3541b0a695af12e31ecae4b4bedbe4235b5c13b4 (diff)
downloadpython-openstackclient-470b7e53a8d7e7ba088b934c49163412c8ee5ed9.tar.gz
add multi-delete support for compute/image/net/volume
This is part1, add support for these objects: compute.server imagev1.image imagev2.image network.network volume.volume volume.backup volume.snapshot Closes-Bug: #1400597 Change-Id: Ice21fee85203a8a55417e0ead8b509b8fd6705c1
Diffstat (limited to 'openstackclient/volume')
-rw-r--r--openstackclient/volume/v1/backup.py14
-rw-r--r--openstackclient/volume/v1/snapshot.py14
-rw-r--r--openstackclient/volume/v1/volume.py22
3 files changed, 28 insertions, 22 deletions
diff --git a/openstackclient/volume/v1/backup.py b/openstackclient/volume/v1/backup.py
index 992fa7be..8c16ba25 100644
--- a/openstackclient/volume/v1/backup.py
+++ b/openstackclient/volume/v1/backup.py
@@ -73,25 +73,27 @@ class CreateBackup(show.ShowOne):
class DeleteBackup(command.Command):
- """Delete backup command"""
+ """Delete backup(s)"""
log = logging.getLogger(__name__ + '.DeleteBackup')
def get_parser(self, prog_name):
parser = super(DeleteBackup, self).get_parser(prog_name)
parser.add_argument(
- 'backup',
+ 'backups',
metavar='<backup>',
- help='Name or ID of backup to delete',
+ nargs="+",
+ help='Backup(s) to delete (name or ID)',
)
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
volume_client = self.app.client_manager.volume
- backup_id = utils.find_resource(volume_client.backups,
- parsed_args.backup).id
- volume_client.backups.delete(backup_id)
+ for backup in parsed_args.backups:
+ backup_id = utils.find_resource(volume_client.backups,
+ backup).id
+ volume_client.backups.delete(backup_id)
return
diff --git a/openstackclient/volume/v1/snapshot.py b/openstackclient/volume/v1/snapshot.py
index 9cc3c4c1..c9e1baca 100644
--- a/openstackclient/volume/v1/snapshot.py
+++ b/openstackclient/volume/v1/snapshot.py
@@ -74,25 +74,27 @@ class CreateSnapshot(show.ShowOne):
class DeleteSnapshot(command.Command):
- """Delete snapshot command"""
+ """Delete snapshot(s)"""
log = logging.getLogger(__name__ + '.DeleteSnapshot')
def get_parser(self, prog_name):
parser = super(DeleteSnapshot, self).get_parser(prog_name)
parser.add_argument(
- 'snapshot',
+ 'snapshots',
metavar='<snapshot>',
- help='Name or ID of snapshot to delete',
+ nargs="+",
+ help='Snapshot(s) to delete (name or ID)',
)
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
volume_client = self.app.client_manager.volume
- snapshot_id = utils.find_resource(volume_client.volume_snapshots,
- parsed_args.snapshot).id
- volume_client.volume_snapshots.delete(snapshot_id)
+ for snapshot in parsed_args.snapshots:
+ snapshot_id = utils.find_resource(volume_client.volume_snapshots,
+ snapshot).id
+ volume_client.volume_snapshots.delete(snapshot_id)
return
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py
index 84c216d3..73ae3a7f 100644
--- a/openstackclient/volume/v1/volume.py
+++ b/openstackclient/volume/v1/volume.py
@@ -155,35 +155,37 @@ class CreateVolume(show.ShowOne):
class DeleteVolume(command.Command):
- """Delete a volume"""
+ """Delete volume(s)"""
log = logging.getLogger(__name__ + '.DeleteVolume')
def get_parser(self, prog_name):
parser = super(DeleteVolume, self).get_parser(prog_name)
parser.add_argument(
- 'volume',
+ 'volumes',
metavar='<volume>',
- help='Volume to delete (name or ID)',
+ nargs="+",
+ help='Volume(s) to delete (name or ID)',
)
parser.add_argument(
'--force',
dest='force',
action='store_true',
default=False,
- help='Attempt forced removal of a volume, regardless of state',
+ help='Attempt forced removal of volume(s), regardless of state',
)
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
volume_client = self.app.client_manager.volume
- volume = utils.find_resource(
- volume_client.volumes, parsed_args.volume)
- if parsed_args.force:
- volume_client.volumes.force_delete(volume.id)
- else:
- volume_client.volumes.delete(volume.id)
+ for volume in parsed_args.volumes:
+ volume_obj = utils.find_resource(
+ volume_client.volumes, volume)
+ if parsed_args.force:
+ volume_client.volumes.force_delete(volume_obj.id)
+ else:
+ volume_client.volumes.delete(volume_obj.id)
return