Skip to content

Commit 47f3cb4

Browse files
committed
exchange boto3 module with custom requests_auth implementation
remove boto3 module in favor of internally implemented requests_auth plugin to reduce external dependencies and problems with different versions in different distros
1 parent dc92610 commit 47f3cb4

20 files changed

Lines changed: 1084 additions & 876 deletions

File tree

otcextensions/osclient/obs/v1/container.py

Lines changed: 69 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
LOG = logging.getLogger(__name__)
2626

27+
STORAGE_CLASSES = ['STANDARD', 'STANDARD_IA', 'GLACIER']
28+
2729

2830
def _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

7275
class 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

Comments
 (0)