diff options
| author | Jenkins <jenkins@review.openstack.org> | 2014-09-18 07:26:38 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2014-09-18 07:26:38 +0000 |
| commit | cf2eb3c938e6d3bb46bbe25bce84d8cc291104ed (patch) | |
| tree | 1b1477875d799395d6e4e2eb7bfe358fbb7d017e /openstackclient/object | |
| parent | 0ad4c94b6c8513a5a79b7a1693c12cdc03b9c897 (diff) | |
| parent | 505c784bad14d806dd5911c953eb95fe964d188b (diff) | |
| download | python-openstackclient-cf2eb3c938e6d3bb46bbe25bce84d8cc291104ed.tar.gz | |
Merge "Add preliminary save container support"
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, |
