diff options
author | Steve Martinelli <stevemar@ca.ibm.com> | 2014-09-05 12:56:21 -0400 |
---|---|---|
committer | Steve Martinelli <stevemar@ca.ibm.com> | 2014-09-15 01:57:54 +0000 |
commit | 505c784bad14d806dd5911c953eb95fe964d188b (patch) | |
tree | 7b75a483c213b244856f96c2678a2d192520b875 /openstackclient/object | |
parent | e47787e12f4ed6f1568527bbc1218fe3edb412e0 (diff) | |
download | python-openstackclient-505c784bad14d806dd5911c953eb95fe964d188b.tar.gz |
Add preliminary save container support
Save all objects from a container
implements bp: swift-client
Change-Id: I7f2437236574e212033e63d768929d813289ed05
Diffstat (limited to 'openstackclient/object')
-rw-r--r-- | openstackclient/object/v1/container.py | 24 | ||||
-rw-r--r-- | openstackclient/object/v1/lib/container.py | 19 |
2 files changed, 43 insertions, 0 deletions
diff --git a/openstackclient/object/v1/container.py b/openstackclient/object/v1/container.py index 1ca07f3a..5a60a3e8 100644 --- a/openstackclient/object/v1/container.py +++ b/openstackclient/object/v1/container.py @@ -152,6 +152,30 @@ class ListContainer(lister.Lister): ) for s in data)) +class SaveContainer(command.Command): + """Save the contents of a container locally""" + + log = logging.getLogger(__name__ + ".SaveContainer") + + def get_parser(self, prog_name): + parser = super(SaveContainer, self).get_parser(prog_name) + parser.add_argument( + 'container', + metavar='<container>', + help='Container name to save', + ) + return parser + + def take_action(self, parsed_args): + self.log.debug("take_action(%s)", parsed_args) + + lib_container.save_container( + self.app.client_manager.session, + self.app.client_manager.object_store.endpoint, + parsed_args.container + ) + + class ShowContainer(show.ShowOne): """Show container information""" diff --git a/openstackclient/object/v1/lib/container.py b/openstackclient/object/v1/lib/container.py index 63711838..4293ff4a 100644 --- a/openstackclient/object/v1/lib/container.py +++ b/openstackclient/object/v1/lib/container.py @@ -21,6 +21,8 @@ try: except ImportError: from urlparse import urlparse # noqa +from openstackclient.object.v1.lib import object as object_lib + def create_container( session, @@ -120,6 +122,23 @@ def list_containers( return session.get(url, params=params).json() +def save_container( + session, + url, + container +): + """Save all the content from a container + + :param session: an authenticated keystoneclient.session.Session object + :param url: endpoint + :param container: name of container to save + """ + + objects = object_lib.list_objects(session, url, container) + for object in objects: + object_lib.save_object(session, url, container, object['name']) + + def show_container( session, url, |