The redfish and ipmi standards do not provide well for standardized
user deletion consistently implemented across vendors.
Provide a hook for an OEM handler to go into vendor specific
behavior to provide a more reasonable deletion.
Change-Id: I7131edbb6dbab31d205eef664e68d721f33b4422
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 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
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
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
Redfish has a richer model for standardized location information.
Create a function to expose this.
Change-Id: I1460ee250f163b4d5a2be18147f8f4cd3e3d6a16
There are some popular Redfish implementations
that violate the standard. More gracefully
tolerate the violations.
Change-Id: I52d1bb21a812c8c721a6ee0888dd92b80944fd65
Prior to ODATA limitations, . was a common delimiter.
If a setting is a good match if substituting . instead
of _, go ahead and consider it a match.
Change-Id: I5da06464f34a1d0d7f4869312ef1c48fe2f858cc
Redfish is not the best at inventory. Afford OEM
extensions the ability to override and accelerate
inventory.
Accelerate XCC based systems with this facility.
Change-Id: I3b92961e661d44b4b0f35d497085fc68f76fdcf1
Particularly in redfish, there is a distinction made
from 'floppy', and some implementations do not implement
floppy correctly.
Change-Id: I983d4ba94579a850b36786f04cbe03af3fce8de2
Some firmware has incomplete uefi configuration management,
have the dependency check disable when such a firmware
is encountered.
Change-Id: I08935c87a1c29d2ae2c318426dac16b411c38876
Set flake8-import-order version to 0.17.1
Full py3 compatible version.
Add all Python3 modules to stdlib list.
Change-Id: I3ef01e49c0e6822368146434f056ac7a1aa7ce4d
During the course of applying
configuration changes, the pending set
may change for some reason.
Repeat the logic if etag triggers an exception.
Change-Id: I3783b4ba45dd0dd57fdd3af80af16223e39fce05
For redfish, store the MessageId
for programattic processing.
For identify, use wildcard for
the identify etag. While an implementation required
etag for set identify, it permitted wildcard.
It doesn't matter to check etag on something as trivial as
LED control, so just wildcard it.
Change-Id: If3cf600e46f38858551c5f744388a57393b45123
The new version enables a lot of standard flake8 checks, so a few
fixes are required. W503 is disabled as it conflicts with W504
and the latter seems to be preferred nowadays.
Change-Id: I0d2fa8c88f081d553ebefb5f764397b2761dc2b5
Some redfish implementations endlessly mutate
their etag. This makes it impossible to
fully establish atomicity.
Move the logic as much server side as possible.
There is still a window where entries change
between fetching the entries and the loginfo,
but there is little hope.
Change-Id: I9135b96acf82f06bc8622efb4d53d0bc695d1758
So of course it turns out that in redfish
multiple firmware developers implemented
another exactly identical behavior with
different requirements.
Accomodate by trying to detect at least two
variants seen in the industry.
Change-Id: I5aec979f12fd775bcf8570fde411eaee787ba9c3
If the fetch does not have 'Systems', it seems to
mean the redfish subsystem is not ready yet
on the target BMC.
Change-Id: I6935ab31d090185e1bcc43364e8fc306f5635975
Some implementations require etag to set the identify light.
Some implementations do not provide the allowable reset values up
front and require chasing yet another url.
Fix an issue where a temperature sensor
without available reading caused an error.
Change-Id: Ie0b3c880b311438938d016857e4466c55447f7a3
Some redfish implementations do not handle such a request
gracefully. Avoid sending the command if the command allegedly
would have no effect.
Change-Id: I21b3ce18bb37747b71a67cbd0268d227ade6aad9
Error on unrecognized and also check
for a longer list of possible actions
that we wouldn't mind using.
Change-Id: I947ce7e76d28fe1e9a296c5c2a1e5a99a1a285ec
For one, improve the 'default' nic finding behaviors. This
allows a simplified view of even a somewhat complicated manager.
Additionally, add parameters so that multi-homed BMCs can actually
be managed.
Change-Id: I6b8f842a382cc32c80b7609e9ad574bcacf15b7a
Rather than passing a value through, cast to int
if the registry is available and instructs us to do
so.
Change-Id: I1b057f15278ba0cd0e98d23b073e3333fb896589