You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2016/11/04 14:30:32 UTC

svn commit: r1768040 - /uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java

Author: burn
Date: Fri Nov  4 14:30:31 2016
New Revision: 1768040

URL: http://svn.apache.org/viewvc?rev=1768040&view=rev
Log:
UIMA-5170 Note that no data may mean not logged in; combine job & ap props & show/hide ap args

Modified:
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1768040&r1=1768039&r2=1768040&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Fri Nov  4 14:30:31 2016
@@ -30,6 +30,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
@@ -39,12 +40,14 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.TimeZone;
 import java.util.TreeMap;
+import java.util.TreeSet;
 import java.util.concurrent.ConcurrentSkipListMap;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.uima.ducc.cli.DuccUiConstants;
 import org.apache.uima.ducc.cli.ws.json.MachineFacts;
 import org.apache.uima.ducc.cli.ws.json.MachineFactsList;
 import org.apache.uima.ducc.common.CancelReasons.CancelReason;
@@ -133,6 +136,9 @@ public class DuccHandler extends DuccAbs
 	private static Messages messages = Messages.getInstance();
 	private static DuccId jobid = null;
 	
+	private final String[] n = {"classpath", "process_executable_args"};
+	private final Set<String> hideableKeys = new HashSet<String>(Arrays.asList(n));
+	
 	private enum DetailsType { Job, Reservation, Service };
 	private enum AllocationType { JD, MR, SPC, SPU, UIMA };
 	private enum LogType { POP, UIMA };
@@ -1735,7 +1741,7 @@ public class DuccHandler extends DuccAbs
 				AlienWorkItemStateReader workItemStateReader = new AlienWorkItemStateReader(eu, component, directory, wiVersion);
 				ConcurrentSkipListMap<Long,IWorkItemState> map = workItemStateReader.getMap();
 			    if( (map == null) || (map.size() == 0) ) {
-			    	sb.append("no accessible data (map empty?)");
+			    	sb.append("no accessible data (not logged in?)");
 			    }
 			    else {
 			    	ConcurrentSkipListMap<IWorkItemState,IWorkItemState> sortedMap = new ConcurrentSkipListMap<IWorkItemState,IWorkItemState>();
@@ -1871,8 +1877,8 @@ public class DuccHandler extends DuccAbs
 			catch(Exception e) {
 				duccLogger.warn(methodName, null, e.getMessage());
 				duccLogger.debug(methodName, null, e);
-				sb = new StringBuffer();
-				sb.append("no accessible data");
+				//sb = new StringBuffer();
+				sb.append("no accessible data ("+e+")");
 			}
 		}
 		else {
@@ -1897,7 +1903,7 @@ public class DuccHandler extends DuccAbs
 				PerformanceSummary performanceSummary = new PerformanceSummary(job.getLogDirectory()+jobNo);
 			    PerformanceMetricsSummaryMap performanceMetricsSummaryMap = performanceSummary.readSummary(eu.get());
 			    if( (performanceMetricsSummaryMap == null) || (performanceMetricsSummaryMap.size() == 0) ) {
-			    	sb.append("no accessible data (map empty?)");
+			    	sb.append("no accessible data (not logged in?)");
 			    }
 			    else {
 			    	int casCount  = performanceMetricsSummaryMap.casCount();
@@ -2004,8 +2010,8 @@ public class DuccHandler extends DuccAbs
 			}
 			catch(Exception e) {
 				duccLogger.warn(methodName, null, e);
-				sb = new StringBuffer();
-				sb.append("no accessible data");
+				//sb = new StringBuffer();
+				sb.append("no accessible data ("+e+")");
 			}
 		}
 		else {
@@ -2066,6 +2072,52 @@ public class DuccHandler extends DuccAbs
 		}
 	}
 	
+	/*
+	 * Format both job & reservation specification files
+	 */
+    private void processSpecificationData(DuccWorkJob work, String specFile, HttpServletRequest request,
+            HttpServletResponse response) throws IOException {
+        String methodName = "ProcessSpecificationData";
+        StringBuffer sb = new StringBuffer();
+        if (work != null) {
+            try {
+                EffectiveUser eu = EffectiveUser.create(request);
+                Properties usProperties = DuccFile.getUserSpecifiedProperties(eu, work);
+                String path = work.getUserLogsDir() + work.getDuccId().getFriendly() + File.separator + specFile;
+                Properties properties = DuccFile.getProperties(eu, path);
+                if (properties == null) {
+                    sb.append("no accessible data (not logged in?)");
+                } else {
+                    int i = 0;
+                    int counter = 0;
+                    // Process a sorted list of property names
+                    TreeSet<String> list = new TreeSet<String>(properties.stringPropertyNames());
+                    for (String key : list) {
+                        String value = properties.getProperty(key);
+                        String provider = getProvider(key, usProperties, null);
+                        if (hideableKeys.contains(key)) {
+                            if (key.equals("classpath")) {
+                                value = formatClasspath(value);
+                            }       // Could try to format the cp part of the executable args?
+                            String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"
+                                    + i + "\"/></div>";
+                            String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"
+                                    + i + "\"/>" + " " + value + "</div>";
+                            value = show + hide;
+                            i++;
+                        }
+                        putJobSpecEntry(properties, provider, key, value, sb, counter++);
+                    }
+                }
+            } catch (Throwable t) {
+                duccLogger.warn(methodName, null, t);
+                sb.append("no accessible data (" + t + ")");
+            }
+        }
+        response.getWriter().println(sb);
+        duccLogger.trace(methodName, null, messages.fetch("exit"));
+    }
+	
 	private void handleDuccServletJobSpecificationData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
 	throws IOException, ServletException
 	{
@@ -2074,42 +2126,7 @@ public class DuccHandler extends DuccAbs
 		StringBuffer sb = new StringBuffer();
 		String jobNo = request.getParameter("id");
 		DuccWorkJob job = getJob(jobNo);
-		if(job != null) {
-			try {
-				EffectiveUser eu = EffectiveUser.create(request);
-				Properties usProperties = DuccFile.getUserSpecifiedProperties(eu, job);
-				Properties fsProperties = DuccFile.getFileSpecifiedProperties(eu, job);
-				Properties properties = DuccFile.getJobProperties(eu, job);
-				TreeMap<String,String> map = new TreeMap<String,String>();
-				Enumeration<?> enumeration = properties.keys();
-				while(enumeration.hasMoreElements()) {
-					String key = (String)enumeration.nextElement();
-					map.put(key, key);
-				}
-				Iterator<String> iterator = map.keySet().iterator();
-				int i = 0;
-				int counter = 0;
-				while(iterator.hasNext()) {
-					String key = iterator.next();
-					String value = properties.getProperty(key);
-					String provider = getProvider(key, usProperties, fsProperties);
-					if(key.endsWith("classpath")) {
-						value = formatClasspath(value);
-						String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"+i+"\"/></div>";
-						String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"+i+"\"/>"+" "+value+"</div>";
-						value = show+hide;
-						i++;
-					}
-					putJobSpecEntry(properties, provider, key, value, sb, counter++);
-				}
-			}
-			catch(Throwable t) {
-				duccLogger.warn(methodName, null, t);
-				sb = new StringBuffer();
-				sb.append("no accessible data");
-			}
-		}
-		response.getWriter().println(sb);
+		processSpecificationData(job, DuccUiConstants.job_specification_properties, request, response);
 		duccLogger.trace(methodName, null, messages.fetch("exit"));
 	}
 
@@ -2159,11 +2176,14 @@ public class DuccHandler extends DuccAbs
 					sb.append(row);
 					counter++;
 				}
+				if (counter == 0) {
+				    sb.append("no files found (not logged in?)");
+				}
 			}
 			catch(Throwable t) {
 				duccLogger.warn(methodName, null, t);
-				sb = new StringBuffer();
-				sb.append("no accessible data");
+				//sb = new StringBuffer();
+				sb.append("no accessible data ("+t+")");
 			}
 		}
 		response.getWriter().println(sb);
@@ -2216,11 +2236,14 @@ public class DuccHandler extends DuccAbs
 					sb.append(row);
 					counter++;
 				}
+		        if (counter == 0) {
+		            sb.append("no files found (not logged in?)");
+		        }
 			}
 			catch(Throwable t) {
 				duccLogger.warn(methodName, null, t);
-				sb = new StringBuffer();
-				sb.append("no accessible data");
+				//sb = new StringBuffer();
+				sb.append("no accessible data ("+t+")");
 			}
 		}
 		response.getWriter().println(sb);
@@ -2432,7 +2455,7 @@ public class DuccHandler extends DuccAbs
 	private void handleDuccServletJobInitializationFailData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
 	throws IOException, ServletException
 	{
-		String methodName = "handleDuccServletJobSpecificationData";
+		String methodName = "handleDuccServletJobInitializationFailData";
 		duccLogger.trace(methodName, null, messages.fetch("enter"));
 		EffectiveUser eu = EffectiveUser.create(request);
 		StringBuffer sb = new StringBuffer();
@@ -2501,7 +2524,7 @@ public class DuccHandler extends DuccAbs
 	private void handleDuccServletJobRuntimeFailData(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) 
 	throws IOException, ServletException
 	{
-		String methodName = "handleDuccServletJobSpecificationData";
+		String methodName = "handleDuccServletJobRuntimeFailData";
 		duccLogger.trace(methodName, null, messages.fetch("enter"));
 		EffectiveUser eu = EffectiveUser.create(request);
 		StringBuffer sb = new StringBuffer();
@@ -2604,47 +2627,9 @@ public class DuccHandler extends DuccAbs
 	{
 		String methodName = "handleDuccServletReservationSpecificationData";
 		duccLogger.trace(methodName, null, messages.fetch("enter"));
-		StringBuffer sb = new StringBuffer();
 		String reservationNo = request.getParameter("id");
-		
 		DuccWorkJob managedReservation = getManagedReservation(reservationNo);
-		if(managedReservation != null) {
-			try {
-				EffectiveUser eu = EffectiveUser.create(request);
-				Properties usProperties = DuccFile.getUserSpecifiedProperties(eu, managedReservation);
-				Properties fsProperties = DuccFile.getFileSpecifiedProperties(eu, managedReservation);
-				Properties properties = DuccFile.getManagedReservationProperties(eu, managedReservation);
-				TreeMap<String,String> map = new TreeMap<String,String>();
-				Enumeration<?> enumeration = properties.keys();
-				while(enumeration.hasMoreElements()) {
-					String key = (String)enumeration.nextElement();
-					map.put(key, key);
-				}
-				Iterator<String> iterator = map.keySet().iterator();
-				int i = 0;
-				int counter = 0;
-				while(iterator.hasNext()) {
-					String key = iterator.next();
-					String value = properties.getProperty(key);
-					if(key.endsWith("classpath")) {
-						value = formatClasspath(value);
-						String show = "<div class=\"hidedata\"><input type=\"submit\" name=\"showcp\" value=\"Show\" id=\"showbutton"+i+"\"/></div>";
-						String hide = "<div class=\"showdata\"><input type=\"submit\" name=\"hidecp\" value=\"Hide\" id=\"hidebutton"+i+"\"/>"+" "+value+"</div>";
-						value = show+hide;
-						i++;
-					}
-					String provider = getProvider(key, usProperties, fsProperties);
-					putJobSpecEntry(properties, provider, key, value, sb, counter++);
-				}
-			}
-			catch(Throwable t) {
-				duccLogger.warn(methodName, null, t);
-				sb = new StringBuffer();
-				sb.append("no accessible data");
-			}
-		}
-		
-		response.getWriter().println(sb);
+		processSpecificationData(managedReservation, DuccUiConstants.managed_reservation_properties, request, response);
 		duccLogger.trace(methodName, null, messages.fetch("exit"));
 	}
 	
@@ -2897,8 +2882,7 @@ public class DuccHandler extends DuccAbs
 		}
 		catch(Exception e) {
 			duccLogger.warn(methodName, null, e);
-			sb = new StringBuffer();
-			sb.append("no accessible data");
+			sb.append("no accessible data ("+e+")");
 		}
 
 		response.getWriter().println(sb);
@@ -4223,7 +4207,7 @@ public class DuccHandler extends DuccAbs
 		}
 		if(sb.length() == 0) {
 			sb.append("<tr>");
-			sb.append("<td>"+"no accessible data");
+			sb.append("<td>"+"no accessible data (not logged in?)");
 			sb.append("<td>");
 			sb.append("<td>");
 		}