| commit | 9c929bea78857633f2b71b356abf4aa4b1ac56d2 | [log] [tgz] | 
|---|---|---|
| author | Shantappa Teekappanavar <sbteeks@yahoo.com> | Thu Dec 16 19:02:52 2021 -0600 | 
| committer | Ed Tanous <ed@tanous.net> | Wed Jan 26 18:27:54 2022 +0000 | 
| tree | 33c1dc9af157337eebf9589900a3406d777d4c55 | |
| parent | 71b861b64bde714410c4fe94f1628a70cb6b17aa [diff] | 
Implement Cable schema
This commit implements Cable and Cable collection schema
on bmcweb.
Testing:
Validator:
@odata.id       /redfish/v1/Cables      odata   Exists  PASS
@odata.type     #CableCollection.CableCollection        odata   Exists
PASS
Members@odata.count     2       odata   Exists  PASS
Members Array (size: 2) links: Cable    Yes     ...
Members[0]      Link: /redfish/v1/Cables/dp0_cable0     link: Cable
Yes     PASS
Members[1]      Link: /redfish/v1/Cables/dp0_cable1     link: Cable
Yes     PASS
Description     Collection of Cable Entries     none    Yes     PASS
Name    Cable Collection        none    Yes     PASS
Oem     -       Resource.Oem    No      Optional
Property Name   Value   Type    Exists  Result
@odata.id       /redfish/v1/Cables/dp0_cable0   odata   Exists  PASS
@odata.type     #Cable.v1_0_0.Cable     odata   Exists  PASS
CableType               string  Yes     PASS
LengthMeters    -       number  No      Optional
Id      dp0_cable0      none    Yes     PASS
Name    Cable           none    Yes     PASS
Property Name   Value   Type    Exists  Result
@odata.id       /redfish/v1/Cables/dp0_cable1   odata   Exists  PASS
@odata.type     #Cable.v1_0_0.Cable     odata   Exists  PASS
CableType               string  Yes     PASS
LengthMeters    -       number  No      Optional
Id      dp0_cable1      none    Yes     PASS
Name    Cable           none    Yes     PASS
Note: Removed some of the fields that are optional to reduce commit msg
Tesing with Curl commands:
$ curl -k -X GET https://{$bmc}/redfish/v1/Cables
{
  "@odata.id": "/redfish/v1/Cables",
  "@odata.type": "#CableCollection.CableCollection",
  "Description": "Collection of Cable Entries",
  "Members": [
    {
      "@odata.id": "/redfish/v1/Cables/dp0_cable0"
    },
    {
      "@odata.id": "/redfish/v1/Cables/dp0_cable1"
    }
  ],
  "Members@odata.count": 2,
  "Name": "Cable Collection"
}
$ curl -k -X GET https://{$bmc}/redfish/v1/Cables/dp0_cable0
{
  "@odata.id": "/redfish/v1/Cables/dp0_cable0",
  "@odata.type": "#Cable.v1_0_0.Cable",
  "CableType": "",
  "Id": "dp0_cable0",
  "Name": "Cable"
}
$ curl -k -X GET https://{$bmc}/redfish/v1/Cables/dp0_cable1
{
  "@odata.id": "/redfish/v1/Cables/dp0_cable1",
  "@odata.type": "#Cable.v1_0_0.Cable",
  "CableType": "",
  "Id": "dp0_cable1",
  "Name": "Cable"
}
Set Length property to 1.5 meters using busctl, and check the properties
busctl set-property xyz.openbmc_project.Inventory.Manager \
 /xyz/openbmc_project/inventory/cables/dp0_cable0 \
 xyz.openbmc_project.Inventory.Item.Cable Length d 1.5
$ curl -k -X GET https://{$bmc}/redfish/v1/Cables/dp0_cable0
{
  "@odata.id": "/redfish/v1/Cables/dp0_cable0",
  "@odata.type": "#Cable.v1_0_0.Cable",
  "CableType": "",
  "Id": "dp0_cable0",
  "LengthMeters": 1.5,
  "Name": "Cable"
}
Signed-off-by: Shantappa Teekappanavar <sbteeks@yahoo.com>
Change-Id: I832ff1c1053f4d8100d04a42cc8046a61e8c1613
This component attempts to be a "do everything" embedded webserver for openbmc.
At this time, the webserver implements a few interfaces:
BMCWeb is configured by setting -D flags that correspond to options in bmcweb/meson_options.txt and then compiling.  For example, meson <builddir> -Dkvm=disabled ... followed by ninja in build directory. The option names become C++ preprocessor symbols that control which code is compiled into the program.
meson builddir ninja -C builddir
meson builddir -Dbuildtype=minsize -Db_lto=true -Dtests=disabled ninja -C buildir
If any of the dependencies are not found on the host system during configuration, meson automatically gets them via its wrap dependencies mentioned in bmcweb/subprojects.
meson builddir -Dwrap_mode=nofallback ninja -C builddir
meson builddir -Dbuildtype=debug ninja -C builddir
meson builddir -Db_coverage=true -Dtests=enabled ninja coverage -C builddir test
When BMCWeb starts running, it reads persistent configuration data (such as UUID and session data) from a local file. If this is not usable, it generates a new configuration.
When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server.  The keys are generated by the secp384r1 algorithm.  The certificate
C=US, O=OpenBMC, CN=testhost,SHA-256 algorithm.