Repository: kylin
Updated Branches:
  refs/heads/master abe590a20 -> 21e6b2bdb


KYLIN-1602 Simply diagnosis tool interface


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

Branch: refs/heads/master
Commit: 21e6b2bdbe9c1762642589a0d374aff0e225b43e
Parents: abe590a
Author: lidongsjtu <lid...@apache.org>
Authored: Thu Apr 21 18:45:48 2016 +0800
Committer: lidongsjtu <lid...@apache.org>
Committed: Thu Apr 21 18:45:53 2016 +0800

----------------------------------------------------------------------
 build/bin/kylin.sh                              | 20 ++++++++++++++
 .../org/apache/kylin/tool/DiagnosisInfoCLI.java | 28 +++++++++++++-------
 2 files changed, 39 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/21e6b2bd/build/bin/kylin.sh
----------------------------------------------------------------------
diff --git a/build/bin/kylin.sh b/build/bin/kylin.sh
index 336c2f1..af90e4c 100644
--- a/build/bin/kylin.sh
+++ b/build/bin/kylin.sh
@@ -199,6 +199,26 @@ then
     exec hbase ${KYLIN_EXTRA_START_OPTS} 
-Dlog4j.configuration=kylin-log4j.properties 
org.apache.kylin.common.KylinVersion
     exit 0
 
+elif [ "$1" = "diag" ]
+then
+    project="$2"
+    if [ -n "$project" ]
+    then
+        echo "You need to specify a project for diagnosis."
+        exit 1
+    fi
+
+    destDir="$3"
+    if [ -n "$destDir" ]
+    then
+        $destDir="$KYLIN_HOME/diagnosis_dump/"
+        mkdir -p $destDir
+    fi
+
+    export HBASE_CLASSPATH=${KYLIN_HOME}/lib/*
+    exec hbase ${KYLIN_EXTRA_START_OPTS} 
-Dlog4j.configuration=kylin-log4j.properties 
org.apache.kylin.tool.DiagnosisInfoCLI -project $project -destDir $destDir
+    exit 0
+
 # tool command
 elif [[ "$1" = org.apache.kylin.* ]]
 then

http://git-wip-us.apache.org/repos/asf/kylin/blob/21e6b2bd/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 de9b6f0..d4257c5 100644
--- a/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
+++ b/tool/src/main/java/org/apache/kylin/tool/DiagnosisInfoCLI.java
@@ -101,9 +101,11 @@ public class DiagnosisInfoCLI extends AbstractApplication {
         }
 
         // create new folder to contain the output
+        String packageName = "diagnosis_" + new 
SimpleDateFormat("YYYY_MM_dd_HH_mm_ss").format(new Date());
         if (new File(exportDest).exists()) {
-            exportDest = exportDest + "diagnosis_" + new 
SimpleDateFormat("YYYY_MM_dd_HH_mm_ss").format(new Date()) + "/";
+            exportDest = exportDest + packageName + "/";
         }
+        File exportDir = new File(exportDest);
 
         // export cube metadata
         String[] cubeMetaArgs = { "-destDir", exportDest + "metadata", 
"-project", project };
@@ -126,7 +128,7 @@ public class DiagnosisInfoCLI extends AbstractApplication {
 
             final String logFolder = KylinConfig.getKylinHome() + "/logs/";
             final String defaultLogFilename = "kylin.log";
-            final File logsDir = new File(exportDest + "logs/");
+            final File logsDir = new File(exportDir, "logs");
             final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 
             FileUtils.forceMkdir(logsDir);
@@ -152,7 +154,7 @@ public class DiagnosisInfoCLI extends AbstractApplication {
         if (includeConf) {
             logger.info("Start to extract kylin conf files.");
             try {
-                FileUtils.copyDirectoryToDirectory(new File(getConfFolder()), 
new File(exportDest));
+                FileUtils.copyDirectoryToDirectory(new File(getConfFolder()), 
exportDir);
             } catch (Exception e) {
                 logger.warn("Error in export conf.", e);
             }
@@ -160,7 +162,7 @@ public class DiagnosisInfoCLI extends AbstractApplication {
 
         // export commit id
         try {
-            FileUtils.copyFileToDirectory(new File(KylinConfig.getKylinHome(), 
"commit_SHA1"), new File(exportDest));
+            FileUtils.copyFileToDirectory(new File(KylinConfig.getKylinHome(), 
"commit_SHA1"), exportDir);
         } catch (Exception e) {
             logger.warn("Error in export commit id.", e);
         }
@@ -168,12 +170,20 @@ public class DiagnosisInfoCLI extends AbstractApplication 
{
         // compress to zip package
         if (compress) {
             File tempZipFile = File.createTempFile("diagnosis_", ".zip");
-            ZipFileUtils.compressZipFile(exportDest, 
tempZipFile.getAbsolutePath());
-            FileUtils.forceDelete(new File(exportDest));
-            FileUtils.moveFileToDirectory(tempZipFile, new File(exportDest), 
true);
-            exportDest = exportDest + tempZipFile.getName();
+            ZipFileUtils.compressZipFile(exportDir.getAbsolutePath(), 
tempZipFile.getAbsolutePath());
+            FileUtils.cleanDirectory(exportDir);
+
+            File zipFile = new File(exportDir, packageName + ".zip");
+            FileUtils.moveFile(tempZipFile, zipFile);
+            exportDest = zipFile.getAbsolutePath();
+            exportDir = new File(exportDest);
         }
-        logger.info("Diagnosis info locates at: " + new 
File(exportDest).getAbsolutePath());
+
+        StringBuffer output = new StringBuffer();
+        output.append("\n========================================");
+        output.append("\nDiagnosis package locates at: \n" + 
exportDir.getAbsolutePath());
+        output.append("\n========================================");
+        logger.info(output.toString());
     }
 
     public String getExportDest() {

Reply via email to