From fc7589a9d8043a67579abc33ad3096d9b1a83a15 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Tue, 8 Dec 2020 14:35:02 -0500 Subject: [PATCH] Improve reliability of Lenovo config handling Instruct the peer device to give a bit more time to allow for longer idle before closing a file. This permits operations to work more reliably against many systems at once. Change-Id: Ic7e7fa1dd934231bf967b9a82cbd041fb12db613 --- pyghmi/ipmi/oem/lenovo/config.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyghmi/ipmi/oem/lenovo/config.py b/pyghmi/ipmi/oem/lenovo/config.py index 3d1370ad..bc3e5fdc 100644 --- a/pyghmi/ipmi/oem/lenovo/config.py +++ b/pyghmi/ipmi/oem/lenovo/config.py @@ -36,7 +36,7 @@ IMM_NETFN = 0x2e IMM_COMMAND = 0x90 LENOVO_ENTERPRISE = [0x4d, 0x4f, 0x00] -OPEN_RO_COMMAND = [0x01, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10] +OPEN_RO_COMMAND = [0x01, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40] OPEN_WO_COMMAND = [0x01, 0x03, 0x01] READ_COMMAND = [0x02] WRITE_COMMAND = [0x03] @@ -45,7 +45,7 @@ SIZE_COMMAND = [0x06] def run_command_with_retry(connection, data): - tries = 10 + tries = 15 while tries: tries -= 1 try: @@ -210,6 +210,7 @@ class LenovoFirmwareConfig(object): remaining -= blocksize offset += blocksize run_command_with_retry(self.connection, data=data) + self.connection.ipmi_session.pause(0) def imm_read(self, filehandle, size): blocksize = 0xc8 @@ -232,10 +233,9 @@ class LenovoFirmwareConfig(object): data.extend(hex_blocksize[:2]) remaining -= blocksize offset += blocksize - response = run_command_with_retry(self.connection, data=data) output += response['data'][5:] - + self.connection.ipmi_session.pause(0) return output def factory_reset(self):