You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chukwa.apache.org by as...@apache.org on 2009/11/03 15:36:07 UTC

svn commit: r832432 - in /hadoop/chukwa/trunk: CHANGES.txt src/java/org/apache/hadoop/chukwa/datacollection/agent/AgentControlSocketListener.java src/test/org/apache/hadoop/chukwa/datacollection/agent/TestCmd.java

Author: asrabkin
Date: Tue Nov  3 14:36:07 2009
New Revision: 832432

URL: http://svn.apache.org/viewvc?rev=832432&view=rev
Log:
CHUKWA-405. Add a stopall command

Modified:
    hadoop/chukwa/trunk/CHANGES.txt
    hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/datacollection/agent/AgentControlSocketListener.java
    hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/agent/TestCmd.java

Modified: hadoop/chukwa/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/chukwa/trunk/CHANGES.txt?rev=832432&r1=832431&r2=832432&view=diff
==============================================================================
--- hadoop/chukwa/trunk/CHANGES.txt (original)
+++ hadoop/chukwa/trunk/CHANGES.txt Tue Nov  3 14:36:07 2009
@@ -4,9 +4,11 @@
 
   NEW FEATURES
 
-  IMPROVEMENTS
+    CHUKWA-405  Add a "stop all" command. (asrabkin)
+ 
+   IMPROVEMENTS
 
-    CHUKWA-407. Make SocketTeeWriter work in single-stage pipeline. (Thushara Wijeratna via asrabkin)
+    CHUKWA-409. Make SocketTeeWriter work in single-stage pipeline. (Thushara Wijeratna via asrabkin)
 
     CHUKWA-408. Add optional metadata to real-time feed. (asrabkin)
 

Modified: hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/datacollection/agent/AgentControlSocketListener.java
URL: http://svn.apache.org/viewvc/hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/datacollection/agent/AgentControlSocketListener.java?rev=832432&r1=832431&r2=832432&view=diff
==============================================================================
--- hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/datacollection/agent/AgentControlSocketListener.java (original)
+++ hadoop/chukwa/trunk/src/java/org/apache/hadoop/chukwa/datacollection/agent/AgentControlSocketListener.java Tue Nov  3 14:36:07 2009
@@ -115,6 +115,7 @@
         out.println("list -- list running adaptors");
         out.println("close -- close this connection");
         out.println("stopagent -- stop the whole agent process");
+        out.println("stopall -- stop all adaptors");
         out.println("reloadCollectors -- reload the list of collectors");
         out.println("help -- print this message");
         out.println("\t Command names are case-blind.");
@@ -166,11 +167,18 @@
         out.println("stopping agent process.");
         connection.close();
         agent.shutdown(true);
+      } else if(words[0].equalsIgnoreCase("stopall")) {
+        int stopped = 0;
+        for(String id: agent.getAdaptorList().keySet()) {
+          agent.stopAdaptor(id, false);
+          stopped++;
+         }
+        out.println("stopped " + stopped + " adaptors");
       } else if (words[0].equals("")) {
         out.println(getStatusLine());
       } else {
         log.warn("unknown command " + words[0]);
-        out.println("unknown command" + words[0]);
+        out.println("unknown command " + words[0]);
         out.println("say 'help' for a list of legal commands");
       }
       out.flush();

Modified: hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/agent/TestCmd.java
URL: http://svn.apache.org/viewvc/hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/agent/TestCmd.java?rev=832432&r1=832431&r2=832432&view=diff
==============================================================================
--- hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/agent/TestCmd.java (original)
+++ hadoop/chukwa/trunk/src/test/org/apache/hadoop/chukwa/datacollection/agent/TestCmd.java Tue Nov  3 14:36:07 2009
@@ -22,9 +22,12 @@
 import org.apache.hadoop.chukwa.datacollection.adaptor.Adaptor;
 import org.apache.hadoop.chukwa.datacollection.adaptor.ChukwaTestAdaptor;
 import org.apache.hadoop.chukwa.datacollection.agent.ChukwaAgent.AlreadyRunningException;
+import org.apache.hadoop.chukwa.datacollection.connector.ChunkCatcherConnector;
 import org.apache.hadoop.chukwa.datacollection.test.ConsoleOutConnector;
 import org.apache.hadoop.conf.Configuration;
 import junit.framework.TestCase;
+import java.net.*;
+import java.io.*;
 
 public class TestCmd extends TestCase {
 
@@ -122,4 +125,29 @@
       fail(e.toString());
     }
   }
+  
+  public void testStopAll() throws Exception{
+    Configuration conf = new Configuration();
+    conf.set("chukwaAgent.control.port", "0");
+    ChukwaAgent agent = new ChukwaAgent(conf);
+    ChunkCatcherConnector chunks = new ChunkCatcherConnector();
+    chunks.start();
+    agent.processAddCommand(
+        "ADD adaptor1 = org.apache.hadoop.chukwa.datacollection.adaptor.ChukwaTestAdaptor"
+        + "  chukwaTestAdaptorType 0");
+
+    agent.processAddCommand(
+    "ADD adaptor2 = org.apache.hadoop.chukwa.datacollection.adaptor.ChukwaTestAdaptor"
+    + "  chukwaTestAdaptorType 0");
+    assertEquals(2, agent.adaptorCount());
+
+    Socket s = new Socket("localhost", agent.getControllerPort());
+    PrintWriter bw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
+    bw.println("stopAll");
+    bw.flush();
+    InputStreamReader in = new InputStreamReader(s.getInputStream());
+    in.read();
+    assertEquals(0, agent.adaptorCount());
+    agent.shutdown();
+  }
 }