#
d96439a2 |
| 20-Mar-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
schemas: Ease Exposes constraint to "anyOf"
Allow schemas with optional properties to alias without error.
Without this change exposing an `MCTPI2CTarget` _without_ the _optional_ `StaticEndpointID
schemas: Ease Exposes constraint to "anyOf"
Allow schemas with optional properties to alias without error.
Without this change exposing an `MCTPI2CTarget` _without_ the _optional_ `StaticEndpointID` property results in the following validation error:
``` {'Bus': '$bus', 'Exposes': [{'Address': '$address', 'Bus': '$bus', 'Name': 'NVMe $index FRU', 'Type': 'EEPROM'}, {'Address': '0x1d', 'Bus': '$bus', 'Name': 'NVMe MI', 'Type': 'MCTPI2CTarget'}], 'Logging': 'Off', 'Name': 'NVMe $index', 'Probe': "xyz.openbmc_project.FruDevice({'PRODUCT_PART_NUMBER': '^Micron_7450_.*'})", 'Type': 'NVMe', 'xyz.openbmc_project.Inventory.Decorator.Asset': {'Manufacturer': '$PRODUCT_MANUFACTURER', 'Model': '7450', 'PartNumber': '$PRODUCT_PART_NUMBER', 'SerialNumber': '$PRODUCT_SERIAL_NUMBER'}, 'xyz.openbmc_project.Inventory.Item.Chassis': {}} is not valid under any of the given schemas ```
This error is not particularly intuitive to me. However.
Experience shows that specifying the `StaticEndpointID` property on the node in question resolves the issue, but requiring it be specified is not in the spirit of it being an optional property.
Alternatively, reducing the `oneOf` constraint to `anyOf` in the `EMExposesElement` schema also resolves the error, without requiring that `StaticEndpointID` be specified.
The working hypothesis is that an `EMExposesElement` node can validate under the legacy schema with the same the set of properties specified by the `MCTPI2CTarget` schema if the node is specified without `StaticEndpointID`. The node effectively aliases to multiple schemas, which violates the `oneOf` constraint.
Perhaps a longer-term solution is to more rigorously specify valid device schemas for use in board configs so that we can eventually remove the legacy schema. A possible source of inspiration is the devicetree org's use of jsonschema for specifying and validating devicetrees:
https://github.com/devicetree-org/dt-schema/
Change-Id: Iabd445365637f8c0ce58d4a6bafb654fe17caf2d Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
#
ca144abd |
| 14-Apr-2024 |
Chau Ly <chaul@amperecomputing.com> |
schemas: Add Inventory.Item.NetworkInterface
For phosphor-networkd's sync-mac feature [1] to work, phosphor-networkd must be able to find an object with xyz.openbmc_project.Inventory.Item.NetworkInt
schemas: Add Inventory.Item.NetworkInterface
For phosphor-networkd's sync-mac feature [1] to work, phosphor-networkd must be able to find an object with xyz.openbmc_project.Inventory.Item.NetworkInterface interface.
This commit adds the property `MACAddress` under the interface `xyz.openbmc_project.Inventory.Item.NetworkInterface` to the openbmc-dbus.json schema, and adds the interface to under "EMConfig"/"properties" in global.json to expose the Board's MAC Address to D-Bus.
Tested: Add below config to Mt.Mitchell BMC board's EM configuration: "xyz.openbmc_project.Inventory.Item.NetworkInterface": { "MACAddress": "$BOARD_INFO_AM1" } => Successfully pass CI build
$ busctl get-property xyz.openbmc_project.EntityManager \ /xyz/openbmc_project/inventory/system/board/Mt_Mitchell_BMC \ xyz.openbmc_project.Inventory.Item.NetworkInterface MACAddress s "xx:xx:xx:xx:xx:xx"
=> phosphor-network-manager manages to get MAC address from inventory on first boot, or when FORCE_SYNC_MAC_FROM_INVENTORY is set
$ journalctl | grep -i network ... phosphor-network-manager: Check VPD for MAC: Force sync enabled phosphor-network-manager: Registering the Inventory Signals Matcher phosphor-network-manager: Setting MAC xx:xx:xx:xx:xx:xx on interface eth0 ...
$ busctl get-property xyz.openbmc_project.Network \ /xyz/openbmc_project/network/eth0 \ xyz.openbmc_project.Network.MACAddress MACAddress s "xx:xx:xx:xx:xx:xx"
[1]: https://github.com/openbmc/phosphor-networkd/commit/cc099a855ab517deb563ceb6821a8a414362132e
Signed-off-by: Chau Ly <chaul@amperecomputing.com> Change-Id: I2b9ea2a250e3b98d811154955e09130a00682baf
show more ...
|
#
b9dbb8c0 |
| 28-Mar-2024 |
Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com> |
schemas: Add Decorator.Revision interface
This adds property `Version` under `xyz.openbmc_project.Inventory. Decorator.Revision` as described in [1]
[1] https://github.com/openbmc/phosphor-dbus-int
schemas: Add Decorator.Revision interface
This adds property `Version` under `xyz.openbmc_project.Inventory. Decorator.Revision` as described in [1]
[1] https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Inventory/Decorator/Revision.interface.yaml
Change-Id: Icd28f56e2dfccd824cee3ff14b6cbbd0ef17303f Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
show more ...
|
#
bb8aa370 |
| 19-Mar-2024 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
schemas: Descriptions must be strings
``` $ python3 -c 'import json; import jsonschema; schema = json.load(open("schemas/global.json")); cls = jsonschema.validators.validator_for(schema); cls.check_
schemas: Descriptions must be strings
``` $ python3 -c 'import json; import jsonschema; schema = json.load(open("schemas/global.json")); cls = jsonschema.validators.validator_for(schema); cls.check_schema(schema)' Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/lib/python3/dist-packages/jsonschema/validators.py", line 204, in check_schema raise exceptions.SchemaError.create_from(error) jsonschema.exceptions.SchemaError: ['The schema for an entity manager configuration file. An entity ', 'mananger configuration file can consist of a single object, or an ', 'array of objects. Objects must be of type EMConfig.'] is not of type 'string'
Failed validating 'type' in metaschema['properties']['description']: {'type': 'string'}
On schema['description']: ['The schema for an entity manager configuration file. An entity ', 'mananger configuration file can consist of a single object, or an ', 'array of objects. Objects must be of type EMConfig.'] ```
Change-Id: I2b8102e7d6047c8a7e624e182465065268fb8ad9 Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
show more ...
|
#
ab725317 |
| 20-Feb-2024 |
Hieu Huynh <hieuh@os.amperecomputing.com> |
schemas: Add Common.UUID interface
This adds UUID to under xyz.openbmc_project.Common in openbmc-dbus.json which property UUID as described in [1]. This also adds xyz.openbmc_project.Common.UUID to
schemas: Add Common.UUID interface
This adds UUID to under xyz.openbmc_project.Common in openbmc-dbus.json which property UUID as described in [1]. This also adds xyz.openbmc_project.Common.UUID to under EMConfig in global.json so that the interface can be configured in the board's Entity Manager configuration file.
[1] https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Common/UUID.interface.yaml
Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: I62492928c2268c88754b4946d307022ba63e4c01
show more ...
|
#
ec42f45b |
| 15-Feb-2024 |
Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com> |
schemas: Add Decorator.Slot interface
This commit adds `Decorator.Slot` in openbmc-dbus.json with property `SlotNumber` as described in https://github.com/openbmc/phosphor-dbus-interfaces/blob/maste
schemas: Add Decorator.Slot interface
This commit adds `Decorator.Slot` in openbmc-dbus.json with property `SlotNumber` as described in https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml\ /xyz/openbmc_project/Inventory/Decorator/Slot.interface.yaml.
This commit also adds `Decorator.Slot` to EMConfig so that the interface can be configured in Entity Manager configuration file.
Change-Id: I098dc476c224fc7fa77c2969d4d1d31f4d0f7af6 Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
show more ...
|
#
61854782 |
| 29-Nov-2023 |
Chau Ly <chaul@amperecomputing.com> |
schemas: Add Decorator.Compatible interface
This commit adds Compatible to under xyz.openbmc_project.Decorator in openbmc-dbus.json with property Names as described in https://github.com/openbmc/pho
schemas: Add Decorator.Compatible interface
This commit adds Compatible to under xyz.openbmc_project.Decorator in openbmc-dbus.json with property Names as described in https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/\ xyz/openbmc_project/Inventory/Decorator/Compatible.interface.yaml. This commit also adds xyz.openbmc_project.Inventory.Decorator.Compatible to under EMConfig in global.json so that the interface can be configured in the board's Entity Manager configuration file. The usage of this interface was mentioned in https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/\ xyz/openbmc_project/Software/README.md#compatibility.
Signed-off-by: Chau Ly <chaul@amperecomputing.com> Change-Id: I447dacb3ffb8dc0dede5d3b17e58cbe06804e214
show more ...
|
#
04b0b013 |
| 14-Dec-2021 |
Chris Cain <cjcain@us.ibm.com> |
schema: ibm: add default power mode props. schema
Add PowerModeProperties schema to define the factory default power mode properties of a system: - Power Mode - Idle Power Saver Parameters
All of t
schema: ibm: add default power mode props. schema
Add PowerModeProperties schema to define the factory default power mode properties of a system: - Power Mode - Idle Power Saver Parameters
All of these parameters are part of the version 2021.2 Redfish Schema Supplement under the ComputerSystem 1.16.0 schema: For details on the values and descriptions, see the PowerMode and IdlePowerSaver schemas in the Redfish documentation: https://www.dmtf.org/sites/default/files/standards/documents/DSP0268_2021.2.pdf
These are the factory default values as defined by the system architect. All of these parameters are system-wide parameters and are used to define the operation of that system as it relates to power.
These are the values will be used the first time a system is powered on. They can also be used if the customer wants to restore these settings to their factory defaults.
Signed-off-by: Chris Cain <cjcain@us.ibm.com> Change-Id: Ie2f3ca74db0c898c6a4f3beed29eda674dfcf5c6
show more ...
|
#
48edf9a9 |
| 21-Feb-2023 |
Andrew Geissler <geissonator@yahoo.com> |
aggregation: add satellite controller schema
This schema will be utilized to add remote satellite controllers to a users system.
bmcweb already has extensive support for utilizing this object. More
aggregation: add satellite controller schema
This schema will be utilized to add remote satellite controllers to a users system.
bmcweb already has extensive support for utilizing this object. More information can be found in the following: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/57925
Tested: - Confirmed a system utilizing new schema worked as expected
Change-Id: Id6172d4f5d2243b95331c5d9076e809ef21de219 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
show more ...
|
#
e5c473f7 |
| 27-Jan-2023 |
Kumar Thangavel <thangavel.k@hcl.com> |
Add FieldReplaceable field in twinlake.json
Added xyz.openbmc_project.Inventory.Decorator.Replaceable interface in twinlake.json configuration file and FieldReplaceable boolean field. This will disp
Add FieldReplaceable field in twinlake.json
Added xyz.openbmc_project.Inventory.Decorator.Replaceable interface in twinlake.json configuration file and FieldReplaceable boolean field. This will display FieldReplaceable in Redfish under chassis path.
Tested: Tested and verified in Facebook YosemiteV2 platform.
Change-Id: Idae9f16d14ef1938a0ec42f80d62a660e0844096 Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com>
show more ...
|
#
fa8ee87e |
| 07-Dec-2022 |
Patrick Williams <patrick@stwcx.xyz> |
format: reformat with latest openbmc-build-scripts
Run all the latest formatters from openbmc-build-scripts. Disable prettier on the configurations subdirectory because these are script-formatted a
format: reformat with latest openbmc-build-scripts
Run all the latest formatters from openbmc-build-scripts. Disable prettier on the configurations subdirectory because these are script-formatted already with the repo-local `format-code` extension.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ifa4f2ec6688d60fde2a5f42efc96b6046e9be642
show more ...
|
#
7d05ee59 |
| 26-May-2022 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schemas: use lower_snake_case for filenames
To be consistent with lower_snake_case source code filenames, use lower_snake_case for schema file names as well.
Signed-off-by: Brad Bishop <bradleyb@fu
schemas: use lower_snake_case for filenames
To be consistent with lower_snake_case source code filenames, use lower_snake_case for schema file names as well.
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> Change-Id: Id5ddeb4152a147229d522ddc0a1376875bfdfc78
show more ...
|
#
e23af564 |
| 29-Jul-2021 |
Rashmica Gupta <rashmica.g@gmail.com> |
schema: Add virtual sensor schema This schema allows entity manager to define virtual sensors that are used by the virtual-sensor daemon from the phosphor-virtual-sensor repository.
schema: Add virtual sensor schema This schema allows entity manager to define virtual sensors that are used by the virtual-sensor daemon from the phosphor-virtual-sensor repository. Currently only a modified median of sensor values is accepted by phosphor-virtual-sensor. Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com> Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I510dbcd843f703073a96ad33cfe748d0dcd21e64
show more ...
|
#
648ae63b |
| 09-Oct-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: ibm: add compatible system schema Add an IBMCompatibleSystem schema for expressing system level compatibility where a system is roughly defined as the combination of a chassi
schema: ibm: add compatible system schema Add an IBMCompatibleSystem schema for expressing system level compatibility where a system is roughly defined as the combination of a chassis and a mainboard. The strings should be used by applications to match entities with entries or configuration in an external hardware database. Strings appear in the list from most specific to most general. This allows an entity to express compatibility with a family of similar systems, in turn allowing an application to match a variety of systems with a single IBMCompatibleSystem entry. The recommended entry format is 'manufacturer,model' where the manufacturer is a string describing the name of the manufacturer and model specifies the model number. Change-Id: Ib53234cf1064a1f68334f606361cac8a09ff55ab Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
4afe7085 |
| 01-Oct-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schemas: Add schema for IBMCFFPS IBMCFFPS, or International Business Machines Common Form Factor Power Supply is an IBM power supply used on a wide range of IBM systems. The sch
schemas: Add schema for IBMCFFPS IBMCFFPS, or International Business Machines Common Form Factor Power Supply is an IBM power supply used on a wide range of IBM systems. The schema associates an I2C endpoint and a GPIO. In the entity-manager detector-configuration-reactor architecture, the daemon supporting the IBM CFFPS is both a detector and reactor. It probes the endpoints described by this schema (reactor) and publish the CFFPS FRU information (detector). Change-Id: I9beaf1ca08701805998c5516d17e47ee88b53028 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
dc10828f |
| 24-Sep-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schemas: Intel Fan Connector Add a proper subschema for IntelFanConnector. Remove status from legacy json because IntelFanConnector was the only user. Pwm and Tachs have other user
schemas: Intel Fan Connector Add a proper subschema for IntelFanConnector. Remove status from legacy json because IntelFanConnector was the only user. Pwm and Tachs have other users so we can't remove those until those classes have proper subschema. Change-Id: Ic4f330fbcfe6ff711ff9aef3fd65d138b145303a Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
4fa1d399 |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: use pid, zone, stepwise schemas These schemas were defined, but not referenced anywhere. Use them, and remove the duplicated properties from the legacy aggregate schema.
schema: use pid, zone, stepwise schemas These schemas were defined, but not referenced anywhere. Use them, and remove the duplicated properties from the legacy aggregate schema. Change-Id: I75ba8099059127cfa5c2d6492908333ca5c3bf67 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
ada40c59 |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: introduce element Introduce a new sub schema "EMExposesElement" that enables stricter validation of Exposes entry elements. The existing aggregate subschema checks element p
schema: introduce element Introduce a new sub schema "EMExposesElement" that enables stricter validation of Exposes entry elements. The existing aggregate subschema checks element properties but cannot check that specific combinations of properties are allowed in the same element. Require that each element have at a minimum a Type and Name property. Add documentation that describes an overview and best practices when adding new schema. Change-Id: If0a11ac9acde8e574070cccd9bf8d017b6c8e3b1 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
2189d612 |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: add documentation Begin the process of documenting the EM configuration schema, starting with the top level elements. Change-Id: Ie026c6cf51f980fb0ca65342ee75e8854de7439
schema: add documentation Begin the process of documenting the EM configuration schema, starting with the top level elements. Change-Id: Ie026c6cf51f980fb0ca65342ee75e8854de74395 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
45d42a5b |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: require type Require the type property on every EM configuration. This is required for EM to function correctly, so configurations with the type missing suggests these confi
schema: require type Require the type property on every EM configuration. This is required for EM to function correctly, so configurations with the type missing suggests these configurations are not used and candidates for dropping from the tree. Change-Id: I72bf9eb2fd8e7a634a8a5aab45fe94da560fa9fc Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
9453a68f |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: top: add missing EMConfig properties Set additionalProperties false on the EMConfig schema. This catches a handful of top level properties in configurations that aren't document
schema: top: add missing EMConfig properties Set additionalProperties false on the EMConfig schema. This catches a handful of top level properties in configurations that aren't documented or checked such as Bus and Logging. Further, a couple of unchecked dbus interfaces are found in configurations. Add those as well. Change-Id: Ie93a89a70e5aeee8d34b21c573866522eb3f5fd4 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
8e659b5b |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: Add EMConfig Entity Manager configuration documents can contain either a single configuration (an object) or an array of that same object. Introduce a new definition "EMConf
schema: Add EMConfig Entity Manager configuration documents can contain either a single configuration (an object) or an array of that same object. Introduce a new definition "EMConfig" which makes this obvious. Change-Id: I3189743d218f8ae7a00a70c4f2295dcc449997ef Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
b980991b |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: factor out dbus Move schema that validate OpenBMC DBus interfaces to a single file to facilitate re-use and improve organization. Perhaps this file could be generated from t
schema: factor out dbus Move schema that validate OpenBMC DBus interfaces to a single file to facilitate re-use and improve organization. Perhaps this file could be generated from the canonical DBus documentation for OpenBMC. Change-Id: If02cbf1b646d39b6e71f4c6e595d1992bc71ef92 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
66665886 |
| 07-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: factor out properties into legacy.json The current Exposes element schema describes an object composed of arbitrary properties from a list. The list of allowed properties is
schema: factor out properties into legacy.json The current Exposes element schema describes an object composed of arbitrary properties from a list. The list of allowed properties is duplicated; there are already miscompares between the two - so factor the list out, move it to a common place and reference the common list. Further, schemas composed of arbitrary properties are too relaxed - more descriptive schemas that restrict elements to better defined types is conceiveable, so call the existing property list an "Aggregate" to highlight its fuzzy nature, and move it to an isolated schema document so we can add documentation that discourages adding new properties to the Aggregate schema. Change-Id: I97df88e0a40fd6fdf1d53b69e2855d31076fa09d Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
64d7cecc |
| 01-May-2020 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
schema: schema attribute tweak From the json-schema website: The possibility to declare $schema without specific version (http://json-schema.org/schema#) was deprecated after Dra
schema: schema attribute tweak From the json-schema website: The possibility to declare $schema without specific version (http://json-schema.org/schema#) was deprecated after Draft 4 and should no longer be used. Set the version to draft-07 as not all validators support 2019-09 yet and no features from 2019-09 are required. For additional reading: https://json-schema.org/understanding-json-schema/reference/schema.html#the-schema-keyword Change-Id: If88639d6db4e67088660a928a33881fd25cc6cd3 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|