1616
1717import argparse
1818import logging
19+ from collections .abc import Iterable , Sequence
20+ from typing import Any
1921
2022from osc_lib .cli import format_columns
2123from osc_lib import exceptions
2830LOG = logging .getLogger (__name__ )
2931
3032
31- def _find_volumes (parsed_args_volumes , volume_client ):
33+ def _find_volumes (
34+ parsed_args_volumes : list [str ], volume_client : Any
35+ ) -> tuple [int , str ]:
3236 result = 0
3337 uuid = ''
3438 for volume in parsed_args_volumes :
@@ -48,7 +52,7 @@ def _find_volumes(parsed_args_volumes, volume_client):
4852class AddVolumeToConsistencyGroup (command .Command ):
4953 _description = _ ("Add volume(s) to consistency group" )
5054
51- def get_parser (self , prog_name ) :
55+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
5256 parser = super ().get_parser (prog_name )
5357 parser .add_argument (
5458 'consistency_group' ,
@@ -66,7 +70,7 @@ def get_parser(self, prog_name):
6670 )
6771 return parser
6872
69- def take_action (self , parsed_args ) :
73+ def take_action (self , parsed_args : argparse . Namespace ) -> None :
7074 volume_client = self .app .client_manager .volume
7175 result , add_uuid = _find_volumes (parsed_args .volumes , volume_client )
7276
@@ -90,7 +94,7 @@ def take_action(self, parsed_args):
9094class CreateConsistencyGroup (command .ShowOne ):
9195 _description = _ ("Create new consistency group." )
9296
93- def get_parser (self , prog_name ) :
97+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
9498 parser = super ().get_parser (prog_name )
9599 parser .add_argument (
96100 "name" ,
@@ -144,7 +148,9 @@ def get_parser(self, prog_name):
144148 )
145149 return parser
146150
147- def take_action (self , parsed_args ):
151+ def take_action (
152+ self , parsed_args : argparse .Namespace
153+ ) -> tuple [Sequence [str ], Iterable [Any ]]:
148154 volume_client = self .app .client_manager .volume
149155 if parsed_args .volume_type :
150156 volume_type_id = utils .find_resource (
@@ -186,13 +192,14 @@ def take_action(self, parsed_args):
186192 )
187193 )
188194
189- return zip (* sorted (consistency_group ._info .items ()))
195+ col_headers , col_data = zip (* sorted (consistency_group ._info .items ()))
196+ return col_headers , col_data
190197
191198
192199class DeleteConsistencyGroup (command .Command ):
193200 _description = _ ("Delete consistency group(s)." )
194201
195- def get_parser (self , prog_name ) :
202+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
196203 parser = super ().get_parser (prog_name )
197204 parser .add_argument (
198205 'consistency_groups' ,
@@ -208,7 +215,7 @@ def get_parser(self, prog_name):
208215 )
209216 return parser
210217
211- def take_action (self , parsed_args ) :
218+ def take_action (self , parsed_args : argparse . Namespace ) -> None :
212219 volume_client = self .app .client_manager .volume
213220 result = 0
214221
@@ -241,7 +248,7 @@ def take_action(self, parsed_args):
241248class ListConsistencyGroup (command .Lister ):
242249 _description = _ ("List consistency groups." )
243250
244- def get_parser (self , prog_name ) :
251+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
245252 parser = super ().get_parser (prog_name )
246253 parser .add_argument (
247254 '--all-projects' ,
@@ -258,7 +265,9 @@ def get_parser(self, prog_name):
258265 )
259266 return parser
260267
261- def take_action (self , parsed_args ):
268+ def take_action (
269+ self , parsed_args : argparse .Namespace
270+ ) -> tuple [Sequence [str ], Iterable [tuple [Any , ...]]]:
262271 if parsed_args .long :
263272 columns = [
264273 'ID' ,
@@ -292,7 +301,7 @@ def take_action(self, parsed_args):
292301class RemoveVolumeFromConsistencyGroup (command .Command ):
293302 _description = _ ("Remove volume(s) from consistency group" )
294303
295- def get_parser (self , prog_name ) :
304+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
296305 parser = super ().get_parser (prog_name )
297306 parser .add_argument (
298307 'consistency_group' ,
@@ -310,7 +319,7 @@ def get_parser(self, prog_name):
310319 )
311320 return parser
312321
313- def take_action (self , parsed_args ) :
322+ def take_action (self , parsed_args : argparse . Namespace ) -> None :
314323 volume_client = self .app .client_manager .volume
315324 result , remove_uuid = _find_volumes (parsed_args .volumes , volume_client )
316325
@@ -334,7 +343,7 @@ def take_action(self, parsed_args):
334343class SetConsistencyGroup (command .Command ):
335344 _description = _ ("Set consistency group properties" )
336345
337- def get_parser (self , prog_name ) :
346+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
338347 parser = super ().get_parser (prog_name )
339348 parser .add_argument (
340349 'consistency_group' ,
@@ -353,7 +362,7 @@ def get_parser(self, prog_name):
353362 )
354363 return parser
355364
356- def take_action (self , parsed_args ) :
365+ def take_action (self , parsed_args : argparse . Namespace ) -> None :
357366 volume_client = self .app .client_manager .volume
358367 kwargs = {}
359368 if parsed_args .name :
@@ -372,7 +381,7 @@ def take_action(self, parsed_args):
372381class ShowConsistencyGroup (command .ShowOne ):
373382 _description = _ ("Display consistency group details." )
374383
375- def get_parser (self , prog_name ) :
384+ def get_parser (self , prog_name : str ) -> argparse . ArgumentParser :
376385 parser = super ().get_parser (prog_name )
377386 parser .add_argument (
378387 "consistency_group" ,
@@ -381,9 +390,12 @@ def get_parser(self, prog_name):
381390 )
382391 return parser
383392
384- def take_action (self , parsed_args ):
393+ def take_action (
394+ self , parsed_args : argparse .Namespace
395+ ) -> tuple [Sequence [str ], Iterable [Any ]]:
385396 volume_client = self .app .client_manager .volume
386397 consistency_group = utils .find_resource (
387398 volume_client .consistencygroups , parsed_args .consistency_group
388399 )
389- return zip (* sorted (consistency_group ._info .items ()))
400+ col_headers , col_data = zip (* sorted (consistency_group ._info .items ()))
401+ return col_headers , col_data
0 commit comments