From: Kefu Chai Date: Thu, 2 May 2019 15:02:15 +0000 (+0800) Subject: mgr/restful: do not use filter() for list X-Git-Tag: v15.1.0~2715^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=427bca899cb1f9ab041f4a33dfeb97a8edeb8211;p=ceph.git mgr/restful: do not use filter() for list unlike python2, python3 returns an iterator instead of a list, so construct a list using list comprehension directly. Fixes: https://tracker.ceph.com/issues/38628 Signed-off-by: Kefu Chai --- diff --git a/src/pybind/mgr/restful/api/mon.py b/src/pybind/mgr/restful/api/mon.py index 341f7037769e..20d0336059af 100644 --- a/src/pybind/mgr/restful/api/mon.py +++ b/src/pybind/mgr/restful/api/mon.py @@ -16,15 +16,11 @@ class MonName(RestController): """ Show the information for the monitor name """ - mon = filter( - lambda x: x['name'] == self.name, - context.instance.get_mons() - ) - + mon = [x for x in context.instance.get_mons() + if x['name'] == self.name] if len(mon) != 1: response.status = 500 return {'message': 'Failed to identify the monitor node "{}"'.format(self.name)} - return mon[0] diff --git a/src/pybind/mgr/restful/api/request.py b/src/pybind/mgr/restful/api/request.py index 486c6303f526..3c802a429b58 100644 --- a/src/pybind/mgr/restful/api/request.py +++ b/src/pybind/mgr/restful/api/request.py @@ -16,17 +16,12 @@ class RequestId(RestController): """ Show the information for the request id """ - request = filter( - lambda x: x.id == self.request_id, - context.instance.requests - ) - + request = [x for x in context.instance.requests + if x.id == self.request_id] if len(request) != 1: response.status = 500 return {'message': 'Unknown request id "{}"'.format(self.request_id)} - - request = request[0] - return request + return request[0] @expose(template='json') @@ -66,15 +61,13 @@ class Request(RestController): """ num_requests = len(context.instance.requests) - context.instance.requests = filter( - lambda x: not x.is_finished(), - context.instance.requests - ) - + context.instance.requests = [x for x in context.instance.requests + if not x.is_finished()] + remaining = len(context.instance.requests) # Return the job statistics return { - 'cleaned': num_requests - len(context.instance.requests), - 'remaining': len(context.instance.requests), + 'cleaned': num_requests - remaining, + 'remaining': remaining, }