Fixed object listing logic
The previous endless listing behavior was actually caused by the ignorance of 'marker' key. This patch fixes that.
This commit is contained in:
@@ -55,9 +55,9 @@ class Client(object):
|
||||
print(self.auth.authorize(xport))
|
||||
return xport
|
||||
|
||||
def list(self, cls, options=None):
|
||||
def list(self, cls, **options):
|
||||
try:
|
||||
return cls.list(self.session, path_args=None, **options)
|
||||
return cls.list(self.session, **options)
|
||||
except exc.HttpException as ex:
|
||||
client_exc.parse_exception(ex)
|
||||
|
||||
|
||||
@@ -287,8 +287,10 @@ class Node(resource.Resource):
|
||||
physical_id = resource.prop('physical_id')
|
||||
cluster_id = resource.prop('cluster_id')
|
||||
profile_id = resource.prop('profile_id')
|
||||
profile_name = resource.prop('profile_name')
|
||||
index = resource.prop('index', type=int)
|
||||
role = resource.prop('role')
|
||||
init_time = resource.prop('init_time')
|
||||
created_time = resource.prop('created_time')
|
||||
updated_time = resource.prop('updated_time')
|
||||
deleted_time = resource.prop('deleted_time')
|
||||
@@ -304,8 +306,10 @@ class Node(resource.Resource):
|
||||
'physical_id': self.physical_id,
|
||||
'cluster_id': self.cluster_id,
|
||||
'profile_id': self.profile_id,
|
||||
'profile_name': self.profile_name,
|
||||
'index': self.index,
|
||||
'role': self.role,
|
||||
'init_time': self.init_time,
|
||||
'created_time': self.created_time,
|
||||
'updated_time': self.updated_time,
|
||||
'deleted_time': self.deleted_time,
|
||||
|
||||
@@ -78,7 +78,7 @@ def do_profile_type_template(sc, args):
|
||||
#### PROFILES
|
||||
|
||||
|
||||
@utils.arg('-s', '--show-deleted', default=False, action="store_true",
|
||||
@utils.arg('-d', '--show-deleted', default=False, action="store_true",
|
||||
help=_('Include soft-deleted profiles if any.'))
|
||||
@utils.arg('-l', '--limit', metavar='<LIMIT>',
|
||||
help=_('Limit the number of profiles returned.'))
|
||||
@@ -87,17 +87,13 @@ def do_profile_type_template(sc, args):
|
||||
def do_profile_list(sc, args=None):
|
||||
'''List profiles that meet the criteria.'''
|
||||
fields = ['id', 'name', 'type', 'permission', 'created_time']
|
||||
queries = {'show_deleted': False}
|
||||
if args.limit:
|
||||
queries['limit'] = args.limit
|
||||
if args.marker:
|
||||
queries['marker'] = args.marker
|
||||
if args.show_deleted:
|
||||
raw = args.show_deleted.lower()
|
||||
opt = raw in ['true', 'yes', '1', 'ok']
|
||||
queries['show_deleted'] = opt
|
||||
queries = {
|
||||
'show_deleted': args.show_deleted,
|
||||
'limit': args.limit,
|
||||
'marker': args.marker,
|
||||
}
|
||||
|
||||
profiles = sc.list_short(models.Profile, queries)
|
||||
profiles = sc.list(models.Profile, **queries)
|
||||
utils.print_list(profiles, fields, sortby_index=1)
|
||||
|
||||
|
||||
@@ -239,20 +235,18 @@ def do_policy_type_template(sc, args):
|
||||
'ID.'))
|
||||
def do_cluster_list(sc, args=None):
|
||||
'''List the user's clusters.'''
|
||||
queries = {}
|
||||
fields = ['id', 'cluster_name', 'status', 'created_time']
|
||||
if args:
|
||||
queries = {
|
||||
'limit': args.limit,
|
||||
'marker': args.marker,
|
||||
'filters': utils.format_parameters(args.filters),
|
||||
'show_deleted': args.show_deleted,
|
||||
'show_nested': args.show_nested
|
||||
}
|
||||
if args.show_nested:
|
||||
fields.append('parent')
|
||||
queries = {
|
||||
'limit': args.limit,
|
||||
'marker': args.marker,
|
||||
'filters': utils.format_parameters(args.filters),
|
||||
'show_deleted': args.show_deleted,
|
||||
'show_nested': args.show_nested
|
||||
}
|
||||
if args.show_nested:
|
||||
fields.append('parent')
|
||||
|
||||
clusters = sc.list(models.Cluster, queries)
|
||||
clusters = sc.list(models.Cluster, **queries)
|
||||
utils.print_list(clusters, fields, sortby_index=3)
|
||||
|
||||
|
||||
@@ -510,27 +504,20 @@ def do_node_list(sc, args):
|
||||
'''Show list of nodes.'''
|
||||
|
||||
fields = ['id', 'name', 'status', 'cluster_id', 'physical_id',
|
||||
'created_time']
|
||||
'profile_name', 'init_time', 'created_time', 'updated_time',
|
||||
'deleted_time']
|
||||
|
||||
queries = {'show_deleted': False}
|
||||
if args.cluster:
|
||||
queries['cluster_id'] = args.cluster
|
||||
if args.filters:
|
||||
queries['filters'] = utils.format_parameters(args.filters)
|
||||
if args.sort_keys:
|
||||
queries['sort_keys'] = args.sort_keys
|
||||
if args.sort_dir:
|
||||
queries['sort_dir'] = args.sort_dir
|
||||
if args.limit:
|
||||
queries['limit'] = args.limit
|
||||
if args.marker:
|
||||
queries['marker'] = args.marker
|
||||
if args.show_deleted:
|
||||
raw = args.show_deleted.lower()
|
||||
opt = raw in ['true', 'yes', '1', 'ok']
|
||||
queries['show_deleted'] = opt
|
||||
queries = {
|
||||
'show_deleted': args.show_deleted,
|
||||
'cluster_id': args.cluster,
|
||||
'filters': utils.format_parameters(args.filters),
|
||||
'sort_keys': args.sort_keys,
|
||||
'sort_dir': args.sort_dir,
|
||||
'limit': args.limit,
|
||||
'marker': args.marker,
|
||||
}
|
||||
|
||||
nodes = sc.list_short(models.Node, queries)
|
||||
nodes = sc.list(models.Node, **queries)
|
||||
utils.print_list(nodes, fields, sortby_index=5)
|
||||
|
||||
|
||||
@@ -743,27 +730,16 @@ def do_action_list(sc, args):
|
||||
def _short_target(obj):
|
||||
return obj.target[:8] + ' ...'
|
||||
|
||||
queries = {'show_deleted': False}
|
||||
queries = {
|
||||
'show_deleted': args.show_deleted,
|
||||
'filters': utils.format_parameters(args.filters),
|
||||
'sort_keys': args.sort_keys,
|
||||
'sort_dir': args.sort_dir,
|
||||
'limit': args.limit,
|
||||
'marker': args.marker,
|
||||
}
|
||||
|
||||
if args.filters:
|
||||
queries['filters'] = utils.format_parameters(args.filters)
|
||||
if args.sort_keys:
|
||||
queries['sort_keys'] = args.sort_keys
|
||||
if args.sort_dir:
|
||||
queries['sort_dir'] = args.sort_dir
|
||||
if args.limit:
|
||||
queries['limit'] = args.limit
|
||||
if args.marker:
|
||||
queries['marker'] = args.marker
|
||||
if args.show_deleted:
|
||||
raw = args.show_deleted.lower()
|
||||
opt = raw in ['true', 'yes', '1', 'ok']
|
||||
queries['show_deleted'] = opt
|
||||
|
||||
try:
|
||||
actions = sc.list_short(models.Action, queries)
|
||||
except exc.HTTPNotFound as ex:
|
||||
raise exc.CommandError(str(ex))
|
||||
actions = sc.list(models.Action, **queries)
|
||||
|
||||
fields = ['id', 'name', 'action', 'status', 'target', 'depends_on',
|
||||
'depended_by']
|
||||
|
||||
Reference in New Issue
Block a user