@@ -154,10 +154,40 @@ class ListVolume(lister.Lister):
154154 api = 'volume'
155155 log = logging .getLogger (__name__ + '.ListVolume' )
156156
157+ def get_parser (self , prog_name ):
158+ parser = super (ListVolume , self ).get_parser (prog_name )
159+ parser .add_argument (
160+ '--status' ,
161+ metavar = '<status>' ,
162+ help = 'Filter results by status' ,
163+ )
164+ parser .add_argument (
165+ '--name' ,
166+ metavar = '<name>' ,
167+ help = 'Filter results by name' ,
168+ )
169+ parser .add_argument (
170+ '--all-tenants' ,
171+ action = 'store_true' ,
172+ default = False ,
173+ help = 'Display information from all tenants (Admin-only)' ,
174+ )
175+ return parser
176+
157177 def take_action (self , parsed_args ):
158178 self .log .debug ('take_action(%s)' % parsed_args )
159- columns = ('ID' , 'Status' , 'Display Name' , 'Size' , 'Volume Type' )
160- data = self .app .client_manager .volume .volumes .list ()
179+ columns = ('ID' , 'Status' , 'Display Name' , 'Size' ,
180+ 'Volume Type' , 'Bootable' , 'Attached to' )
181+
182+ search_opts = {
183+ 'all_tenants' : parsed_args .all_tenants ,
184+ 'display_name' : parsed_args .name ,
185+ 'status' : parsed_args .status ,
186+ }
187+
188+ volume_client = self .app .client_manager .volume
189+ data = volume_client .volumes .list (search_opts = search_opts )
190+
161191 return (columns ,
162192 (utils .get_item_properties (
163193 s , columns ,
0 commit comments