Add preliminary save container support
Save all objects from a container implements bp: swift-client Change-Id: I7f2437236574e212033e63d768929d813289ed05
This commit is contained in:
		@@ -152,6 +152,30 @@ class ListContainer(lister.Lister):
 | 
				
			|||||||
                ) for s in data))
 | 
					                ) 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):
 | 
					class ShowContainer(show.ShowOne):
 | 
				
			||||||
    """Show container information"""
 | 
					    """Show container information"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,8 @@ try:
 | 
				
			|||||||
except ImportError:
 | 
					except ImportError:
 | 
				
			||||||
    from urlparse import urlparse  # noqa
 | 
					    from urlparse import urlparse  # noqa
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from openstackclient.object.v1.lib import object as object_lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def create_container(
 | 
					def create_container(
 | 
				
			||||||
    session,
 | 
					    session,
 | 
				
			||||||
@@ -120,6 +122,23 @@ def list_containers(
 | 
				
			|||||||
    return session.get(url, params=params).json()
 | 
					    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(
 | 
					def show_container(
 | 
				
			||||||
    session,
 | 
					    session,
 | 
				
			||||||
    url,
 | 
					    url,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -273,6 +273,7 @@ openstack.object_store.v1 =
 | 
				
			|||||||
    container_create = openstackclient.object.v1.container:CreateContainer
 | 
					    container_create = openstackclient.object.v1.container:CreateContainer
 | 
				
			||||||
    container_delete = openstackclient.object.v1.container:DeleteContainer
 | 
					    container_delete = openstackclient.object.v1.container:DeleteContainer
 | 
				
			||||||
    container_list = openstackclient.object.v1.container:ListContainer
 | 
					    container_list = openstackclient.object.v1.container:ListContainer
 | 
				
			||||||
 | 
					    container_save = openstackclient.object.v1.container:SaveContainer
 | 
				
			||||||
    container_show = openstackclient.object.v1.container:ShowContainer
 | 
					    container_show = openstackclient.object.v1.container:ShowContainer
 | 
				
			||||||
    object_create = openstackclient.object.v1.object:CreateObject
 | 
					    object_create = openstackclient.object.v1.object:CreateObject
 | 
				
			||||||
    object_delete = openstackclient.object.v1.object:DeleteObject
 | 
					    object_delete = openstackclient.object.v1.object:DeleteObject
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user