Browse Source

HPCC-17455 Result monitoring demo feature

Signed-off-by: Anthony Fishbeck <anthony.fishbeck@lexisnexis.com>
Anthony Fishbeck 8 năm trước cách đây
mục cha
commit
41f6b4288b
2 tập tin đã thay đổi với 39 bổ sung1 xóa
  1. 24 1
      esp/xslt/esdl2monitor.xslt
  2. 15 0
      tools/esdlcmd/esdlcmd_monitor.cpp

+ 24 - 1
esp/xslt/esdl2monitor.xslt

@@ -196,7 +196,7 @@ END;
   unsigned2 serviceTimeout := 1000 : stored('QueryTimeoutSecs', FORMAT(SEQUENCE(9)));
   unsigned1 serviceRetries := 3 : stored('QueryRetries', FORMAT(SEQUENCE(10)));
 
-<xsl:if test="$diffaction='Run'">
+<xsl:if test="$diffaction='Run' or $diffaction='Demo'">
   string monitorIdIn := '' : stored('MonitorId', FORMAT(SEQUENCE(9)));
 </xsl:if>
   requestIn := DATASET([], the_requestLayout) : STORED ('<xsl:value-of select="$requestType"/>', FEW, FORMAT(FIELDWIDTH(100),FIELDHEIGHT(30), sequence(100)));
@@ -341,6 +341,29 @@ END;
   executedAction := RunMonitor(monitorIdIn, requestIn).Result();
   updateMonitor(DATASET([{executedAction.id, executedAction.responseXML}], monitorStoreRec));
   </xsl:when>
+  <xsl:when test="$diffaction='Demo'">
+
+DemoMonitor (string id, ROW(the_responseLayout) changedRow) := MODULE
+  SHARED monitorId := id;
+  SHARED monitorStore := getStoredMonitor(id);
+
+  SHARED oldResponse := FROMXML (the_responseLayout, monitorStore.result);
+
+  SHARED diff_result := the_differenceModule(false, '').AsRecord(changedRow, oldResponse);
+
+  EXPORT MonitorResultRec BuildMonitor() :=TRANSFORM
+    SELF.id := monitorId;
+    SELF.report := diff_result;
+  END;
+  EXPORT Result () := FUNCTION
+    RETURN ROW(BuildMonitor());
+  END;
+END;
+
+  STRING changedXML := '' : STORED ('changed', FORMAT(FIELDWIDTH(100), FIELDHEIGHT(30), sequence(1002)));
+  changedRow := FROMXML (the_responseLayout, changedXML);
+  executedAction := DemoMonitor(monitorIdIn, changedRow).Result();
+  </xsl:when>
 </xsl:choose>
 
   output(executedAction.id, NAMED('MonitorId'));

+ 15 - 0
tools/esdlcmd/esdlcmd_monitor.cpp

@@ -1085,6 +1085,21 @@ public:
         filename.setf("MonitorESP_run_%s.ecl", optMethod.str());
         saveAsFile(".", filename, ecl);
 
+//-------Monitor::Demo---------
+        xform->setParameter("diffaction", "'Demo'");
+
+        xform->setParameter("platform", "'roxie'");
+        xform->setParameter("responseType", stringvar.setf("'%s'", resp_type.str()));
+        xform->transform(ecl.clear());
+        filename.setf("MonitorRoxie_demo_%s.ecl", optMethod.str());
+        saveAsFile(".", filename, ecl);
+
+        xform->setParameter("platform", "'esp'");
+        xform->setParameter("responseType", stringvar.setf("'%s'", esp_resp_type.str()));
+        xform->transform(ecl.clear());
+        filename.setf("MonitorESP_demo_%s.ecl", optMethod.str());
+        saveAsFile(".", filename, ecl);
+
 //-------Compare---------
         xform->setParameter("diffmode", "'Compare'");
         xform->setParameter("responseType", stringvar.setf("'%s'", resp_type.str()));