python-cephclient: delete finished requests
ceph-mgr REST API supports synchronous and asynchronous requests. In asynchronous mode clients can run multiple requests in parallel then poll to get status of finished requests. ceph-mgr restful plugin keeps a list of requests that were initiated by the client and forwarded towards ceph-mgr. It expects the client to delete finished requests after retrieving current status. python-cephclient is making synchronous requests (using POST to "/request?wait=1") but the server is converting them asynchronus then polls for status on its side. So after getting a response back the client is still expected to DELETE "/request?id=..." Currently it's not doing that and ceph-mgr restful plugin is accumulating a list of all requests ever made by python-cephclient Change-Id: If8d5c8b27135fde45116e05bb04b655d9574c5ca Closes-Bug: 1828549 Signed-off-by: Daniel Badea <daniel.badea@windriver.com>
This commit is contained in:
parent
6bc6aed3d4
commit
3f3e61f148
@ -190,7 +190,10 @@ class CephClient(object):
|
|||||||
verify=self.check_certificate,
|
verify=self.check_certificate,
|
||||||
timeout=timeout).json()
|
timeout=timeout).json()
|
||||||
LOG.info('Result: {}'.format(result))
|
LOG.info('Result: {}'.format(result))
|
||||||
if 'is_finished' not in result:
|
if 'is_finished' in result:
|
||||||
|
self.session.delete(
|
||||||
|
self.service_url + 'request?id=' + result['id'])
|
||||||
|
else:
|
||||||
assert('message' in result)
|
assert('message' in result)
|
||||||
if 'auth: No such user' in result['message']:
|
if 'auth: No such user' in result['message']:
|
||||||
raise CephClientNoSuchUser(user=self.username)
|
raise CephClientNoSuchUser(user=self.username)
|
||||||
|
Loading…
Reference in New Issue
Block a user