History log of /openbmc/entity-manager/schemas/global.json (Results 1 – 25 of 38)
Revision Date Author Comments
# 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 ...


12