From 85352d68bcdcf26c6e433eb40268500348cacd58 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Thu, 28 Mar 2019 08:46:08 -0400 Subject: [PATCH] Refresh token throughout upload_media Certain calls were exceeding the lifetime of the token, add some refreshes to keep token up to date. Change-Id: I539f6323715ddacc5b435a61b2a1d9af65f29c2b --- pyghmi/ipmi/oem/lenovo/imm.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyghmi/ipmi/oem/lenovo/imm.py b/pyghmi/ipmi/oem/lenovo/imm.py index 64f66b7f..beedf6cb 100644 --- a/pyghmi/ipmi/oem/lenovo/imm.py +++ b/pyghmi/ipmi/oem/lenovo/imm.py @@ -1393,6 +1393,7 @@ class XCCClient(IMMClient): def upload_media(self, filename, progress=None): xid = random.randint(0, 1000000000) + self._refresh_token() uploadthread = webclient.FileUploader( self.wc, '/upload?X-Progress-ID={0}'.format(xid), filename, None) uploadthread.start() @@ -1416,6 +1417,7 @@ class XCCClient(IMMClient): "WebUploadName": thename} rsp = self.wc.grab_json_response('/api/providers/rp_rdoc_addfile', addfile) + self._refresh_token() if rsp.get('return', -1) != 0: errmsg = repr(rsp) if rsp else self.wc.lastjsonerror raise Exception('Unrecognized return: ' + errmsg) @@ -1423,8 +1425,10 @@ class XCCClient(IMMClient): if 'items' not in rsp or len(rsp['items']) == 0: raise Exception( 'Image upload was not accepted, it may be too large') + self._refresh_token() rsp = self.wc.grab_json_response('/api/providers/rp_rdoc_mountall', {}) + self._refresh_token() if rsp.get('return', -1) != 0: errmsg = repr(rsp) if rsp else self.wc.lastjsonerror raise Exception('Unrecognized return: ' + errmsg)