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 {


Reply via email to