regulators: Support a string or vector for VPD
Add a 'byte_values' alternative to the 'value' entry in the compare VPD
action. This is to support VPD values that are not strings, such as
'HW', a new IBM keyword that describes the version of a piece of
hardware.
To support this, the VPD class now treats all VPD keyword values as
vectors of uint8_ts, including in its data cache. If a compare VPD
action in the JSON contains a string value, it will be converted to the
vector before the CompareVPDAction class is created.
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I3fcabf896f4885feae1b07ee2c3da5929cf8bfa4
diff --git a/phosphor-regulators/schema/config_schema.json b/phosphor-regulators/schema/config_schema.json
index c6ef268..98c692b 100644
--- a/phosphor-regulators/schema/config_schema.json
+++ b/phosphor-regulators/schema/config_schema.json
@@ -164,16 +164,22 @@
"keyword": {"$ref": "#/definitions/keyword" },
- "value": {"$ref": "#/definitions/string_value" }
+ "value": {"$ref": "#/definitions/string_value" },
+
+ "byte_values": {"$ref": "#/definitions/bytes_values" }
},
- "required": ["fru", "keyword", "value"],
+ "required": ["fru", "keyword"],
+ "oneOf": [
+ {"required": ["value"]},
+ {"required": ["byte_values"]}
+ ],
"additionalProperties": false
},
"keyword":
{
"type": "string",
- "enum": ["CCIN", "Manufacturer", "Model", "PartNumber"]
+ "enum": ["CCIN", "Manufacturer", "Model", "PartNumber", "HW"]
},
"string_value":