2
0
mirror of https://opendev.org/x/pyghmi synced 2026-05-18 04:07:19 +00:00
Commit Graph

1348 Commits

Author SHA1 Message Date
Jarrod Johnson 20a8dc83e9 Fix str concatenation on redfish spec violations
Change-Id: Iaa013e7df8538a5d3b26dfce3e70192e3b48d59e
2024-08-29 13:52:34 -04:00
Jarrod Johnson 4e166bd246 Refactor redfish settings and leverage in XCC3
XCC3 has some OEM settings managed in a redfish
settings registry sort of way.  Refactor
to pull out generic registry handling and use it
with XCC3 settings as well as UEFI.

Manifest 'XCC' settings with 'XCC.' prefix, imitating the 'IMM.' of
the past.  Since OData forbids '.', this means XCC. cannot
conflict with hypothetical BIOS names that may conflict.

Change-Id: Idb9e5ecffdc0d27f20ae070acdc3cd78658a0955
2024-08-29 10:58:00 -04:00
Jarrod Johnson a8a03632a0 Wire up redfish for getting extended BMC settings
In recent XCC incarnations, this is possible over non-IPMI,
so wire it up to be more equivalent.

Change-Id: Ie13d6faeee27639df67352568046810e0615fcb6
1.5.71
2024-08-27 10:03:32 -04:00
Jarrod Johnson 5b47863592 Add generic redfish license handling
Use redfish standard mechanism for generic and
starting point for redfish OEM support.

Change-Id: I6ae8939c5b8f3a15a9b941a5a81f60438e7aa005
2024-08-27 09:32:51 -04:00
Jarrod Johnson 5756a1e377 Extend MAC collection in redfish
There is yet another flavor of MAC address organization.

So make sure we provide chances to hit it at least three of
the various ways redfish may choose to manifest mac addresses.

There are other paths to the data as well, but hopefully an
implementation at least implements one of the three.

Change-Id: Iaba947e2e16f14b6e7a94018beac046efd73bc25
2024-08-26 16:22:08 -04:00
Jarrod Johnson 1c4e75a0af Normalize UUID format
Some implementations include hyphen, others don't.  Case selection
is also variable.

Change-Id: Ic3d8c411722732172f782a0a81f8f5bbbdd54525
2024-08-26 13:54:24 -04:00
Jarrod Johnson 939e976791 Add multipart update support to redfish updates
Change-Id: I706087c6aaac0071b91de3747930523a9896bf19
2024-08-26 13:07:05 -04:00
Jarrod Johnson 5736dea914 Add BMC reset to redfish implementation
Change-Id: Ib2024871fa829659429d7e44b6860c62a70826de
2024-08-26 11:37:56 -04:00
Jarrod Johnson 5c1a3634ef Fix the extended bmc configuration
Change-Id: I118520280dd453ee1c8e8cef806f4fab0783746c
2024-08-26 09:59:46 -04:00
Jarrod Johnson e430b21685 Exposed advanced, extended BMC configuration
Change-Id: Ice54d8dc65cc7f40aebd1f7ec3c3af44d17ec540
2024-08-26 09:11:22 -04:00
Jarrod Johnson ecd3d5cadc Restore UEFI configuration to IMM systems
The work to migrate newer systems to redfish unfortunately
broke ability to work with older IMM based systems.

Use the lack of redfish in the class to indicate that the system
predates this and should use IPMI.

Change-Id: I8ca2782e81984a86ddb5f2ded358bbfad07be46d
2024-06-24 09:04:17 -04:00
Jarrod Johnson 3673666035 Update for modern Debian/Ubuntu build
Change-Id: Ia22d711512137fcaf30174b0e899d6ce7d937fec
1.5.70
2024-06-11 13:26:47 -04:00
Jarrod Johnson ea0bfc99c9 Add FAPM meters for better quality power data
Change-Id: I5e716badabdf5bdaa04666ddcd55f1d3c6d2a789
2024-06-11 10:58:20 -04:00
Dmitry Tantsur 9b05952343 Remove unused test-requirements
Change-Id: I7ee6b6ea25f4f7de9801cbbb15efc0040f630db1
2024-04-21 13:18:28 +02:00
Jarrod Johnson ed94d36d18 Handle out of order setting instances
The data from the xClarity controller may not be sorted,
apply numeric sort on the way out.

Change-Id: Icd22a140bf6b558703b1006a41047ffbd6a1e3d8
1.5.69
2024-04-09 09:46:24 -04:00
Jarrod Johnson 584c109763 Fix handling of empty bays during cap manipulation
Change-Id: Idb57183dca12e0e58f61469c185cba841f2eca08
1.5.68
2024-03-20 08:26:44 -04:00
Jarrod Johnson d70f660e08 Fix SMM height
SMM height failed to trim the leading 4 bits

Change-Id: I180a2919002b4cd600f99caa527bdc7ebc43244f
2024-03-05 16:32:06 -05:00
Jarrod Johnson e3f187d185 Extent redfish inventory enumeration of XCC
Have the inventory explicitly cover the memory and processors.

Change-Id: I9fcb85f21a460c45285ec80c06093a077751a3c1
2024-03-01 14:09:51 -05:00
Jarrod Johnson cbe0896f00 No longer consider unrecognized states as 'warning'
The precedent seems to be to ignore unknown states, so
follow that.

Change-Id: Ibafc28a1695276455401334aeca8e4f0dc65446b
2024-02-27 11:20:38 -05:00
Jarrod Johnson da7796b518 Catch more XCC variants
Some XCCs rename a property to a different name.

Change-Id: I2ad278c5a99477d0aab01f4e71862196f96998fc
1.5.67
2024-02-12 08:46:11 -05:00
Jarrod Johnson 30d5545230 More gracefully fail on normalized readings
If something in IPMI doesn't follow DCMI close enough,
provide a more graceful error.

Similarly, if a redfish implementation is missing EnvironmentMetrics
or that EnvironmentMetrics is incomplete, handle more gracefully.

Change-Id: I708841306e68a88271d533061f6ca5a687f904b5
2024-01-24 14:43:12 -05:00
Vlad Spoiala1 4d6921caba Add retry mechanism to FW update.
On v3 systems we sometimes get an empty status when monitoring the
status of the BMC FW upgrade. This happens for 1 to 3 seconds when
transitioning from the "apply" phase to the "validating" phase.
Add a retry mechanism so we don't incorrectly exit on the first empty
status.

Change-Id: I02c653f36d09087cdf76fb7d7dee71917a128c51
1.5.66
2024-01-22 18:49:32 +02:00
Vlad Spoiala1 3f3853023f Add prefix to 7mm disks.
Change-Id: I0c33944a92de87f32baed97dbb1789f86b1cd0a3
1.5.65
2023-11-16 16:30:32 +02:00
Zuul e18605626b Merge "Do not presume messages in result" 2023-11-14 16:54:53 +00:00
Jarrod Johnson a93437c7e4 Do not presume messages in result
Sometimes we may have no messages array,
and this check for a validating job fails.

Fix this by skipping the next task if no pointer to next
task can be found.

Change-Id: I8d8e8ad6bfe9b70e7643ae84da9f3c7779eda55e
2023-11-14 11:37:26 -05:00
Vlad Spoiala1 a815d9da4c Fix total and free capacity calculations.
Change-Id: I8cd3d15480a49e7bcdcb8a08cc82f6af637c7bef
2023-11-14 18:11:41 +02:00
Jarrod Johnson b91ea93fe7 Have average CPU handle totally missing sensors
If not even unavailable sensors are found, create
a new sensor to hold the unavailable data.

Change-Id: I2865ff6b407955cb69655e1ae80da22c31bb6d5a
2023-10-26 11:28:43 -04:00
Jarrod Johnson 0335e90e4c Handle missing sensors
For scenarios where device is missing inlet or
cpu sensors, more gracefuly report the result.

Change-Id: I810d7f6733a2150ee89560743503148f660caaf3
2023-10-26 10:52:19 -04:00
Jarrod Johnson 3d4c5c7811 Add normalized temperature/power data for redfish
As has been done for IPMI, create
hooks for popular sensor metrics that users want
normalized across distinct models.

This allows a client to request pertinent data without having to
keep track of inconsistent sensor names across different systems.

Change-Id: Idd1ac8222231f1a786a4f4af148e3fc3d1f6c89b
2023-10-26 08:24:56 -04:00
Jarrod Johnson e2ba4f12fc Add normalized sensor data
For select values, provide normalized
data.

Use DCMI get power readings command to provide a system power value.

Use DCMI guidance to steer sensors for cpus and inlet.  Use
standard sensor reading code.

Change-Id: If6db6a3f2829aba4d0c62a360fa47fb0d4795704
2023-10-20 16:35:50 -04:00
Jarrod Johnson b67912283c Fix typo in error message
Change-Id: I90eb675f253b7499600a333de7e962468e8c69f9
1.5.64
2023-10-13 10:19:41 -04:00
Jarrod Johnson 3c5b03c35f Filter out DPU from systems collection if ambiguous
DPUs may manifest in a Systems collection.

If the caller does not specify sysurl, they are almost certainly wanting
to manage the 'main' system,
not an adapter.

Provide for this expectation by
retrying the collection with DPU
filtered out,
so that if there's exactly one non-DPU
system, then it will still be functional.

Change-Id: I300c47245111121440ae0f037d202b074407c45d
2023-10-02 08:58:24 -04:00
Jarrod Johnson 8ac115a8a7 Restore sane timeout behavior to pyghmi
The change to make sure resources are freed replaced straightforward
message with a weird one.  In the well known context, put the well known
message back in the reasonable path.

Change-Id: Iea17b8bbb7b14255debb05a90d5701f320b5d705
2023-09-20 15:20:49 -04:00
Zuul b2f46dfdae Merge "Provide generic redfish push update support" 1.5.63 2023-08-24 20:23:13 +00:00
Jarrod Johnson 75fbe74cc1 Provide generic redfish push update support
Avail ourselves of generic redfish push
update support, now that
we have had a few other redfish implementations
to see that it in fact does work genericly.

Change-Id: Id68f5774fba973c6c9b24047d89a3ef6ae90dff3
2023-08-24 15:44:50 -04:00
Jarrod Johnson 6c55b39c28 Return empty tuple rather than None
The ntp_servers is supposed to always return
an iterable, fix to be compliant.

Change-Id: I52b3c377a1ed2f4c1134699ad9e0f4f592c65c33
2023-08-16 08:13:41 -04:00
Jarrod Johnson a7afc5b0e5 Expect timeout on reseat
When doing a reseat, the target will tend to unplug
itself before a reply.

In such a scenario, be optimistic about the result.

Change-Id: Iae3aac15b48990e04dacabf94dd9149e9c0c1387
1.5.62
2023-07-27 15:59:17 -04:00
Jarrod Johnson 9c84b8ad50 Reset seek on unwrapped zip
If the zip payload is passed through
as-is, then make sure to seek if
the filehandle is open.

Change-Id: I04702da72d63b4edd7841e1b4f55704a92522ba9
2023-07-27 15:19:15 -04:00
Jarrod Johnson b1a693a0e7 Prefer first PCI device id
The 'base' device id in a multi-function
device may be considered to be the first,
rather than the last.

Change-Id: I4f39b81fb0225b4221aeffc108c12388cf7a7ea1
2023-07-27 14:10:52 -04:00
Jarrod Johnson 7a3eb593d1 Provide error checking using XCC hints
The XCC provides hints as to the valid
format of open ended text.

Apply this as a sanity check before accepting a changeset.

Change-Id: I4a97a5a85e4de69fa13894a46dca568cda447705
2023-07-27 11:32:51 -04:00
Jarrod Johnson 7b62d693c7 Handle unseekable data
We may be given a file-like
that cannot seek.
For example, older 'ZipFileExt'
did not have tell/seek.

For such cases, fallback to memory
hungary behavior of using a BytesIO to
provide a trackable
upload.

Change-Id: I401e2fcc7369f31d0d413909854c8d9224b02023
2023-07-27 10:02:00 -04:00
Jarrod Johnson 85f5c7699b Fix capitilazation consistency
IPMI and redfish had different capitalization, change to be consistent.

Change-Id: I75c4cd597156e7282b10bd52bdaef83a3928cae2
2023-07-27 08:16:48 -04:00
Jarrod Johnson 212f0df227 Trigger unwrapping only with singular update
A compound update may contain multiple updates with
json directions on processing.

Activate uxz unwrapping only
with singular payload that ends
in uxz.

Change-Id: I5fb3d158a33f696a7e2fb5143e703de4c9408e7a
2023-07-26 15:29:18 -04:00
Jarrod Johnson e2f15bde4d Apply uxz payload rather than whole zip to XCC
XCC updates are now wrapped in .zip for newer platforms,
however the XCC is more robust at handling uxz.

Change-Id: I90d70ab167e44737bc785e4ed88b9f9890a545a7
2023-07-26 13:12:18 -04:00
Jarrod Johnson 9a307a0c4e Implement XCC override for health in redfish
Change-Id: I9bc720e9e10501219aaaa8ea00d22bccabfaffce
2023-07-24 15:40:11 -04:00
Jarrod Johnson 0c5ca9fcdf Avoid error on unexpected shutdown
SMM may reboot at any moment without warning after
finishing an update.

Assume good news if this should happen.

Change-Id: I841780bad9f9ca49b0fbc7c58652e569a3c0a638
2023-07-20 14:55:23 -04:00
Jarrod Johnson c0927c9f2e Add missing class to generic redfish support
Change-Id: I4d9c2cb163ba0f8f3e4b1c878b1dec26ae8f7422
2023-07-20 08:30:24 -04:00
Jarrod Johnson ec1720c862 Correct missing lookup in generic OEM redfish
Change-Id: I61efe187ee314ade91a05513d0fe55c614d98e25
2023-07-19 15:14:40 -04:00
Jarrod Johnson 63956d35cb Prepare redfish for OEM health
OEM providers may provide better/faster health
information.

Allow the override, similar to how override is allowed for ipmi.

This paves the way for some more consistent health data as well as doing better than the redfish
health model, which has some gaps.

Change-Id: Ibb237ca10f724f9f8e54d3a446496d8b13234e5a
2023-07-19 10:56:48 -04:00
Jarrod Johnson 5f522fe66b Add deduplicated events and let XCC events control entirely
The event messages may convey more
specific information.  The generic IPMI may
be too vague to know where to proceed next.

Change-Id: I6e0ce8a34d741fa8d4c6c975212f6845755b4f9b
2023-06-02 15:20:17 -04:00