Since we added gzip support due to a non-compliant
implementation firing gzip at us anyway, advertise
so that we have the benefit for compliant implementations.
Also add the OData-Version header. This is required but
mostly not needed, except one implementation that uses it
to enter standard compliant mode and is non-compliant
without that in the client.
Change-Id: Ie2fdb95fa12f2ddef46506ca531e5188b6019227
Some redfish implementations may use a trailing slash in registries.
Additionally, any json may be gzipped.
Support these two scenarios.
Change-Id: I6437af21c927d13a74e8d914ed261412c1a3afa1
Redfish implementations can get dodgy about some things
and use different names for the same thing and different
mappings depending on vendor opinion...
Change-Id: I7ec5f1754fcfeca3933dd22a91d1a2daa037e501
redfish did not have a compatible function for the ipmi get_inventory_of_component.
For now, only provide fastpath for system,
other components are difficult to have shortcuts for.
Change-Id: I1998186340b206a997fd0c062bec02fcb0af5ebe
When used with invalid credentials, present a more clear
exception rather than a missed member of a dictionary.
Change-Id: I1e5bda9368673db62dce3ca2fd321cd79c62cb9c
If a BMC provided a time, but the format was not compliant,
it caused an exception. Now gracefully degrade to not
doing time correction if time cannot be parsed.
Change-Id: I5ab45d51913232016bb55d3595ea30188bbfe2e7
This uses the Dependencies section to perform validation
of data provided by the caller. This produces more informative
error messages without having to reboot to examine why.
Change-Id: I6360b8a2694e42d7b848de9ce45466c88e722c91
To be consistent with the ipmi settings, present the pending
as the 'value' and 'active' for the current value for pending
settings.
Change-Id: Ia99374732f05509d2796b5e2166c686716e93c69
Provide support for wildcards in settings and attributes,
as well as case insensitivity. This brings set nearly to
parity with the XCC configuration set in the ipmi half.
Change-Id: I6eef01af8e9e3bb7be03538509a606728c3c33da
Redfish models a moderate amount of data that can map to sensors.
Provide a preliminary partially compatible sensor model.
Change-Id: I10cadac5871497ef89f14b95924a5f4c3be52b01
This permits log clear while ensuring
that the log data did not change between retrieval and deletion.
Change-Id: I15ef6bb330612b83a6acb1dcf3663eb60bb8363b
Bring more urls together in hopes of performance
through concurrency. There are still points of
serialization, however.
Change-Id: Ie2b4eebe84cbd35e08a6fbf703d3a2b15a17026d
Some redfish implementations leave a dead DHCP definition when
configured static. Filter out such an address when encountered.
Change-Id: I25ff6b07ff75b67f7661157a8a0f1dc230f9010c
Independent concurrent requests are going to be a way of life, add
a generic helper. Future modify to take a dict of urls to handlers
to launch handlers in a pool as well.
Names are usually more descriptive, but are occasionally not unique.
Fallback to Id for devices that conflict.
Store name map to urls for faster performance of
get_inventory_of_component
Change-Id: I83207d24c8bd2a23ac0d16ab5e1777f7df8d4369
This permits the code to be able to risk redundant fetches without high
performance penalty through caching.
It also introduces a way for calling code to provide a concurrency
pool, e.g. a GreenPool from eventlet.
Change-Id: I60c4aabb5064a5ee19b0804a520d4ace1195710e
This is compatible with the ipmi model for now, and raising exceptions
in multi-interface environments. Future will have helper to list and
use interface as parameter.
Change-Id: I648edc1546a12dbd7f3ca9548ce6db3dfadd4827
We can have a SensorReading object that at least approximates ipmi
object, though we can never have readings.
Change-Id: Id33346263521e39f7b70ada456d0d134b6264e5c