Bug 1107517

Summary: engine cannot parse complex response string returned from OAT server
Product: [oVirt] ovirt-engine Reporter: Emily <lijuan.zhang>
Component: GeneralAssignee: Emily <lijuan.zhang>
Status: CLOSED CURRENTRELEASE QA Contact: Pavel Stehlik <pstehlik>
Severity: medium Docs Contact:
Priority: unspecified    
Version: ---CC: bugs, dfediuck, gklein, rbalakri, yeylon
Target Milestone: ovirt-3.6.0-rcFlags: ylavi: ovirt-3.6.0?
ylavi: planning_ack+
rule-engine: devel_ack+
ylavi: testing_ack?
Target Release: 3.6.0   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-10 09:02:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: SLA RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Emily 2014-06-10 06:30:47 UTC
Description of problem:
Engine cannot parse complex data structure returning from OAT server, for example, it just parse the below simple string and must keep strict consistency. If it encounters following complex string, and it can not parse correctly the status of the host. If OAT server returns the below complex string, I will get an error saying:

"Host ovirt-node1 was set to non-operational. Host is not trusted by the attestation service."

and then the host is marked as non operational which is actually trusted.

simple: {"hosts":[{"host_name":"ovirt-node1","trust_lvl":"trusted","vtime":"2014-03-27T19:07:24-04:00"}]}

complex: {"hosts":[{"analysis_details":[{"name":[{"name":"VALIDATE_PCR","output":"PCR #0 mismatch. PCR #8 mismatch. PCR #5 mismatch.","result":"false","status":"ANALYSIS_COMPLETED"}, {"name":"COMPARE_REPORT","output":"","result":"true","status":"ANALYSIS_COMPLETED"}],"output":"PCR #0 mismatch. PCR #8 mismatch. PCR #5 mismatch.","result":"false","status":"ANALYSIS_COMPLETED"}, {"name":"COMPARE_REPORT","output":"","result":"true","status":"ANALYSIS_COMPLETED"}],"host_name":"ovirt-node1","report_is_valid":"true","trust_lvl":"untrusted","url":"
http://ovirt-node1/OAT/report.php?id=12", "vtime":"2014-03-26T02:37:28+08:00"}]}

Version-Release number of selected component (if applicable):


How reproducible:
100%

Steps to Reproduce:
1. Create a trusted cluster
2. Create a host in trusted cluster
3.

Actual results:
The host is always untrusted, set to non-operational even though this host is actually trusted.

Expected results:
The host can be up.

Additional info:

Comment 1 Pavel Stehlik 2016-02-10 09:02:11 UTC
Closing older BZs, if still happened, please reopen.