- Implement purging a non-empty container [#3662]
- Add a -l option to upload, for listing uploaded objects details [#3730]
- Add option to cache container info for upload_object [#3707]
+- Add enumeration to all listing commands, make it optional [#3739]
limit=IntArgument('limit number of listed VMs', ('-n', '--number')),
more=FlagArgument(
'output results in pages (-n to set items per page, default 10)',
- '--more')
+ '--more'),
+ enum=FlagArgument('Enumerate results', '--enumerate')
)
def _make_results_pretty(self, servers):
if self['more']:
print_items(
servers,
- page_size=self['limit'] if self['limit'] else 10)
+ page_size=self['limit'] if self['limit'] else 10,
+ with_enumeration=self['enum'])
else:
print_items(
- servers[:self['limit'] if self['limit'] else len(servers)])
+ servers[:self['limit'] if self['limit'] else len(servers)],
+ with_enumeration=self['enum'])
def main(self):
super(self.__class__, self)._run()
limit=IntArgument('limit # of listed flavors', ('-n', '--number')),
more=FlagArgument(
'output results in pages (-n to set items per page, default 10)',
- '--more')
+ '--more'),
+ enum=FlagArgument('Enumerate results', '--enumerate')
)
@errors.generic.all
def _run(self):
flavors = self.client.list_flavors(self['detail'])
pg_size = 10 if self['more'] and not self['limit'] else self['limit']
- print_items(flavors, with_redundancy=self['detail'], page_size=pg_size)
+ print_items(
+ flavors,
+ with_redundancy=self['detail'],
+ page_size=pg_size,
+ with_enumeration=self['enum'])
def main(self):
super(self.__class__, self)._run()
limit=IntArgument('limit # of listed networks', ('-n', '--number')),
more=FlagArgument(
'output results in pages (-n to set items per page, default 10)',
- '--more')
+ '--more'),
+ enum=FlagArgument('Enumerate results', '--enumerate')
)
def _make_results_pretty(self, nets):
if self['detail']:
self._make_results_pretty(networks)
if self['more']:
- print_items(networks, page_size=self['limit'] or 10)
+ print_items(
+ networks,
+ page_size=self['limit'] or 10, with_enumeration=self['enum'])
elif self['limit']:
- print_items(networks[:self['limit']])
+ print_items(
+ networks[:self['limit']],
+ with_enumeration=self['enum'])
else:
- print_items(networks)
+ print_items(networks, with_enumeration=self['enum'])
def main(self):
super(self.__class__, self)._run()
limit=IntArgument('limit number of listed images', ('-n', '--number')),
more=FlagArgument(
'output results in pages (-n to set items per page, default 10)',
- '--more')
+ '--more'),
+ enum=FlagArgument('Enumerate results', '--enumerate')
)
def _filtered_by_owner(self, detail, *list_params):
if self['more']:
print_items(
images,
- title=('name',),
- with_enumeration=True,
- page_size=self['limit'] or 10)
+ with_enumeration=self['enum'], page_size=self['limit'] or 10)
elif self['limit']:
- print_items(
- images[:self['limit']],
- title=('name',),
- with_enumeration=True)
+ print_items(images[:self['limit']], with_enumeration=self['enum'])
else:
- print_items(images, title=('name',), with_enumeration=True)
+ print_items(images, with_enumeration=self['enum'])
def main(self):
super(self.__class__, self)._run()
limit=IntArgument('limit number listed images', ('-n', '--number')),
more=FlagArgument(
'output results in pages (-n to set items per page, default 10)',
- '--more')
+ '--more'),
+ enum=FlagArgument('Enumerate results', '--enumerate')
)
def _make_results_pretty(self, images):
if self['detail']:
self._make_results_pretty(images)
if self['more']:
- print_items(images, page_size=self['limit'] or 10)
+ print_items(
+ images,
+ page_size=self['limit'] or 10, with_enumeration=self['enum'])
else:
- print_items(images[:self['limit']])
+ print_items(images[:self['limit']], with_enumeration=self['enum'])
def main(self):
super(self.__class__, self)._run()
'--more'),
exact_match=FlagArgument(
'Show only objects that match exactly with path',
- '--exact-match')
+ '--exact-match'),
+ enum=FlagArgument('Enumerate results', '--enumerate')
)
def print_objects(self, object_list):
size = format_size(obj['bytes'])
pretty_obj['bytes'] = '%s (%s)' % (obj['bytes'], size)
oname = bold(obj['name'])
+ prfx = ('%s%s. ' % (empty_space, index)) if self['enum'] else ''
if self['detail']:
- print('%s%s. %s' % (empty_space, index, oname))
+ print('%s%s' % (prfx, oname))
print_dict(pretty_keys(pretty_obj), exclude=('name'))
print
else:
- oname = '%s%s. %6s %s' % (empty_space, index, size, oname)
+ oname = '%s%9s %s' % (prfx, size, oname)
oname += '/' if isDir else ''
print(oname)
if self['more']:
for index, container in enumerate(container_list):
if 'bytes' in container:
size = format_size(container['bytes'])
- cname = '%s. %s' % (index + 1, bold(container['name']))
+ prfx = ('%s. ' % (index + 1)) if self['enum'] else ''
+ cname = '%s%s' % (prfx, bold(container['name']))
if self['detail']:
print(cname)
pretty_c = container.copy()