Emily Zhang has uploaded a new change for review.

Change subject: engine:Trusted Compute Pools - Open Attestation integration 
with oVirt engine proposal
......................................................................

engine:Trusted Compute Pools - Open Attestation integration with oVirt engine 
proposal

Detailed description: http://wiki.ovirt.org/Trusted_compute_pools

Fix parser function to parse complex response string returned from OAT server 
in AttestationService.

Change-Id: I2f541b004ba383a3098cf7fbfca7a000b11b750f
Signed-off-by: Emily <lijuan.zh...@intel.com>
Signed-off-by: Jimmy <gang....@intel.com>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/attestation/AttestationService.java
1 file changed, 20 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/26381/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/attestation/AttestationService.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/attestation/AttestationService.java
index bcaeba3..d1a1c95 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/attestation/AttestationService.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/attestation/AttestationService.java
@@ -121,38 +121,41 @@
         List<AttestationValue> values = new ArrayList<AttestationValue>();
         JsonParser jParser = jfactory.createJsonParser(str);
         try {
-            jParser.nextToken();
+            jParser.nextToken(); //START_OBJECT
             while (jParser.nextToken() != JsonToken.END_OBJECT) {
                 if (jParser.getCurrentName().equalsIgnoreCase(HEADER_HOSTS)) {
-                    while (jParser.nextToken() != JsonToken.END_ARRAY
-                            && jParser.getCurrentToken() != 
JsonToken.END_OBJECT) {
-                        AttestationValue value = new AttestationValue();
-                        if (jParser.getCurrentName().equalsIgnoreCase(
-                                HEADER_HOST_NAME)) {
+                    jParser.nextToken(); //START_ARRAY
+                    jParser.nextToken(); //START_OBJECT
+                    jParser.nextToken(); //FIELD_NAME
+                    AttestationValue value = new AttestationValue();
+                    while (jParser.getCurrentToken() != JsonToken.END_ARRAY) {
+                        String fieldname = jParser.getCurrentName();
+                        if (fieldname.equalsIgnoreCase(HEADER_HOST_NAME)) {
                             jParser.nextToken();
                             value.setHostName(jParser.getText());
-                            jParser.nextToken();
-                        }
-                        if (jParser.getCurrentName().equalsIgnoreCase(
-                                HEADER_RESULT)) {
+                        } else if (fieldname.equalsIgnoreCase(HEADER_RESULT)) {
                             jParser.nextToken();
                             value.setTrustLevel(AttestationResultEnum
                                     .valueOf(jParser.getText().toUpperCase()));
+                        } else if (fieldname.equalsIgnoreCase(HEADER_VTIME)) {
                             jParser.nextToken();
+                        } else if (!jParser.nextToken().isScalarValue()) {
+                            jParser.skipChildren();
                         }
-                        if (jParser.getCurrentName().equalsIgnoreCase(
-                                HEADER_VTIME)) {
-                            jParser.nextToken();
-                            jParser.nextToken();
-                        }
-                        if (value.getHostName() != null) {
+
+                        if (jParser.nextToken() == JsonToken.END_OBJECT) {
                             log.debug("host_name:" + value.getHostName()
                                     + ", trustLevel:" + value.getTrustLevel());
                             values.add(value);
+                            value = new AttestationValue();
+                            if (jParser.nextToken() == JsonToken.START_OBJECT) 
{
+                                jParser.nextToken(); //FIELD_NAME
+                            }
                         }
-                        jParser.nextToken();
                     }
                     break;
+                } else if (!jParser.nextToken().isScalarValue()) {
+                    jParser.skipChildren();
                 }
             }
         } finally {


-- 
To view, visit http://gerrit.ovirt.org/26381
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2f541b004ba383a3098cf7fbfca7a000b11b750f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Emily Zhang <lijuan.zh...@intel.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to