inventory: decorators: add compatible interface
Add a new classification interface for inventory.
Prior to this patch inventory could be typed by class e.g.: dimm, cpu,
system and by model or part number
(xyz.openbmc_project.Inventory.Decorator.Asset).
This patch adds another way to classify inventory; "compatibles" where
compatibles are more granular then class and less granular than model or
part number.
Obviously not all instances of a class of inventory are the same. And
vendors often give the same entities different model/part numbers. This
leaves software without any suitable query identifiers for determining,
or publishing, the relevant (to software) characteristics of the
inventory item.
As a concrete example, consider a data driven application that supports
a number of different power supplies by means of a hardware database.
Futher consider that one power supply vendor releases the same physical
power supply with 5 different model numbers. Instead of requiring the
application to maintain aliases for each model number, implement
xyz.openbmc_project.Inventory.Decorator.Compatible.
Change-Id: If90b5932d58bedc2d82c7c26a486ed23b3d52f1a
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml b/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml
new file mode 100644
index 0000000..1f86b3a
--- /dev/null
+++ b/xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml
@@ -0,0 +1,13 @@
+description: >
+ Inventory component manufacturers can provide different model identifiers
+ (xyz.openbmc_project.Inventory.Decorator.Asset) for their components that
+ don't require different software configurations.
+
+ xyz.openbmc_project.Inventory.Decorator.Compatible can be implemented to
+ add an additional, more generalized dimension of classification to
+ inventory components.
+properties:
+ - name: Names
+ type: array[string]
+ description: >
+ The names that are compatible with the inventory item.