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/03/19 16:55:31 UTC

svn commit: r1458358 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator: JobFactory.java OrchestratorComponent.java

Author: degenaro
Date: Tue Mar 19 15:55:31 2013
New Revision: 1458358

URL: http://svn.apache.org/r1458358
Log:
UIMA-2732 DUCC support for monitoring of Managed Reservations, orchestrator enhancements

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java?rev=1458358&r1=1458357&r2=1458358&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java Tue Mar 19 15:55:31 2013
@@ -562,6 +562,13 @@ public class JobFactory {
             logger.debug(methodName, job.getDuccId(), "Adding service endpoint", ep);
             job.setServiceEndpoint(ep);
         }
+        // Cancel On Interrupt
+        if(jobRequestProperties.containsKey(JobSpecificationProperties.key_cancel_job_on_interrupt)) {
+        	job.setCancelOnInterrupt();
+        }
+        if(jobRequestProperties.containsKey(JobSpecificationProperties.key_cancel_managed_reservation_on_interrupt)) {
+        	job.setCancelOnInterrupt();
+        }
 		//TODO be sure to clean-up fpath upon job completion!
 		return job;
 	}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java?rev=1458358&r1=1458357&r2=1458358&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java Tue Mar 19 15:55:31 2013
@@ -50,6 +50,7 @@ import org.apache.uima.ducc.orchestrator
 import org.apache.uima.ducc.transport.event.CancelJobDuccEvent;
 import org.apache.uima.ducc.transport.event.CancelReservationDuccEvent;
 import org.apache.uima.ducc.transport.event.CancelServiceDuccEvent;
+import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
 import org.apache.uima.ducc.transport.event.JdStateDuccEvent;
 import org.apache.uima.ducc.transport.event.NodeInventoryUpdateDuccEvent;
 import org.apache.uima.ducc.transport.event.OrchestratorAbbreviatedStateDuccEvent;
@@ -995,6 +996,7 @@ implements Orchestrator {
 			if(elapsed > Constants.SYNC_LIMIT) {
 				logger.debug(methodName, dwid, "elapsed msecs: "+elapsed);
 			}
+			DuccContext context = duccEvent.getContext();
 			if(duccWorkJob != null) {
 				dwid = duccWorkJob.getDuccId();
 				String reqUser = properties.getProperty(JobRequestProperties.key_user).trim();
@@ -1002,13 +1004,26 @@ implements Orchestrator {
 				String tgtUser = duccWorkJob.getStandardInfo().getUser().trim();
 				if(isAuthorized(dwid, reqUser, tgtUser, reqRole)) {
 					logger.debug(methodName, dwid, "reqUser:"+reqUser+" "+"reqRole:"+reqRole+" "+"tgtUser:"+tgtUser);
-					IRationale rationale = new Rationale("service canceled by "+reqUser);
-					stateManager.jobTerminate(duccWorkJob, JobCompletionType.CanceledByUser, rationale, ProcessDeallocationType.JobCanceled);
+					String type;
+					switch(context) {
+					case ManagedReservation:
+						type = "managed reservation";
+						break;
+					default:
+						type = "service";
+						break;
+					}
+					IRationale rationale = new Rationale(type+" canceled by "+reqUser);
+					JobCompletionType jobCompletionType = JobCompletionType.CanceledByUser;
+					if(reqRole.equals(SpecificationProperties.key_role_administrator)) {
+						jobCompletionType = JobCompletionType.CanceledByAdministrator;
+					}
+					stateManager.jobTerminate(duccWorkJob, jobCompletionType, rationale, ProcessDeallocationType.JobCanceled);
 					OrchestratorCheckpoint.getInstance().saveState();
 					// prepare for reply to canceler
 					properties.put(JobReplyProperties.key_message, JobReplyProperties.msg_canceled);
 					duccEvent.setProperties(properties);
-					logger.info(methodName, dwid, messages.fetchLabel("service state")+duccWorkJob.getJobState());
+					logger.info(methodName, dwid, messages.fetchLabel(type+" state")+duccWorkJob.getJobState());
 				}
 				else {
 					// prepare not authorized reply 
@@ -1019,9 +1034,18 @@ implements Orchestrator {
 			}
 			else {
 				// prepare undefined reply 
-				properties.put(JobReplyProperties.key_message, JobReplyProperties.msg_service_not_found);
+				String message;
+				switch(context) {
+				case ManagedReservation:
+					message = JobReplyProperties.msg_managed_reservation_not_found;
+					break;
+				default:
+					message = JobReplyProperties.msg_service_not_found;
+					break;
+				}
+				properties.put(JobReplyProperties.key_message, message);
 				duccEvent.setProperties(properties);
-				logger.info(methodName, dwid, jobId+" : "+messages.fetch(JobReplyProperties.msg_service_not_found));
+				logger.info(methodName, dwid, jobId+" : "+messages.fetch(message));
 			}
 		}
 		else {