summaryrefslogtreecommitdiff
path: root/openstackclient/object
diff options
context:
space:
mode:
authorTerryHowe <terrylhowe@gmail.com>2015-10-15 08:39:23 -0600
committerTerry Howe <terrylhowe@gmail.com>2016-02-05 11:18:46 -0700
commit514a168656823eb4897e38a15a1a769a7d18f44f (patch)
tree135b87cd43c11fd4a03b5e5eea818dcc9d04a07e /openstackclient/object
parent42b607edf117e4a3f421a554308330409c88dbb1 (diff)
downloadpython-openstackclient-514a168656823eb4897e38a15a1a769a7d18f44f.tar.gz
Add recursive object delete for containers
Change-Id: Ib291e79864c218464e842a08efd3742193ba5ff0
Diffstat (limited to 'openstackclient/object')
-rw-r--r--openstackclient/object/v1/container.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/openstackclient/object/v1/container.py b/openstackclient/object/v1/container.py
index e70afd9d..80b84238 100644
--- a/openstackclient/object/v1/container.py
+++ b/openstackclient/object/v1/container.py
@@ -59,6 +59,12 @@ class DeleteContainer(command.Command):
def get_parser(self, prog_name):
parser = super(DeleteContainer, self).get_parser(prog_name)
parser.add_argument(
+ '--recursive', '-r',
+ action='store_true',
+ default=False,
+ help='Recursively delete objects and container',
+ )
+ parser.add_argument(
'containers',
metavar='<container>',
nargs="+",
@@ -69,6 +75,14 @@ class DeleteContainer(command.Command):
def take_action(self, parsed_args):
for container in parsed_args.containers:
+ if parsed_args.recursive:
+ objs = self.app.client_manager.object_store.object_list(
+ container=container)
+ for obj in objs:
+ self.app.client_manager.object_store.object_delete(
+ container=container,
+ object=obj['name'],
+ )
self.app.client_manager.object_store.container_delete(
container=container,
)