You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2013/01/29 19:43:44 UTC

svn commit: r1440052 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-spawn/src/ uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/ uima-ducc-web/src/main/webapp/root/js/

Author: degenaro
Date: Tue Jan 29 18:43:43 2013
New Revision: 1440052

URL: http://svn.apache.org/viewvc?rev=1440052&view=rev
Log:
UIMA-2614 Provide immediate user feedback for webserver Terminate buttons to cancel Job/Reservation/Service

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-spawn/src/ducc_ling.c
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAsUser.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-spawn/src/ducc_ling.c
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-spawn/src/ducc_ling.c?rev=1440052&r1=1440051&r2=1440052&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-spawn/src/ducc_ling.c (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-spawn/src/ducc_ling.c Tue Jan 29 18:43:43 2013
@@ -646,6 +646,9 @@ int main(int argc, char **argv, char **e
     for ( i = 1; i < argc; i++ ) {
         fprintf(stdout, "    arg[%d]: %s\n", i, argv[i]);
     }
+    fprintf(stdout, "1001 Command launching...\n");
+    fflush(stdout);
+    fflush(stderr);
     execve(argv[0], argv, envp);                     // just run the passed-in command
 
     //

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAsUser.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAsUser.java?rev=1440052&r1=1440051&r2=1440052&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAsUser.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAsUser.java Tue Jan 29 18:43:43 2013
@@ -34,10 +34,14 @@ public class DuccAsUser {
 	private static DuccLogger duccLogger = DuccLoggerComponents.getWsLogger(DuccAsUser.class.getName());
 	private static Messages messages = Messages.getInstance();
 	
-	public static boolean duckling(String[] args) {
+	public static String magicString = "1001 Command launching...";
+	
+	public static String duckling(String[] args) {
 		
 		String methodName = "duckling";
 		
+		StringBuffer retVal = new StringBuffer();
+		
 		String c_launcher_path = 
 			Utils.resolvePlaceholderIfExists(
 					System.getProperty("ducc.agent.launcher.ducc_spawn_path"),System.getProperties());
@@ -66,6 +70,9 @@ public class DuccAsUser {
 		duccLogger.info(methodName, null, "plist: "+sbInfo.toString().trim());
 		duccLogger.debug(methodName, null, "plist: "+sbDebug.toString().trim());
 		
+		duccLogger.info(methodName, null, "cmd: "+cmd);
+		duccLogger.trace(methodName, null, "cmd: "+cmd);
+		
 		ProcessBuilder pb = new ProcessBuilder(cmd);
 		
 		Map<String, String> env = pb.environment();
@@ -77,20 +84,35 @@ public class DuccAsUser {
 			String line;
 			BufferedReader bri = new BufferedReader(new InputStreamReader(process.getInputStream()));
 			BufferedReader bre = new BufferedReader(new InputStreamReader(process.getErrorStream()));
+			boolean trigger = false;
+			duccLogger.trace(methodName, null, "read stdout: start");
 			while ((line = bri.readLine()) != null) {
 				duccLogger.info(methodName, null, "stdout: "+line);
+				if(trigger) {
+					retVal.append(line);
+				}
+				if(line.startsWith(magicString)) {
+					duccLogger.trace(methodName, null, "magic!");
+					trigger = true;
+				}
 			}
 			bri.close();
+			duccLogger.trace(methodName, null, "read stdout: end");
+			duccLogger.trace(methodName, null, "read stderr: start");
 			while ((line = bre.readLine()) != null) {
 				duccLogger.warn(methodName, null, "stderr: "+line);
+				retVal.append(line);
 			}
 			bre.close();
+			duccLogger.trace(methodName, null, "read stderr: end");
+			duccLogger.trace(methodName, null, "process waitfor: start");
 			process.waitFor();
+			duccLogger.trace(methodName, null, "process waitfor: end");
 		}
 		catch(Exception e) {
 			duccLogger.info(methodName, null, e);
 		}
 		
-		return true;
+		return retVal.toString();
 	}
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1440052&r1=1440051&r2=1440052&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Tue Jan 29 18:43:43 2013
@@ -2260,6 +2260,7 @@ public class DuccHandler extends DuccAbs
 			DuccData duccData = DuccData.getInstance();
 			DuccWorkMap duccWorkMap = duccData.get();
 			String text;
+			String result;
 			IDuccWorkJob duccWorkJob = (IDuccWorkJob) duccWorkMap.findDuccWork(DuccType.Job, value);
 			if(duccWorkJob != null) {
 				String resourceOwnerUserId = duccWorkJob.getStandardInfo().getUser().trim();
@@ -2276,12 +2277,14 @@ public class DuccHandler extends DuccAbs
 					case Administrator:
 						String arg3 = "--"+SpecificationProperties.key_role_administrator;
 						String[] arglistAdministrator = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2, arg3 };
-						DuccAsUser.duckling(arglistAdministrator);
+						result = DuccAsUser.duckling(arglistAdministrator);
+						response.getWriter().println(result);
 						break;
 					case User:
 					default:
 						String[] arglistUser = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2 };
-						DuccAsUser.duckling(arglistUser);
+						result = DuccAsUser.duckling(arglistUser);
+						response.getWriter().println(result);
 						break;	
 					}
 				}
@@ -2372,6 +2375,7 @@ public class DuccHandler extends DuccAbs
 			DuccData duccData = DuccData.getInstance();
 			DuccWorkMap duccWorkMap = duccData.get();
 			String text;
+			String result;
 			IDuccWorkReservation duccWorkReservation = (IDuccWorkReservation) duccWorkMap.findDuccWork(DuccType.Reservation, value);
 			if(duccWorkReservation != null) {
 				String resourceOwnerUserId = duccWorkReservation.getStandardInfo().getUser().trim();
@@ -2388,12 +2392,14 @@ public class DuccHandler extends DuccAbs
 					case Administrator:
 						String arg3 = "--"+SpecificationProperties.key_role_administrator;
 						String[] arglistAdministrator = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2, arg3 };
-						DuccAsUser.duckling(arglistAdministrator);
+						result = DuccAsUser.duckling(arglistAdministrator);
+						response.getWriter().println(result);
 						break;
 					case User:
 					default:
 						String[] arglistUser = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2 };
-						DuccAsUser.duckling(arglistUser);
+						result = DuccAsUser.duckling(arglistUser);
+						response.getWriter().println(result);
 						break;	
 					}
 				}
@@ -2436,6 +2442,7 @@ public class DuccHandler extends DuccAbs
 				DuccData duccData = DuccData.getInstance();
 				DuccWorkMap duccWorkMap = duccData.get();
 				String text;
+				String result;
 				IDuccWorkJob duccWorkJob = (IDuccWorkJob) duccWorkMap.findDuccWork(DuccType.Service, value);
 				if(duccWorkJob != null) {
 					String resourceOwnerUserId = duccWorkJob.getStandardInfo().getUser().trim();
@@ -2452,12 +2459,14 @@ public class DuccHandler extends DuccAbs
 						case Administrator:
 							String arg3 = "--"+SpecificationProperties.key_role_administrator;
 							String[] arglistAdministrator = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2, arg3 };
-							DuccAsUser.duckling(arglistAdministrator);
+							result = DuccAsUser.duckling(arglistAdministrator);
+							response.getWriter().println(result);
 							break;
 						case User:
 						default:
 							String[] arglistUser = { "-u", userId, "--", jhome+java, "-cp", cp, jclass, arg1, arg2 };
-							DuccAsUser.duckling(arglistUser);
+							result = DuccAsUser.duckling(arglistUser);
+							response.getWriter().println(result);
 							break;	
 						}
 					}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js?rev=1440052&r1=1440051&r2=1440052&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/webapp/root/js/ducc.js Tue Jan 29 18:43:43 2013
@@ -1739,6 +1739,7 @@ function ducc_terminate_job(id)
 			url : "/ducc-servlet/job-cancel-request"+"?id="+id,
 			success : function (data) 
 			{
+			$.jGrowl(data, { life: 6000 });
 			setTimeout(function(){window.close();}, 5000);
 			}
 		});
@@ -1760,6 +1761,7 @@ function ducc_terminate_service(id)
 			url : "/ducc-servlet/service-cancel-request"+"?id="+id,
 			success : function (data) 
 			{
+				$.jGrowl(data, { life: 6000 });
 				setTimeout(function(){window.close();}, 5000);
 			}
 		});
@@ -1781,6 +1783,7 @@ function ducc_terminate_reservation(id)
 			url : "/ducc-servlet/reservation-cancel-request"+"?id="+id,
 			success : function (data) 
 			{
+				$.jGrowl(data, { life: 6000 });
 				setTimeout(function(){window.close();}, 5000);
 			}
 		});