Author: burn
Date: Tue May  5 21:59:03 2015
New Revision: 1677896

URL: http://svn.apache.org/r1677896
Log:
UIMA-4372 Reservations now always start a monitor but still wait for operation 
to complete. cancel_on_interrupt also supported

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/MonitorListener.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java?rev=1677896&r1=1677895&r2=1677896&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
 Tue May  5 21:59:03 2015
@@ -527,12 +527,12 @@ public abstract class CliBase
 
         String pid =  
reply.getProperties().getProperty(UiOption.JobId.pname());
         if (pid == null ) {
-            message("ERROR: JobId not found in reply");
+            message("ERROR: Request ID not found in reply");
             rc = false;
         } else {
             friendlyId = Long.parseLong(pid);
             if ( friendlyId < 0 ) {
-                message("ERROR: Invalid JobId", pid);
+                message("ERROR: Invalid Request ID", pid);
                 rc = false;
             }
         }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java?rev=1677896&r1=1677895&r2=1677896&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
 Tue May  5 21:59:03 2015
@@ -53,6 +53,7 @@ public class DuccManagedReservationSubmi
         UiOption.SchedulingClass,
         UiOption.Specification,
         UiOption.SuppressConsoleLog,
+        UiOption.Timestamp,
         UiOption.WorkingDirectory,
         UiOption.WaitForCompletion,
         UiOption.CancelOnInterrupt,
@@ -178,41 +179,13 @@ public class DuccManagedReservationSubmi
         /*
          * process reply
          */
-        boolean retval = true;
-        Properties properties = reply.getProperties();
-        @SuppressWarnings("unchecked")
-        ArrayList<String> or_warnings = (ArrayList<String>) 
properties.get(UiOption.SubmitWarnings.pname());
-        if (or_warnings != null) {
-            for ( String s : or_warnings) {
-               message("WARN:", s);
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        ArrayList<String> or_errors = (ArrayList<String>) 
properties.get(UiOption.SubmitErrors.pname());
-        if(or_errors != null) {
-            for ( String s : or_errors ) {
-                message("ERROR:", s);
-            }
-            retval = false;
-        }
-
-        if ( retval ) {
-            String pid = 
reply.getProperties().getProperty(UiOption.JobId.pname());
-            if (pid == null ) {
-                retval = false;
-            } else {
-                friendlyId = Long.parseLong(pid);
-                if ( friendlyId < 0 ) {
-                    retval = false;
-                } else {
-                    saveSpec(DuccUiConstants.managed_reservation_properties, 
serviceProperties);
-                    startMonitors(true, DuccContext.ManagedReservation);       
// starts conditionally, based on job spec and console listener present
-                }
-            }
+        boolean rc = extractReply(reply);
+               if (rc) {
+                       
saveSpec(DuccUiConstants.managed_reservation_properties, serviceProperties);
+                       startMonitors(true, DuccContext.ManagedReservation);    
   // starts conditionally, based on job spec and console listener present
         }
 
-        return retval;
+        return rc;
     }
         
     /**

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java?rev=1677896&r1=1677895&r2=1677896&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
 Tue May  5 21:59:03 2015
@@ -22,7 +22,9 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Properties;
 
+import org.apache.uima.ducc.cli.IUiOptions.UiOption;
 import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
+import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
 import org.apache.uima.ducc.transport.event.SubmitReservationDuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitReservationReplyDuccEvent;
 import org.apache.uima.ducc.transport.event.cli.ReservationReplyProperties;
@@ -80,6 +82,9 @@ public class DuccReservationSubmit
         UiOption.SchedulingClass,
         UiOption.Specification,
         UiOption.ReservationMemorySize,
+        UiOption.Timestamp,
+        UiOption.WaitForCompletion,
+        UiOption.CancelOnInterrupt,
     };
 
 
@@ -119,7 +124,17 @@ public class DuccReservationSubmit
          */
         boolean rc = extractReply(reply);
 
-        if ( rc ) { 
+        if ( !rc ) { 
+                       return false;
+               }
+               
+        // If request was accepted, always start a monitor so can report the 
state 
+        requestProperties.setProperty(UiOption.WaitForCompletion.pname(), 
"true");
+               startMonitors(false, DuccContext.Reservation);       // starts 
conditionally, based on job spec and console listener present
+               
+               // Then since this is a synchronous api, wait for request to 
complete, as only then will the node be available
+               rc = (getReturnCode() == 0);
+               if (rc) {
                nodeList = 
reply.getProperties().getProperty(UiOption.ReservationNodeList.pname());
         }
         

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/MonitorListener.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/MonitorListener.java?rev=1677896&r1=1677895&r2=1677896&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/MonitorListener.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/MonitorListener.java
 Tue May  5 21:59:03 2015
@@ -71,14 +71,20 @@ class MonitorListener
 
             String[] argList = arrayList.toArray(new String[0]);
             switch(context) {
-            case ManagedReservation:
-               monitor = new DuccManagedReservationMonitor(base.getCallback());
-               break;
-            case Job:
-               monitor = new DuccJobMonitor(base.getCallback());
-               break;
+               case Reservation:
+                       monitor = new 
DuccReservationMonitor(base.getCallback());
+                       break;
+               case ManagedReservation:
+                       monitor = new 
DuccManagedReservationMonitor(base.getCallback());
+                       break;
+               case Job:
+                       monitor = new DuccJobMonitor(base.getCallback());
+                       break;
+               default:
+                       base.message("ERROR: unsupported monitor context: " + 
context);
+                       break;
             }
-            retVal = monitor.run(argList);
+            retVal = monitor == null ? 99 : monitor.run(argList);
         } catch (Exception e) {
             base.message("ERROR:" + e.toString());
             retVal = 999; // error rc's usually positive! // 
DuccUiConstants.ERROR;


Reply via email to