Trying each API call in any order doesn't work correctly for all
cases since the API call for Whitley incorrectly returns success
on the newest Purley firmware and vice versa. The Whitley volume
properties have some extra keys in them. Use one of the extra keys
to differentiate between Purley and Whitley.
Change-Id: Ia18631ec16107492e8753eb4312c56171ebd33f0
If called in parallel, multiple sessions may be opened without
the old one having a chance to be closed.
Serialize any attempt to concurrently login to
keep the sessions down.
Change-Id: Id389ba1caf89897b00845be394509d489186272d
Unfortunately, different devices apply this
in different ways. The impetus was a BMC that
was incorrectly returning a bad reading, and a
thought toward using the assertion events instead.
This has two problems, one is that this mechanism is optional, and for another
the caller is expected to manage the arming.
Go back to using the sensor reading to let the BMC
mark on-the-fly the state.
Change-Id: Ie61d4b8427905171b32f6998a80806f1027660d6
When setting max timeout, select a more aggressive timeout
if recent connectivity hasn't been confirmed.
Change-Id: I806d0cddb53e4e2246c6de86e561dbd658a76256
FPCs represent blocked slots in a peculiar way,
as a node that is in 'standby'. Avoid explicitly
considering the power permission state of the
permission state is standby.
Change-Id: I801165e3e45fe1e4b7a8f7b4bc19b4ef9bee763f
The mechanism to carry over a payload into a new logon
could inadvertently carry over get channel authentication
for example, creating a very confused state.
Change-Id: I29f399006f0c210c80f726e3eb494d3e8b0c3992
This enables manipluating the feature in XCCs to
allow network connections to forward over USB port.
Change-Id: I577d6952e0dab4b9a9df8b6118fc75ed0173d366
Redfish now allows a system to opt to place virtual media
on system rather than manager. The rational being that
remote media has to be mapped to specific hosts, and the
manager relationship to that media can be implicit.
Try the system first (more specific) then fallback to traditional
manager location for virtualmedia.
Change-Id: I5d63b5e57572c6a753a2d86adb223335a15a71ea
Some resources are leaked on deletion
of a webclient without explicit close, improve
by destructor.
Change-Id: I91d313125bf79f83c3cd07e12e573b2bdd5a95ef
Various issues have been associated with trying to
reinitiate a session during a 'timeout' scenario, attempt
to clean up the various scenarios where it wasn't originally
designed to survive across a relogin.
Change-Id: Ifd9c8e98070217a1b0f4a35c8e0851a063b77800
If not logged in, continue to skip trying to reach BMC, but
do fire off internal cleanup.
This is technically an oversight, made worse by the recent changes
to 'unlog' as part of retry.
Change-Id: I0825c1f77decb81694f897b904a19a2f59587055
Some BMCs implement entry logs that are
not actionable. Trim those out to avoid empty data
for a user to scratch their head at.
Change-Id: I05ea62cdd3a56dfdeea4080774ec5a67a651824f
Previously, logon retries were not part of the normal
tries and treated separately. Now that
the normal retry logic is in place, a change
is needed to avoid the wait times amplifying.
Change-Id: Ia2e5b4f0790ce4574f17cf7ceb15ebd7a36f8afa
The health assesment can be much cheaper if the XCC health
assessment is trusted.
The issue would be that if the XCC web shows healthy, but the error LED
is lit, this condition would no longer be seen.
However, the error LED shouldn't be lit unless the XCC detects a fault.
So if such a condition of LED lit without explanation should arise in
the future, it would be better treated as an XCC firmware issue.
Change-Id: I55a4451eda4aba43fcf3d3e8e2307c3ce30b8fcd
The sequence number is never initialized unless the login already
happened, so we need to check for its existence when retrying failed
login.
Change-Id: Ia2319d4c0255d6ae8616cf0c736aaa30d65e6129
Sometimes a BMC just up and drops an IPMI session without warning.
The only way to recover is to login, so incorporate a login into the
retry logic.
Now a couple of retries are done the 'cheap' way (retransmit) followed
by a full login attempt.
This does mean that SOL sessions are less likely to survive a shared
nic outage during PXE boot or similar,
however we just have to take that hit.
Change-Id: Ica11d29519b1c69cbd151bce9100f8a7517544ca
Web session being expired should be mitigated by
forcing to start over if the session is more than
30 seconds old.
Change-Id: Iaa2abff9ab401a4e5285ea994028bf5f784ecc40
Python2 bytes type cannot be compared to number.
Coerce into a bytearray to have python2 treat
them as numbers.
Change-Id: I8522b1eb74f4b7aebfa6a0fa68107a0df947c7f6
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