Reseat returns success even when it
is not performed. Check for
shared io blocking prior to actually
attempting. This allows us to catch an error the firmware should have.
Change-Id: I683382236c0dc0683eba69d36e726056782aab10
Bump the cache version and just move away
from pickle. Upon closer thought, the
data being retained doesn't warrant a generic
format.
Change-Id: I3ba2b17eb2202cf64c8c0cdbf91addaf1325b5f0
While a cache is expected to be protected, mitigate
dangers by blocking code from being stored in pickle.
Change-Id: If3b942dd028da8580ec3f74e94081b30446ab8d9
Technically, the BMC is in error returning non-utf8 encoded content,
however, of *course* some BMCs fail to do so. Fallback to iso-8859-1
which will probably have bad data in a value somewhere, but it won't
break the entire parsing.
Change-Id: Id7c3c507a0eeb4c31ca52cfadf6ac77deefa3869
The capacity str may be GB or GiB or TB or TiB now.
Unfortunately, there's no normalized numeric in the api right now.
Change-Id: Iccfb6e837a0f2d5ac516c3e908c663bbddda2ed3
iDRAC does not support standard
redfish boot devices, provide oem override
in such case to use the OEM interface.
Change-Id: I53d7bb1d82035e621802c20f46000760cc8631a8
Certain redfish implementation only allow manipulation
of remote media through Actions. Detect when relevant
Actions are indicated and use them if offered.
Change-Id: I4eac9e5f4edb111f45551280fd98cdbc9c10c178
Previously, looking up an unknown OEM resulted in an exception being
logged:
exception while get_oem_handler, oemid:{'device_id': 32, 'device_revision': 1, 'manufacturer_id': 10876, 'product_id': 2414, 'firmware_version': '1.73'}
Traceback (most recent call last):
File "/omd/sites/plutex/local/lib/python3/pyghmi/ipmi/oem/lookup.py", line 43, in get_oem_handler
return (oemmap[oemid['manufacturer_id']].OEMHandler(oemid,
KeyError: 10876
So while I was at it, I also reduced duplicate code.
Signed-off-by: Jan-Philipp Litza <jpl@plutex.de>
Change-Id: Ib2483aeb3f92bcafbaa877eb1c0318a385f97474
Unrelated issue can derail an update process. Make pause
unlikely to throw unexpected issues, but print it out
just in case.
Further, give a hint when one specific scenario comes up that was
seen and hard to debug.
Change-Id: I635d3fc8df10b9bee9fc261d88beb7002b689a7e
While receiving the SDR, when the size is uneven, its division by 2
causes it to become a float instead of an integer, leading to a
TypeError later on:
Traceback (most recent call last):
File "gipmi/sdr.py", line 634, in __init__
self.read_info()
File "gipmi/sdr.py", line 665, in read_info
self.get_sdr()
File "gipmi/sdr.py", line 740, in get_sdr
sdrrec = self.ipmicmd.raw_command(netfn=0x0a, command=0x23,
File "gipmi/command.py", line 500, in raw_command
rsp = self.ipmi_session.raw_command(netfn=netfn, command=command,
File "gipmi/private/session.py", line 779, in raw_command
self._send_ipmi_net_payload(netfn, command, data,
File "gipmi/private/session.py", line 819, in _send_ipmi_net_payload
data = bytearray(data)
TypeError: 'float' object cannot be interpreted as an integer
Change-Id: I3e123487b27ef385823b1a20652195c7588f5d6c
Add bridge_request argument to set_power and get_power so that the
power request can be sent to the remote target.
For example of the usage:
ipmi_cmd = command.Command(bmc, userid, password)
ipmi_cmd.get_power(bridge_request={"addr": 0x20})
Change-Id: I80428f8fbbec3fab905537df5000007fa20d2e92
A change imposed a one second delay
on get_power_state unconditionally.
Fix by changing back the way it was.
Change-Id: Ib94d9dfe086146c446cd57d0228c13c8d7aa2116
The change to handle lun in decoding broke
construction of the acknowledgemennt in the PET
path, fix to go back to previous PET handling.
Change-Id: Ib20e67cd9462d846cb3d925a5c8989eef6140e8b
If a web session is getting refreshed
by some function, do not weblogout
behind its back.
Wait until no refresh activity is detected
to perform weblogout.
Change-Id: I3fec8ecf84e153169fa5fd10745b1f323950085f
This carries forward the configure 'default' nic for
systems that nominally have multiple interfaces.
Change-Id: I5916efde5aa57d7682fe08eff0fdc8864d79aa52
Some implementations use a differennt msgid to indicate the etag
mismatch, fix support for those platforms.
Further, it was discovered that if the display label for a setting
changed the setting to no longer match the setting, the retry would
be invalid. Support checking for mismatched spacing.
Change-Id: I9f83bfcf1c163fa36d6f684dd2685c828bd63507