File tree Expand file tree Collapse file tree
openstackclient/object/v1 Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -152,6 +152,30 @@ def take_action(self, parsed_args):
152152 ) for s in data ))
153153
154154
155+ class SaveContainer (command .Command ):
156+ """Save the contents of a container locally"""
157+
158+ log = logging .getLogger (__name__ + ".SaveContainer" )
159+
160+ def get_parser (self , prog_name ):
161+ parser = super (SaveContainer , self ).get_parser (prog_name )
162+ parser .add_argument (
163+ 'container' ,
164+ metavar = '<container>' ,
165+ help = 'Container name to save' ,
166+ )
167+ return parser
168+
169+ def take_action (self , parsed_args ):
170+ self .log .debug ("take_action(%s)" , parsed_args )
171+
172+ lib_container .save_container (
173+ self .app .client_manager .session ,
174+ self .app .client_manager .object_store .endpoint ,
175+ parsed_args .container
176+ )
177+
178+
155179class ShowContainer (show .ShowOne ):
156180 """Show container information"""
157181
Original file line number Diff line number Diff line change 2121except ImportError :
2222 from urlparse import urlparse # noqa
2323
24+ from openstackclient .object .v1 .lib import object as object_lib
25+
2426
2527def create_container (
2628 session ,
@@ -120,6 +122,23 @@ def list_containers(
120122 return session .get (url , params = params ).json ()
121123
122124
125+ def save_container (
126+ session ,
127+ url ,
128+ container
129+ ):
130+ """Save all the content from a container
131+
132+ :param session: an authenticated keystoneclient.session.Session object
133+ :param url: endpoint
134+ :param container: name of container to save
135+ """
136+
137+ objects = object_lib .list_objects (session , url , container )
138+ for object in objects :
139+ object_lib .save_object (session , url , container , object ['name' ])
140+
141+
123142def show_container (
124143 session ,
125144 url ,
Original file line number Diff line number Diff line change @@ -273,6 +273,7 @@ openstack.object_store.v1 =
273273 container_create = openstackclient.object.v1.container:CreateContainer
274274 container_delete = openstackclient.object.v1.container:DeleteContainer
275275 container_list = openstackclient.object.v1.container:ListContainer
276+ container_save = openstackclient.object.v1.container:SaveContainer
276277 container_show = openstackclient.object.v1.container:ShowContainer
277278 object_create = openstackclient.object.v1.object:CreateObject
278279 object_delete = openstackclient.object.v1.object:DeleteObject
You can’t perform that action at this time.
0 commit comments