SLIDER-520 add funtests for diagnostics

Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/c6c5955b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/c6c5955b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/c6c5955b

Branch: refs/heads/develop
Commit: c6c5955b252fe640f20c70a60fbe201d939fba68
Parents: 99fd391
Author: Steve Loughran <ste...@apache.org>
Authored: Tue Oct 14 17:36:49 2014 -0700
Committer: Steve Loughran <ste...@apache.org>
Committed: Tue Oct 14 17:36:49 2014 -0700

----------------------------------------------------------------------
 slider-assembly/src/conf/log4j.properties       |   2 +
 .../org/apache/slider/client/SliderClient.java  | 103 ++++++++++++-------
 .../apache/slider/common/params/ClientArgs.java |   2 +-
 .../server/appmaster/SliderAppMaster.java       |   6 +-
 .../funtest/framework/CommandTestBase.groovy    |  15 +++
 .../slider/funtest/framework/SliderShell.groovy |  23 ++++-
 .../commands/DiagnosticsCommandIT.groovy        |   6 +-
 7 files changed, 107 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-assembly/src/conf/log4j.properties
----------------------------------------------------------------------
diff --git a/slider-assembly/src/conf/log4j.properties 
b/slider-assembly/src/conf/log4j.properties
index 3c0d08c..b4a9aa4 100644
--- a/slider-assembly/src/conf/log4j.properties
+++ b/slider-assembly/src/conf/log4j.properties
@@ -56,3 +56,5 @@ log4j.logger.org.apache.hadoop.hdfs=WARN
 
log4j.logger.org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor=WARN
 
log4j.logger.org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl=WARN
 log4j.logger.org.apache.zookeeper=WARN
+log4j.logger.org.apache.curator.framework.state=ERROR
+log4j.logger.org.apache.curator.framework.imps=WARN

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java 
b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index d5725e0..50a7097 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -2585,46 +2585,60 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
                }
        }
 
-       private void actionDiagnosticClient(ActionDiagnosticArgs diagnosticArgs)
+  private void actionDiagnosticClient(ActionDiagnosticArgs diagnosticArgs)
       throws SliderException, IOException {
-    String currentCommandPath = SliderUtils.getCurrentCommandPath();
-    SliderVersionInfo.loadAndPrintVersionInfo(log);
-    String clientConfigPath = SliderUtils.getClientConfigPath();
-    String jdkInfo = SliderUtils.getJDKInfo();
-    println("The slider command path: " + currentCommandPath);
-    println("The slider-client.xml used by current running command path: "
-            + clientConfigPath);
-    println(jdkInfo);
-
-    // verbose?
-    if (diagnosticArgs.verbose) {
-      // do the environment
-      Map<String, String> env = System.getenv();
-      Set<String> envList = ConfigHelper.sortedConfigKeys(env.entrySet());
-      StringBuilder builder = new StringBuilder("Environment variables:\n");
-      for (String key : envList) {
-        builder.append(key)
-               .append("=")
-               .append(env.get(key))
-               .append("\n");
+    try {
+      String currentCommandPath = SliderUtils.getCurrentCommandPath();
+      SliderVersionInfo.loadAndPrintVersionInfo(log);
+      String clientConfigPath = SliderUtils.getClientConfigPath();
+      String jdkInfo = SliderUtils.getJDKInfo();
+      println("The slider command path: %s", currentCommandPath);
+      println("The slider-client.xml used by current running command path: %s",
+          clientConfigPath);
+      println(jdkInfo);
+
+      // security info
+      Configuration config = getConfig();
+      if (SliderUtils.isHadoopClusterSecure(config)) { 
+        println("Hadoop Cluster is secure");
+        println("Login user is %s", UserGroupInformation.getLoginUser());
+        println("Current user is %s", UserGroupInformation.getCurrentUser());
+
+
+      } else {
+        println("Hadoop Cluster is insecure");
       }
-      println(builder.toString());
-      
-      // then the config
-      println("Slider client configuration:\n" +
-              ConfigHelper.dumpConfigToString(getConfig()));
+
+
+      // verbose?
+      if (diagnosticArgs.verbose) {
+        // do the environment
+        Map<String, String> env = System.getenv();
+        Set<String> envList = ConfigHelper.sortedConfigKeys(env.entrySet());
+        StringBuilder builder = new StringBuilder("Environment variables:\n");
+        for (String key : envList) {
+          builder.append(key)
+                 .append("=")
+                 .append(env.get(key))
+                 .append("\n");
+        }
+        println(builder.toString());
+
+        // then the config
+        println("Slider client configuration:\n" +
+                ConfigHelper.dumpConfigToString(config));
+      }
+
+
+      SliderUtils.validateSliderClientEnvironment(log);
+    } catch (SliderException e) {
+      log.error(e.toString());
+      throw e;
+    } catch (IOException e) {
+      log.error(e.toString());
+      throw e;
     }
     
-               try {
-                       SliderUtils.validateSliderClientEnvironment(log);
-               } catch (SliderException e) {
-                       log.error(e.toString());
-                       throw e;
-               } catch (IOException e) {
-                       log.error(e.toString());
-                       throw e;
-               }
-    
        }
 
 
@@ -2878,13 +2892,22 @@ public class SliderClient extends 
AbstractSliderLaunchedService implements RunSe
 
   /**
    * Output to standard out/stderr with a newline after
-   * @param src source
+   * @param message message
    */
-  private static void println(CharSequence src) {
-    print(src);
+  private static void println(String message) {
+    print(message);
     print("\n");
   }
-  
+  /**
+   * Output to standard out/stderr with a newline after, formatted
+   * @param message message
+   * @param args arguments for string formatting
+   */
+  private static void println(String message, Object ... args) {
+    print(String.format(message, args));
+    print("\n");
+  }
+
 }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java 
b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
index a4265aa..6e03d4b 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
@@ -238,7 +238,7 @@ public class ClientArgs extends CommonArgs {
       bindCoreAction(actionRegistryArgs);
 
     } else if (SliderActions.ACTION_RESOLVE.equals(action)) {
-      bindCoreAction(actionRegistryArgs);
+      bindCoreAction(actionResolveArgs);
 
     } else if (SliderActions.ACTION_STATUS.equals(action)) {
       bindCoreAction(actionStatusArgs);

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
index d2a8936..ef4d69c 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java
@@ -412,10 +412,8 @@ public class SliderAppMaster extends 
AbstractSliderLaunchedService
       log.debug("Authenticating as {}", ugi);
       SliderUtils.verifyPrincipalSet(conf,
           DFSConfigKeys.DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY);
-      // always enforce protocol to be token-based.
-      conf.set(
-        CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION,
-        SaslRpcServer.AuthMethod.TOKEN.toString());
+    } else {
+      log.info("Cluster is insecure");
     }
     log.info("Login user is {}", UserGroupInformation.getLoginUser());
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/CommandTestBase.groovy
----------------------------------------------------------------------
diff --git 
a/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/CommandTestBase.groovy
 
b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/CommandTestBase.groovy
index cfe3006..33e109a 100644
--- 
a/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/CommandTestBase.groovy
+++ 
b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/CommandTestBase.groovy
@@ -167,6 +167,21 @@ abstract class CommandTestBase extends SliderTestUtils {
   }
 
   /**
+   * Print to system out
+   * @param string
+   */
+  static void println(String s) {
+    System.out.println(s)
+  }
+  /**
+   * Print to system out
+   * @param string
+   */
+  static void println() {
+    System.out.println()
+  }
+  
+  /**
    * Exec any slider command
    * @param conf
    * @param commands

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/SliderShell.groovy
----------------------------------------------------------------------
diff --git 
a/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/SliderShell.groovy
 
b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/SliderShell.groovy
index 6effb46..a7fd58c 100644
--- 
a/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/SliderShell.groovy
+++ 
b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/SliderShell.groovy
@@ -144,13 +144,29 @@ class SliderShell extends Shell {
     log.error(toString())
     log.error("return code = ${signCorrectReturnCode()}")
     if (out.size() != 0) {
-      log.info("\n<stdout>\n${out.join('\n')}\n</stdout>");
+      log.info("\n<stdout>\n${stdoutHistory}\n</stdout>");
     }
     if (err.size() != 0) {
-      log.error("\n<stderr>\n${err.join('\n')}\n</stderr>");
+      log.error("\n<stderr>\n${stdErrHistory}\n</stderr>");
     }
   }
-  
+
+  /**
+   * Get the stderr history
+   * @return the history
+   */
+  public String getStdErrHistory() {
+    return err.join('\n')
+  }
+
+  /**
+   * Get the stdout history
+   * @return the history
+   */
+  public String getStdoutHistory() {
+    return out.join('\n')
+  }
+
   /**
    * Assert the shell exited with a given error code
    * if not the output is printed and an assertion is raised
@@ -161,7 +177,6 @@ class SliderShell extends Shell {
       dumpOutput()
       throw new SliderException(ret,
           "Expected exit code of command ${command} : ${errorCode} - 
actual=${ret}")
-      
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c6c5955b/slider-funtest/src/test/groovy/org/apache/slider/funtest/commands/DiagnosticsCommandIT.groovy
----------------------------------------------------------------------
diff --git 
a/slider-funtest/src/test/groovy/org/apache/slider/funtest/commands/DiagnosticsCommandIT.groovy
 
b/slider-funtest/src/test/groovy/org/apache/slider/funtest/commands/DiagnosticsCommandIT.groovy
index 430a75f..1a4ae7a 100644
--- 
a/slider-funtest/src/test/groovy/org/apache/slider/funtest/commands/DiagnosticsCommandIT.groovy
+++ 
b/slider-funtest/src/test/groovy/org/apache/slider/funtest/commands/DiagnosticsCommandIT.groovy
@@ -31,13 +31,17 @@ public class DiagnosticsCommandIT extends CommandTestBase {
 
   @Test
   public void testClientDiagnostics() throws Throwable {
-    slider(0,
+    def shell = slider(0,
         [
             SliderActions.ACTION_DIAGNOSTIC,
             Arguments.ARG_CLIENT,
             Arguments.ARG_VERBOSE
         ]
     )
+    println(shell.stdoutHistory)
+    println()
+    println(shell.stdErrHistory)
+    
   }
 
 }

Reply via email to