From 72c939b50428a2aa1f924a04ecdedee93e1383f4 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Thu, 13 Sep 2007 21:14:20 +0000
Subject: [PATCH] Introduces a utility 'manage-tasks' for monitoring and some management of tasks called 'manage-tasks'. It can be used in either one-time or menu-driven execution mode to print a summary of task information, print verbose information about a particular task, or cancel a running or pending task.

---
 opends/src/server/org/opends/server/tools/tasks/TaskTool.java |   34 +++++++++++++++++++++++++---------
 1 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/tasks/TaskTool.java b/opends/src/server/org/opends/server/tools/tasks/TaskTool.java
index 8cd4aeb..3d6b3fa 100644
--- a/opends/src/server/org/opends/server/tools/tasks/TaskTool.java
+++ b/opends/src/server/org/opends/server/tools/tasks/TaskTool.java
@@ -31,13 +31,15 @@
 import org.opends.server.util.args.ArgumentException;
 import static org.opends.server.util.StaticUtils.wrapText;
 import static org.opends.server.util.ServerConstants.MAX_LINE_WIDTH;
-import org.opends.server.protocols.ldap.LDAPResultCode;
+import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.tools.LDAPConnection;
 import org.opends.server.tools.LDAPConnectionException;
+import org.opends.server.types.LDAPException;
 import org.opends.messages.Message;
-import static org.opends.messages.ToolMessages.ERR_LDAP_CONN_CANNOT_CONNECT;
+import static org.opends.messages.ToolMessages.*;
 
 import java.io.PrintStream;
+import java.io.IOException;
 
 /**
  * Base class for tools that are capable of operating either by running
@@ -61,24 +63,38 @@
                         boolean initializeServer,
                         PrintStream out, PrintStream err) {
     int ret;
+    String taskId;
     if (argParser.isLdapOperation())
     {
       try {
         LDAPConnection conn = argParser.connect(out, err);
-        TaskSchedulingClient tc = new TaskSchedulingClient(conn);
-        ret = tc.schedule(this, out, err);
+        TaskClient tc = new TaskClient(conn);
+        taskId = tc.schedule(this);
+        out.println(wrapText(INFO_TASK_TOOL_TASK_SCHEDULED.get(taskId),
+                MAX_LINE_WIDTH));
+        ret = 0;
       } catch (LDAPConnectionException e) {
         Message message = ERR_LDAP_CONN_CANNOT_CONNECT.get(e.getMessage());
         if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
-        ret = LDAPResultCode.CLIENT_SIDE_CONNECT_ERROR;
+        ret = 1;
       } catch (ArgumentException e) {
         Message message = e.getMessageObject();
         if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
-        ret = LDAPResultCode.CLIENT_SIDE_PARAM_ERROR;
+        ret = 1;
+      } catch (IOException ioe) {
+        Message message = ERR_TASK_TOOL_IO_ERROR.get(String.valueOf(ioe));
+        if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
+        ret = 1;
+      } catch (ASN1Exception ae) {
+        Message message = ERR_TASK_TOOL_DECODE_ERROR.get(ae.getMessage());
+        if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
+        ret = 1;
+      } catch (LDAPException le) {
+        Message message = ERR_TASK_TOOL_DECODE_ERROR.get(le.getMessage());
+        if (err != null) err.println(wrapText(message, MAX_LINE_WIDTH));
+        ret = 1;
       }
-    }
-    else
-    {
+    } else {
       ret = processLocal(initializeServer, out, err);
     }
     return ret;

--
Gitblit v1.10.0