common.Threshold: use dict-of-dict for Value
The Dbus specification does not allow the key of a dict to be a
non-basic type, such as a struct:
the first single complete type (the "key") must be a basic type
rather than a container type.
If we try to instantiate an instance with a struct as a dict key, we
end up getting an EINVAL on the add-vtable call.
Switch to nested dictionary to avoid this violation.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I2c512984e62166efec3f299d55efb39a9e93edbf
diff --git a/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml b/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml
index 2186fa8..6e8e673 100644
--- a/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml
+++ b/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml
@@ -5,12 +5,11 @@
properties:
- name: Value
- type: dict[struct[enum[self.Type],enum[self.Bound]],double]
+ type: dict[enum[self.Type],dict[enum[self.Bound],double]]
description: >
This indicates the threshold ranges applicable for the corresponding
Value interface. This property is experimental and may change based on
- implementation.
- map{struct{thresholdType,thresholdBound},thresholdValue}
+ implementation. map{thresholdType,map{thresholdBound,thresholdValue}}
flags:
- readonly
- name: Asserted