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 2015/05/05 15:12:19 UTC
svn commit: r1677819 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli:
DuccMonitor.java DuccReservationMonitor.java IUiOptions.java
Author: degenaro
Date: Tue May 5 13:12:18 2015
New Revision: 1677819
URL: http://svn.apache.org/r1677819
Log:
UIMA-4372 DUCC Reservations will hang with no user messages if resources are unavailable
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java (with props)
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java?rev=1677819&r1=1677818&r2=1677819&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java Tue May 5 13:12:18 2015
@@ -46,6 +46,7 @@ public abstract class DuccMonitor {
protected static final String StateRunning = "Running";
protected static final String StateCompleting = "Completing";
protected static final String StateCompleted = "Completed";
+ protected static final String WaitingForResources = "WaitingForResources";
protected CommandLine command_line = null;
@@ -87,6 +88,14 @@ public abstract class DuccMonitor {
private IUiOption[] optsMonitorJob = new UiOption[] { UiOption.Help,
UiOption.Debug, UiOption.Quiet, UiOption.Timestamp, UiOption.JobId, };
+ private IUiOption[] optsSubmitReservation = new UiOption[] {
+ UiOption.Help, UiOption.Debug, UiOption.Quiet, UiOption.Timestamp,
+ UiOption.ReservationId, UiOption.CancelOnInterrupt, };
+
+ private IUiOption[] optsMonitorReservation = new UiOption[] {
+ UiOption.Help, UiOption.Debug, UiOption.Quiet, UiOption.Timestamp,
+ UiOption.ReservationId, };
+
private IUiOption[] optsSubmitManagedReservation = new UiOption[] {
UiOption.Help, UiOption.Debug, UiOption.Quiet, UiOption.Timestamp,
UiOption.ManagedReservationId, UiOption.CancelOnInterrupt, };
@@ -144,6 +153,13 @@ public abstract class DuccMonitor {
opts = optsMonitorJob;
}
break;
+ case Reservation:
+ if (submit) {
+ opts = optsSubmitReservation;
+ } else {
+ opts = optsMonitorReservation;
+ }
+ break;
case ManagedReservation:
if (submit) {
opts = optsSubmitManagedReservation;
@@ -295,9 +311,14 @@ public abstract class DuccMonitor {
}
if (command_line.contains(UiOption.JobId)) {
id = command_line.get(UiOption.JobId);
- } else if (command_line.contains(UiOption.ManagedReservationId)) {
+ }
+ else if (command_line.contains(UiOption.ManagedReservationId)) {
id = command_line.get(UiOption.ManagedReservationId);
- } else {
+ }
+ else if (command_line.contains(UiOption.ReservationId)) {
+ id = command_line.get(UiOption.ReservationId);
+ }
+ else {
System.out.println(command_line.formatHelp(DuccJobMonitor.class.getName()));
return RC_HELP;
}
@@ -311,6 +332,8 @@ public abstract class DuccMonitor {
String urlString = getUrl(id);
String lastMessage = "";
String thisMessage = "";
+ String lastRationale = "";
+ String thisRationale = "";
StringBuffer message = new StringBuffer();
message.append("id:" + id);
message.append(" ");
@@ -389,6 +412,15 @@ public abstract class DuccMonitor {
lastMessage = thisMessage;
}
}
+ if (state.equals(WaitingForResources)) {
+ if (!monitorInfo.rationale.equals("")) {
+ thisRationale = monitorInfo.rationale;
+ if (!thisRationale.equals(lastRationale)) {
+ info(thisRationale);
+ lastRationale = thisRationale;
+ }
+ }
+ }
if (state.equals(StateCompleted)) {
// See Jira 2911
//if (monitorInfo.procs.equals("0")) {
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java?rev=1677819&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java Tue May 5 13:12:18 2015
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.cli;
+
+import java.util.ArrayList;
+
+//import org.apache.commons.cli.HelpFormatter;
+//import org.apache.commons.cli.Options;
+import org.apache.uima.ducc.cli.IUiOptions.UiOption;
+import org.apache.uima.ducc.common.CancelReasons.CancelReason;
+import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
+
+public class DuccReservationMonitor extends DuccMonitor implements IDuccMonitor {
+
+ public static String servlet = "/ducc-servlet/proxy-reservation-status";
+
+ public DuccReservationMonitor() {
+ super(DuccContext.Reservation, true);
+ }
+
+ public DuccReservationMonitor(IDuccCallback messageProcessor) {
+ super(DuccContext.Reservation, true, messageProcessor);
+ }
+
+ private DuccReservationMonitor(String uniqueSignature) {
+ super(DuccContext.Reservation, false);
+ }
+
+ public static void main(String[] args) {
+ int code = RC_FAILURE;
+ try {
+ String unique = null;
+ DuccReservationMonitor reservationMonotor = new DuccReservationMonitor(unique);
+ code = reservationMonotor.run(args);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ System.exit(code);
+ }
+
+ // @Override
+ // public void help(IUiOption[] options)
+ // {
+ // command_line.formatHelp(this.getClass().getName());
+ // return;
+ // }
+
+ @Override
+ public void cancel() {
+ try {
+ ArrayList<String> arrayList = new ArrayList<String>();
+ arrayList.add("--"+UiOption.JobId.pname());
+ arrayList.add(getId());
+ arrayList.add("--"+UiOption.Reason.pname());
+ String reason = CancelReason.MonitorEnded.getText();
+ arrayList.add("\""+reason+"\"");
+ String[] argList = arrayList.toArray(new String[0]);
+ DuccReservationCancel reservationCancel = new DuccReservationCancel(argList);
+ boolean retVal = reservationCancel.execute();
+ debug("cancel rc:"+retVal);
+ } catch (Exception e) {
+ messageProcessor.status(e.toString());
+ }
+ }
+
+ @Override
+ public String getUrl(String id) {
+ String urlString = "http://"+getHost()+":"+getPort()+servlet+"?id="+id;
+ debug(urlString);
+ return urlString;
+ }
+}
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationMonitor.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java?rev=1677819&r1=1677818&r2=1677819&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java Tue May 5 13:12:18 2015
@@ -271,6 +271,13 @@ public interface IUiOptions
public String description() { return "Register a service."; }
},
+ ReservationId {
+ public String pname() { return JobRequestProperties.key_id; }
+ public String argname() { return "string"; }
+ public String description() { return "The id of the reservation"; }
+ public boolean required() { return true; }
+ },
+
ServicePingArguments {
public String pname() { return "service_ping_arguments"; }
public String argname() { return "string"; }