summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Tanous <edtanous@google.com>2022-09-27 05:53:36 +0300
committerEd Tanous <ed@tanous.net>2023-02-08 02:15:15 +0300
commit5b5574ace856c7f787528ab8f5e5352a90f2a6cb (patch)
treeaedf147dd8d61ce7f201526181525bc4ad212e6a
parent353163e99b8394e98adae000c72abc0578ec1459 (diff)
downloadbmcweb-5b5574ace856c7f787528ab8f5e5352a90f2a6cb.tar.xz
Fix OemAccountService schema
This schema as-written broke a bunch of Redfish specification rules for schemas, naming and other things. This commit starts to fix them. It can be used as a starting point for fixing the existing schemas. This working through testing. Tested: OpenBMCAccountService_v1.xml now passes the redfish odata schema validator. Signed-off-by: Ed Tanous <edtanous@google.com> Change-Id: Id991794344b8b7d36af3c44bba7214bf025deec8
-rw-r--r--redfish-core/lib/account_service.hpp2
-rwxr-xr-xscripts/update_schemas.py8
-rw-r--r--static/redfish/v1/schema/OpenBMCAccountService_v1.xml (renamed from static/redfish/v1/schema/OemAccountService_v1.xml)34
3 files changed, 25 insertions, 19 deletions
diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index f24fef5b71..9a931ad93a 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -1311,7 +1311,7 @@ inline void
json["Accounts"]["@odata.id"] = "/redfish/v1/AccountService/Accounts";
json["Roles"]["@odata.id"] = "/redfish/v1/AccountService/Roles";
json["Oem"]["OpenBMC"]["@odata.type"] =
- "#OemAccountService.v1_0_0.AccountService";
+ "#OpenBMCAccountService.v1_0_0.AccountService";
json["Oem"]["OpenBMC"]["@odata.id"] =
"/redfish/v1/AccountService#/Oem/OpenBMC";
json["Oem"]["OpenBMC"]["AuthMethods"]["BasicAuth"] =
diff --git a/scripts/update_schemas.py b/scripts/update_schemas.py
index edc583abe4..7d6e7680a2 100755
--- a/scripts/update_schemas.py
+++ b/scripts/update_schemas.py
@@ -194,12 +194,12 @@ class SchemaVersion:
# Remove the old files
-skip_prefixes = "Oem"
+skip_prefixes = ["Oem", "OpenBMC"]
if os.path.exists(schema_path):
files = [
os.path.join(schema_path, f)
for f in os.listdir(schema_path)
- if not f.startswith(skip_prefixes)
+ if not any([f.startswith(prefix) for prefix in skip_prefixes])
]
for f in files:
os.remove(f)
@@ -207,7 +207,7 @@ if os.path.exists(json_schema_path):
files = [
os.path.join(json_schema_path, f)
for f in os.listdir(json_schema_path)
- if not f.startswith(skip_prefixes)
+ if not any([f.startswith(prefix) for prefix in skip_prefixes])
]
for f in files:
if os.path.isfile(f):
@@ -392,7 +392,7 @@ if os.path.exists(schema_path):
files = [
os.path.join(schema_path, f)
for f in os.listdir(schema_path)
- if not f.startswith(skip_prefixes)
+ if not any([f.startswith(prefix) for prefix in skip_prefixes])
]
for filename in files:
# filename will include the absolute path
diff --git a/static/redfish/v1/schema/OemAccountService_v1.xml b/static/redfish/v1/schema/OpenBMCAccountService_v1.xml
index 7d58b2baa0..66b00bbc32 100644
--- a/static/redfish/v1/schema/OemAccountService_v1.xml
+++ b/static/redfish/v1/schema/OpenBMCAccountService_v1.xml
@@ -17,15 +17,30 @@
<edmx:DataServices>
- <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OemAccountService">
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OpenBMCAccountService">
<Annotation Term="Redfish.OwningEntity" String="OpenBMC"/>
+ <Annotation Term="OData.Description" String="OpenBMC extensions to the standard account service."/>
+ <Annotation Term="Redfish.Uris">
+ <Collection>
+ <String>/redfish/v1/AccountService#/OpenBMCAccountService</String>
+ </Collection>
+ </Annotation>
</Schema>
- <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OemAccountService.v1_0_0">
+ <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OpenBMCAccountService.v1_0_0">
<Annotation Term="Redfish.OwningEntity" String="OpenBMC"/>
- <Annotation Term="Redfish.Release" String="1.0"/>
- <ComplexType Name="AuthMethodsConfig" BaseType="Resource.OemObject">
+ <ComplexType Name="AccountService" BaseType="Resource.OemObject">
+ <Annotation Term="OData.Description" String="OpenBMC OEM Extension for AccountService."/>
+ <Annotation Term="OData.LongDescription" String="OpenBMC OEM Extension for AccountService providing info about authentication methods."/>
+
+ <Property Name="AuthMethods" Type="OpenBMCAccountService.v1_0_0.AuthMethodsConfig">
+ <Annotation Term="OData.Description" String="Authorization Methods configuration."/>
+ <Annotation Term="OData.LongDescription" String="Configuration describing which auth methods are enabled."/>
+ </Property>
+ </ComplexType>
+
+ <ComplexType Name="AuthMethodsConfig">
<Annotation Term="OData.AdditionalProperties" Bool="false"/>
<Annotation Term="OData.Description" String="Authorization Methods configuration."/>
<Annotation Term="OData.LongDescription" String="Configuration describing which auth methods are enabled."/>
@@ -61,17 +76,8 @@
</Property>
</ComplexType>
- <!--Base entity type for array members-->
- <EntityType Name="AccountService" BaseType="Resource.OemObject" Abstract="true">
- <Annotation Term="OData.Description" String="OEM Extension for AccountService"/>
- <Annotation Term="OData.LongDescription" String="OEM Extension for AccountService providing info about TLS Auth."/>
-
- <Property Name="AuthMethods" Type="OemAccountService.v1_0_0.AuthMethodsConfig">
- <Annotation Term="OData.Description" String="Authorization Methods configuration."/>
- <Annotation Term="OData.LongDescription" String="Configuration describing which auth methods are enabled."/>
- </Property>
- </EntityType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
+