KYLIN-1741 Reload metadata before diagnosis

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

Branch: refs/heads/stream_m1
Commit: 5fd26125b08e080fcc2d4734b665d4a5994e43d4
Parents: b361d8a
Author: lidongsjtu <lid...@apache.org>
Authored: Wed Jun 22 14:16:26 2016 +0800
Committer: lidongsjtu <lid...@apache.org>
Committed: Wed Jun 22 14:16:32 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/tool/KylinLogExtractor.java    | 24 ++++++++++++++++++++
 1 file changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/5fd26125/tool/src/main/java/org/apache/kylin/tool/KylinLogExtractor.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/KylinLogExtractor.java 
b/tool/src/main/java/org/apache/kylin/tool/KylinLogExtractor.java
index 2e270ba..a6d9901 100644
--- a/tool/src/main/java/org/apache/kylin/tool/KylinLogExtractor.java
+++ b/tool/src/main/java/org/apache/kylin/tool/KylinLogExtractor.java
@@ -28,6 +28,10 @@ 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.cube.CubeDescManager;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.metadata.MetadataManager;
+import org.apache.kylin.metadata.project.ProjectManager;
 import org.apache.kylin.tool.util.ToolUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,15 +46,35 @@ public class KylinLogExtractor extends 
AbstractInfoExtractor {
     @SuppressWarnings("static-access")
     private static final Option OPTION_LOG_PERIOD = 
OptionBuilder.withArgName("logPeriod").hasArg().isRequired(false).withDescription("specify
 how many days of kylin logs to extract. Default " + DEFAULT_LOG_PERIOD + 
".").create("logPeriod");
 
+    KylinConfig config;
+
     public KylinLogExtractor() {
         super();
 
         packageType = "logs";
         options.addOption(OPTION_LOG_PERIOD);
+
+        config = KylinConfig.getInstanceFromEnv();
+    }
+
+    private void beforeExtract() {
+        // reload metadata before extract diagnosis info
+        logger.info("Start to reload metadata from diagnosis.");
+
+        CubeManager.clearCache();
+        CubeManager.getInstance(config);
+        CubeDescManager.clearCache();
+        CubeDescManager.getInstance(config);
+        MetadataManager.clearCache();
+        MetadataManager.getInstance(config);
+        ProjectManager.clearCache();
+        ProjectManager.getInstance(config);
     }
 
     @Override
     protected void executeExtract(OptionsHelper optionsHelper, File exportDir) 
throws Exception {
+        beforeExtract();
+
         int logPeriod = optionsHelper.hasOption(OPTION_LOG_PERIOD) ? 
Integer.valueOf(optionsHelper.getOptionValue(OPTION_LOG_PERIOD)) : 
DEFAULT_LOG_PERIOD;
 
         if (logPeriod < 1) {

Reply via email to