2424
2525LOG = logging .getLogger (__name__ )
2626
27+ STORAGE_CLASSES = ['STANDARD' , 'STANDARD_IA' , 'GLACIER' ]
28+
2729
2830def _get_columns (item ):
2931 column_map = {
@@ -35,38 +37,39 @@ def _get_columns(item):
3537 return sdk_utils .get_osc_show_columns_for_sdk_resource (item , column_map )
3638
3739
38- class CreateContainer (command .Lister ):
40+ class CreateContainer (command .ShowOne ):
3941 _description = _ ("Create new container" )
4042
4143 def get_parser (self , prog_name ):
4244 parser = super (CreateContainer , self ).get_parser (prog_name )
4345 parser .add_argument (
44- 'containers ' ,
46+ 'container ' ,
4547 metavar = '<container-name>' ,
46- nargs = "+" ,
4748 help = _ ('New container name(s)' ),
4849 )
50+ parser .add_argument (
51+ '--storage_class' ,
52+ metavar = '{' + ',' .join (STORAGE_CLASSES ) + '}' ,
53+ type = lambda s : s .upper (),
54+ choices = STORAGE_CLASSES ,
55+ help = _ ('Storage class' ),
56+ )
4957 return parser
5058
5159 def take_action (self , parsed_args ):
5260 # raise NotImplementedError
53- results = []
54- for container in parsed_args .containers :
55- if len (container ) > 256 :
56- LOG .warning (
57- _ ('Container name is %s characters long, the default limit'
58- ' is 256' ), len (container ))
59- data = self .app .client_manager .obs .create_container (
60- name = container ,
61- )
62- results .append (data )
61+ attrs = {
62+ 'name' : parsed_args .container
63+ }
6364
64- columns = ("name" ,)
65- return (columns ,
66- (utils .get_item_properties (
67- s , columns ,
68- formatters = {},
69- ) for s in results ))
65+ if parsed_args .storage_class :
66+ attrs ['storage_class' ] = parsed_args .storage_class
67+
68+ data = self .app .client_manager .obs .create_container (** attrs )
69+ display_columns , columns = _get_columns (data )
70+ data = utils .get_item_properties (data , columns )
71+ #
72+ return (display_columns , data )
7073
7174
7275class DeleteContainer (command .Command ):
@@ -110,59 +113,59 @@ class ListContainer(command.Lister):
110113
111114 def get_parser (self , prog_name ):
112115 parser = super (ListContainer , self ).get_parser (prog_name )
113- parser .add_argument (
114- "--prefix" ,
115- metavar = "<prefix>" ,
116- help = _ ("Filter list using <prefix>" ),
117- )
118- parser .add_argument (
119- "--marker" ,
120- metavar = "<marker>" ,
121- help = _ ("Anchor for paging" ),
122- )
123- parser .add_argument (
124- "--end-marker" ,
125- metavar = "<end-marker>" ,
126- help = _ ("End anchor for paging" ),
127- )
128- parser .add_argument (
129- "--limit" ,
130- metavar = "<num-containers>" ,
131- type = int ,
132- help = _ ("Limit the number of containers returned" ),
133- )
134- parser .add_argument (
135- '--long' ,
136- action = 'store_true' ,
137- default = False ,
138- help = _ ('List additional fields in output' ),
139- )
140- parser .add_argument (
141- '--all' ,
142- action = 'store_true' ,
143- default = False ,
144- help = _ ('List all containers (default is 10000)' ),
145- )
116+ # parser.add_argument(
117+ # "--prefix",
118+ # metavar="<prefix>",
119+ # help=_("Filter list using <prefix>"),
120+ # )
121+ # parser.add_argument(
122+ # "--marker",
123+ # metavar="<marker>",
124+ # help=_("Anchor for paging"),
125+ # )
126+ # parser.add_argument(
127+ # "--end-marker",
128+ # metavar="<end-marker>",
129+ # help=_("End anchor for paging"),
130+ # )
131+ # parser.add_argument(
132+ # "--limit",
133+ # metavar="<num-containers>",
134+ # type=int,
135+ # help=_("Limit the number of containers returned"),
136+ # )
137+ # parser.add_argument(
138+ # '--long',
139+ # action='store_true',
140+ # default=False,
141+ # help=_('List additional fields in output'),
142+ # )
143+ # parser.add_argument(
144+ # '--all',
145+ # action='store_true',
146+ # default=False,
147+ # help=_('List all containers (default is 10000)'),
148+ # )
146149 return parser
147150
148151 def take_action (self , parsed_args ):
149152
150- if parsed_args .long :
151- columns = ('Name' , 'Bytes' , 'Count' )
152- else :
153- columns = ('Name' , )
153+ # if parsed_args.long:
154+ # columns = ('Name', 'Bytes', 'Count')
155+ # else:
156+ columns = ('name' , 'creation_date' )
154157
155158 kwargs = {}
156- if parsed_args .prefix :
157- kwargs ['prefix' ] = parsed_args .prefix
158- if parsed_args .marker :
159- kwargs ['marker' ] = parsed_args .marker
160- if parsed_args .end_marker :
161- kwargs ['end_marker' ] = parsed_args .end_marker
162- if parsed_args .limit :
163- kwargs ['limit' ] = parsed_args .limit
164- if parsed_args .all :
165- kwargs ['full_listing' ] = True
159+ # if parsed_args.prefix:
160+ # kwargs['prefix'] = parsed_args.prefix
161+ # if parsed_args.marker:
162+ # kwargs['marker'] = parsed_args.marker
163+ # if parsed_args.end_marker:
164+ # kwargs['end_marker'] = parsed_args.end_marker
165+ # if parsed_args.limit:
166+ # kwargs['limit'] = parsed_args.limit
167+ # if parsed_args.all:
168+ # kwargs['full_listing'] = True
166169
167170 data = self .app .client_manager .obs .containers (
168171 ** kwargs
0 commit comments