Closed xuwh6 closed 8 months ago
Can you provide the output of /redfish/v1/? Can you also try with --debugging
added to the test and provide the log file?
output of /redfish/v1: output of redfish_v1.txt
the log file with "--debugging": ConformanceLog_09_25_2023_140150.txt
Thanks!
Unfortunately that's not giving me much more detail... Based on your earlier trace, I'm wondering if it's getting stuck in a loop trying to parse the OEM schemas...
I'll see if I can make a branch to get more debug information to see what's going on here...
Could you also try with --nooemcheck
added? That should skip OEM testing (and hopefully also skip traversing OEM schema files).
the log file with "--debugging" and "--nooemcheck": ConformanceLog_09_27_2023_100630.txt
It doesn't seem to have changed much.
Any update?
@xuwh6 I just pushed the branch "Fix560-Tool-Stuck" to help trace down where it's getting stuck. Could you please run it and provide the output log file?
the log file use the branch "Fix560-Tool-Stuck" with "--debugging" and "--nooemcheck": ConformanceLog_11_01_2023_144234.txt
@xuwh6 would you be able to provide the schema files "AMIServiceRoot" and "AMIConfigurations"? It's possible "AMIConfigurations" is also part of the same file as AMIServiceRoot. There should be a "SchemaFiles" where the tool places all local copies of the schema files. From the output, it looks like the AMIConfigurations definition is creating a loop; ultimately this would indicate the schema is not defined properly and breaks CSDL schema rules, but if I can get a copy of the file, I can harden the tool to escape from this.
These file is .xml file which are not supported to upload, I change them to .txt. For your reference. AMIServiceRoot: AMIServiceRoot_v1.txt
AMIConfigurations: AMIConfigurations_v1.txt
Thanks; this does confirm the "AMIConfigurations" definition is broken. Line 21 of AMIConfigurations_v1.xml causes a schema definition loop (the type definition is pointing to itself as the parent definition). AMI needs to fix this schema definition, but at least I should be able to add logic to detect this (or other similar cases) to prevent the tool from hanging.
I can run the test with Tag 2.3.3 successfully. ConformanceLog_09_04_2023_102211.txt
But when I run the test with Tag 2.3.4 or master, the test will stop after output these info: *** /redfish/v1/ Attempt 1 of /redfish/v1/ Response Time for GET to /redfish/v1/: 0.11497827991843224 seconds. Schema not found for JobService.JobService Schema not found for StorageSystemCollection.StorageSystemCollection Schema not found for StorageServiceCollection.StorageServiceCollection Schema not found for ActionStatus.v1_0_0.ActionStatus ConformanceLog_09_05_2023_110731.txt
The test was not completed but got stuck here.
Info after KeyboardInterrupt: ^CTraceback (most recent call last): File "RedfishServiceValidator.py", line 11, in
sys.exit(main())
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/RedfishServiceValidator.py", line 249, in main
statuscode, , _ = validate()
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/RedfishServiceValidator.py", line 189, in validate
success, counts, results, xlinks, topobj = validateURITree(currentService, '/redfish/v1/', 'ServiceRoot', expectedJson=jsonData)
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/validateResource.py", line 306, in validateURITree
validateSuccess, counts, results, links, thisobj = validateSingleURI(service, URI, uriName, expectedType, expectedJson, parent)
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/validateResource.py", line 107, in validateSingleURI
redfish_obj = catalog.RedfishObject(redfish_type, 'Object', parent=parent).populate(me['payload']) if redfish_type else None
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 1019, in populate
populated_object.properties = {x: y.populate(sub_payload.get(x, REDFISH_ABSENT)) for x, y in populated_object.properties.items()}
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 1019, in
populated_object.properties = {x: y.populate(sub_payload.get(x, REDFISH_ABSENT)) for x, y in populated_object.properties.items()}
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 1047, in populate
populated_object.properties[add_name] = object.populate(sub_payload.get(add_name, REDFISH_ABSENT))
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 921, in populate
populated_object = RedfishObject(type_obj, populated_object.Name, populated_object.parent).populate(sub_payload, check=check, casted=True)
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 846, in init
self.properties[prop] = RedfishObject(typ, prop, self)
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 842, in init
for prop, typ in redfish_type.getProperties().items():
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 596, in getProperties
for type_obj in self.getTypeTree():
File "/home/xwh/Desktop/Redfish-Service-Validator/redfish_service_validator/catalog.py", line 541, in getTypeTree
type_obj = self.owner.parent_doc.catalog.getSchemaDocByClass(my_type).getTypeInSchemaDoc(my_type)
KeyboardInterrupt
^C