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 {