You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/06/10 15:31:19 UTC

kylin git commit: KYLIN-1741 Enhance diagnosis tool

Repository: kylin
Updated Branches:
  refs/heads/master b044ed770 -> 2d80bac7b


KYLIN-1741 Enhance diagnosis tool


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/2d80bac7
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/2d80bac7
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/2d80bac7

Branch: refs/heads/master
Commit: 2d80bac7b51e7326b0645613a983274a85145535
Parents: b044ed7
Author: lidongsjtu <li...@apache.org>
Authored: Fri Jun 10 23:30:38 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Fri Jun 10 23:30:38 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/tool/DiagnosisInfoCLI.java | 47 ++++++++++++++------
 .../org/apache/kylin/tool/util/ToolUtil.java    |  2 +-
 2 files changed, 35 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/2d80bac7/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java b/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
index 7e85c17..ab845fb 100644
--- a/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
+++ b/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
@@ -21,15 +21,21 @@ package org.apache.kylin.tool;
 import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.io.FileUtils;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.OptionsHelper;
+import org.apache.kylin.metadata.project.ProjectInstance;
+import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.tool.util.ToolUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.collect.Lists;
+
 public class DiagnosisInfoCLI extends AbstractInfoExtractor {
     private static final Logger logger = LoggerFactory.getLogger(DiagnosisInfoCLI.class);
 
@@ -61,25 +67,40 @@ public class DiagnosisInfoCLI extends AbstractInfoExtractor {
         diagnosisInfoCLI.execute(args);
     }
 
+    private List<String> getProjects(String projectSeed) {
+        List<String> result = Lists.newLinkedList();
+        if (projectSeed.equalsIgnoreCase("-all")) {
+            ProjectManager projectManager = ProjectManager.getInstance(KylinConfig.getInstanceFromEnv());
+            for (ProjectInstance projectInstance : projectManager.listAllProjects()) {
+                result.add(projectInstance.getName());
+            }
+        } else {
+            result.add(projectSeed);
+        }
+        return result;
+    }
+
     @Override
     protected void executeExtract(OptionsHelper optionsHelper, File exportDir) throws IOException {
-        final String project = optionsHelper.getOptionValue(options.getOption("project"));
+        final String projectInput = optionsHelper.getOptionValue(options.getOption("project"));
         boolean includeConf = optionsHelper.hasOption(OPTION_INCLUDE_CONF) ? Boolean.valueOf(optionsHelper.getOptionValue(OPTION_INCLUDE_CONF)) : true;
         boolean includeHBase = optionsHelper.hasOption(OPTION_INCLUDE_HBASE) ? Boolean.valueOf(optionsHelper.getOptionValue(OPTION_INCLUDE_HBASE)) : true;
         boolean includeClient = optionsHelper.hasOption(OPTION_INCLUDE_CLIENT) ? Boolean.valueOf(optionsHelper.getOptionValue(OPTION_INCLUDE_CLIENT)) : true;
 
-        // export cube metadata
-        String[] cubeMetaArgs = { "-destDir", new File(exportDir, "metadata").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
-        CubeMetaExtractor cubeMetaExtractor = new CubeMetaExtractor();
-        logger.info("CubeMetaExtractor args: " + Arrays.toString(cubeMetaArgs));
-        cubeMetaExtractor.execute(cubeMetaArgs);
-
-        // export HBase
-        if (includeHBase) {
-            String[] hbaseArgs = { "-destDir", new File(exportDir, "hbase").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
-            HBaseUsageExtractor hBaseUsageExtractor = new HBaseUsageExtractor();
-            logger.info("HBaseUsageExtractor args: " + Arrays.toString(hbaseArgs));
-            hBaseUsageExtractor.execute(hbaseArgs);
+        for (String project : getProjects(projectInput)) {
+            // export cube metadata
+            String[] cubeMetaArgs = { "-destDir", new File(exportDir, "metadata").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
+            CubeMetaExtractor cubeMetaExtractor = new CubeMetaExtractor();
+            logger.info("CubeMetaExtractor args: " + Arrays.toString(cubeMetaArgs));
+            cubeMetaExtractor.execute(cubeMetaArgs);
+
+            // export HBase
+            if (includeHBase) {
+                String[] hbaseArgs = { "-destDir", new File(exportDir, "hbase").getAbsolutePath(), "-project", project, "-compress", "false", "-submodule", "true" };
+                HBaseUsageExtractor hBaseUsageExtractor = new HBaseUsageExtractor();
+                logger.info("HBaseUsageExtractor args: " + Arrays.toString(hbaseArgs));
+                hBaseUsageExtractor.execute(hbaseArgs);
+            }
         }
 
         // export conf

http://git-wip-us.apache.org/repos/asf/kylin/blob/2d80bac7/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java b/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
index cbd1be9..a294038 100644
--- a/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
+++ b/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
@@ -46,7 +46,7 @@ public class ToolUtil {
         if (StringUtils.isNotEmpty(path)) {
             return path + File.separator + CONF;
         }
-        return null;
+        throw new RuntimeException("Cannot find conf folder.");
     }
 
     public static String getHBaseMetaStoreId() throws IOException {