Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 48989200B21 for ; Fri, 10 Jun 2016 17:31:21 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 472CE160A38; Fri, 10 Jun 2016 15:31:21 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6C183160A15 for ; Fri, 10 Jun 2016 17:31:20 +0200 (CEST) Received: (qmail 55859 invoked by uid 500); 10 Jun 2016 15:31:19 -0000 Mailing-List: contact commits-help@kylin.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kylin.apache.org Delivered-To: mailing list commits@kylin.apache.org Received: (qmail 55850 invoked by uid 99); 10 Jun 2016 15:31:19 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Jun 2016 15:31:19 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 79B85DFC6C; Fri, 10 Jun 2016 15:31:19 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: lidong@apache.org To: commits@kylin.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: kylin git commit: KYLIN-1741 Enhance diagnosis tool Date: Fri, 10 Jun 2016 15:31:19 +0000 (UTC) archived-at: Fri, 10 Jun 2016 15:31:21 -0000 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 Authored: Fri Jun 10 23:30:38 2016 +0800 Committer: lidongsjtu 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 getProjects(String projectSeed) { + List 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 {