Преглед изворни кода

HPCC-11117 Return ResourceURLCount/ResultViewCount in WUInfo

In this fix, both ResourceURLCount and ResultViewCount are returned
in WsWorkunits/WUInfo response.
Kevin Wang пре 11 година
родитељ
комит
7f1ee298aa
2 измењених фајлова са 15 додато и 4 уклоњено
  1. 3 1
      esp/scm/ws_workunits.ecm
  2. 12 3
      esp/services/ws_workunits/ws_workunitsService.cpp

+ 3 - 1
esp/scm/ws_workunits.ecm

@@ -235,6 +235,8 @@ ESPStruct [nil_remove] ECLWorkunit
     [min_ver("1.49")] int64 WUXMLSize;
     [min_ver("1.38")] ESParray<ESPstruct ThorLogInfo> ThorLogList;
     [min_ver("1.47")] ESParray<string, URL> ResourceURLs;
+    [min_ver("1.50")] int ResultViewCount;
+    [min_ver("1.50")] int ResourceURLCount;
 };
 
 ESPStruct [nil_remove] WUECLAttribute
@@ -1451,7 +1453,7 @@ ESPresponse [exceptions_inline] WUCreateZAPInfoResponse
 };
 
 ESPservice [
-    version("1.49"), default_client_version("1.49"),
+    version("1.50"), default_client_version("1.50"),
     noforms,exceptions_inline("./smc_xslt/exceptions.xslt"),use_method_name] WsWorkunits
 {
     ESPmethod [resp_xsl_default("/esp/xslt/workunits.xslt")]     WUQuery(WUQueryRequest, WUQueryResponse);

+ 12 - 3
esp/services/ws_workunits/ws_workunitsService.cpp

@@ -1427,6 +1427,7 @@ bool CWsWorkunitsEx::onWUInfo(IEspContext &context, IEspWUInfoRequest &req, IEsp
         StringBuffer wuid = req.getWuid();
         WsWuHelpers::checkAndTrimWorkunit("WUInfo", wuid);
 
+        double version = context.getClientVersion();
         if (req.getType() && strieq(req.getType(), "archived workunits"))
             getArchivedWUInfo(context, sashaServerIp.get(), sashaServerPort, wuid.str(), resp);
         else
@@ -1469,12 +1470,20 @@ bool CWsWorkunitsEx::onWUInfo(IEspContext &context, IEspWUInfoRequest &req, IEsp
                 WsWuInfo winfo(context, wuid.str());
                 winfo.getInfo(resp.updateWorkunit(), flags);
 
-                if (req.getIncludeResultsViewNames()||req.getIncludeResourceURLs())
+                if (req.getIncludeResultsViewNames()||req.getIncludeResourceURLs()||(version >= 1.50))
                 {
                     StringArray views, urls;
                     winfo.getResourceInfo(views, urls, flags);
-                    resp.setResultViews(views);
-                    resp.updateWorkunit().setResourceURLs(urls);
+                    IEspECLWorkunit& eclWU = resp.updateWorkunit();
+                    if (req.getIncludeResultsViewNames())
+                        resp.setResultViews(views);
+                    if (req.getIncludeResourceURLs())
+                        eclWU.setResourceURLs(urls);
+                    if (version >= 1.50)
+                    {
+                        eclWU.setResultViewCount(views.length());
+                        eclWU.setResourceURLCount(urls.length());
+                    }
                 }
             }
             catch (IException *e)