This is an automated email from the ASF dual-hosted git repository.

xiangfu pushed a commit to branch enhance_quickstart
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit 7504fbce9828b82448ec45bdf728a43c5fdee010
Author: Xiang Fu <fx19880...@gmail.com>
AuthorDate: Mon May 25 21:15:18 2020 -0700

    Update Quickstart to take tmp dir as a parameter and default to current dir
---
 .../org/apache/pinot/tools/HybridQuickstart.java   | 21 +++++++++++-----
 .../java/org/apache/pinot/tools/Quickstart.java    | 18 +++++++++++---
 .../org/apache/pinot/tools/RealtimeQuickStart.java | 18 +++++++++++---
 .../tools/admin/command/QuickStartCommand.java     | 29 +++++++++++++++++++---
 4 files changed, 71 insertions(+), 15 deletions(-)

diff --git 
a/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java 
b/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java
index 3c55441..4fc2809 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java
@@ -23,6 +23,9 @@ import com.google.common.collect.Lists;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.commons.io.FileUtils;
 import org.apache.pinot.common.utils.ZkStarter;
 import org.apache.pinot.spi.config.table.TableConfig;
@@ -33,6 +36,7 @@ import org.apache.pinot.spi.stream.StreamDataProvider;
 import org.apache.pinot.spi.stream.StreamDataServerStartable;
 import org.apache.pinot.spi.utils.JsonUtils;
 import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
 import org.apache.pinot.tools.admin.command.QuickstartRunner;
 import org.apache.pinot.tools.streams.AirlineDataStream;
 import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -48,13 +52,19 @@ public class HybridQuickstart {
   private File _realtimeTableConfigFile;
   private File _dataFile;
   private File _ingestionJobSpecFile;
+  private File _tmpDir = new File(HybridQuickstart.class.getName());
 
   public static void main(String[] args)
       throws Exception {
-    // TODO: Explicitly call below method to load dependencies from 
pinot-plugins libs which are excluded from pinot-tools packaging.
-    // E.g. Kafka related libs are coming from pinot-kafka-* lib, avro libs 
are coming from pinot-avro lib.
-    PluginManager.get().init();
-    new HybridQuickstart().execute();
+    List<String> arguments = new ArrayList<>();
+    arguments.addAll(Arrays.asList("QuickStart", "-type", "HYBRID"));
+    arguments.addAll(Arrays.asList(args));
+    PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
+  }
+
+  public HybridQuickstart setTmpDir(String tmpDir) {
+    this._tmpDir = new File(tmpDir);
+    return this;
   }
 
   private QuickstartTableRequest prepareOfflineTableRequest(File configDir)
@@ -110,8 +120,7 @@ public class HybridQuickstart {
 
   public void execute()
       throws Exception {
-
-    File quickstartTmpDir = new File(FileUtils.getTempDirectory(), 
String.valueOf(System.currentTimeMillis()));
+    File quickstartTmpDir = new File(_tmpDir, 
String.valueOf(System.currentTimeMillis()));
     File configDir = new File(quickstartTmpDir, "configs");
     File dataDir = new File(quickstartTmpDir, "data");
     Preconditions.checkState(configDir.mkdirs());
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java 
b/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java
index 3c0b0d1..ec671a0 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java
@@ -23,9 +23,13 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import java.io.File;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.commons.io.FileUtils;
 import org.apache.pinot.spi.data.readers.FileFormat;
 import org.apache.pinot.spi.plugin.PluginManager;
+import org.apache.pinot.tools.admin.PinotAdministrator;
 import org.apache.pinot.tools.admin.command.QuickstartRunner;
 
 
@@ -33,6 +37,12 @@ public class Quickstart {
 
   private static final String TAB = "\t\t";
   private static final String NEW_LINE = "\n";
+  private File _tmpDir = new File(Quickstart.class.getName());;
+
+  public Quickstart setTmpDir(String tmpDir) {
+    this._tmpDir = new File(tmpDir);
+    return this;
+  }
 
   public enum Color {
     RESET("\u001B[0m"), GREEN("\u001B[32m"), YELLOW("\u001B[33m"), 
CYAN("\u001B[36m");
@@ -115,7 +125,7 @@ public class Quickstart {
 
   public void execute()
       throws Exception {
-    File quickstartTmpDir = new File(FileUtils.getTempDirectory(), 
String.valueOf(System.currentTimeMillis()));
+    File quickstartTmpDir = new File(_tmpDir, 
String.valueOf(System.currentTimeMillis()));
     File configDir = new File(quickstartTmpDir, "configs");
     File dataDir = new File(quickstartTmpDir, "data");
     Preconditions.checkState(configDir.mkdirs());
@@ -203,7 +213,9 @@ public class Quickstart {
 
   public static void main(String[] args)
       throws Exception {
-    PluginManager.get().init();
-    new Quickstart().execute();
+    List<String> arguments = new ArrayList<>();
+    arguments.addAll(Arrays.asList("QuickStart", "-type", "BATCH"));
+    arguments.addAll(Arrays.asList(args));
+    PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
   }
 }
diff --git 
a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java 
b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java
index 275abc6..161b968 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java
@@ -22,12 +22,16 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import java.io.File;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import org.apache.commons.io.FileUtils;
 import org.apache.pinot.common.utils.ZkStarter;
 import org.apache.pinot.spi.plugin.PluginManager;
 import org.apache.pinot.spi.stream.StreamDataProvider;
 import org.apache.pinot.spi.stream.StreamDataServerStartable;
 import org.apache.pinot.tools.Quickstart.Color;
+import org.apache.pinot.tools.admin.PinotAdministrator;
 import org.apache.pinot.tools.admin.command.QuickstartRunner;
 import org.apache.pinot.tools.streams.MeetupRsvpStream;
 import org.apache.pinot.tools.utils.KafkaStarterUtils;
@@ -38,16 +42,24 @@ import static org.apache.pinot.tools.Quickstart.printStatus;
 
 public class RealtimeQuickStart {
   private StreamDataServerStartable _kafkaStarter;
+  private File _tmpDir = new File(RealtimeQuickStart.class.getName());
 
   public static void main(String[] args)
       throws Exception {
-    PluginManager.get().init();
-    new RealtimeQuickStart().execute();
+    List<String> arguments = new ArrayList<>();
+    arguments.addAll(Arrays.asList("QuickStart", "-type", "REALTIME"));
+    arguments.addAll(Arrays.asList(args));
+    PinotAdministrator.main(arguments.toArray(new String[arguments.size()]));
+  }
+
+  public RealtimeQuickStart setTmpDir(String tmpDir) {
+    this._tmpDir = new File(tmpDir);
+    return this;
   }
 
   public void execute()
       throws Exception {
-    File quickstartTmpDir = new File(FileUtils.getTempDirectory(), 
String.valueOf(System.currentTimeMillis()));
+    File quickstartTmpDir = new File(_tmpDir, 
String.valueOf(System.currentTimeMillis()));
     File configDir = new File(quickstartTmpDir, "configs");
     File dataDir = new File(quickstartTmpDir, "data");
     Preconditions.checkState(configDir.mkdirs());
diff --git 
a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
 
b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
index 141f442..1dd67d9 100644
--- 
a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
+++ 
b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java
@@ -34,6 +34,9 @@ public class QuickStartCommand extends 
AbstractBaseAdminCommand implements Comma
   @Option(name = "-type", required = false, metaVar = "<String>", usage = 
"Type of quickstart, supported: STREAM/BATCH/HYBRID")
   private String _type;
 
+  @Option(name = "-tmpDir", required = false, metaVar = "<String>", usage = 
"Temp Directory to host quickstart data")
+  private String _tmpDir;
+
   @Option(name = "-help", required = false, help = true, aliases = {"-h", 
"--h", "--help"}, usage = "Print this message.")
   private boolean _help = false;
 
@@ -52,6 +55,14 @@ public class QuickStartCommand extends 
AbstractBaseAdminCommand implements Comma
     return this;
   }
 
+  public String getTmpDir() {
+    return _tmpDir;
+  }
+
+  public void setTmpDir(String tmpDir) {
+    _tmpDir = tmpDir;
+  }
+
   @Override
   public String toString() {
     return ("QuickStart -type " + _type);
@@ -74,14 +85,26 @@ public class QuickStartCommand extends 
AbstractBaseAdminCommand implements Comma
     switch (_type.toUpperCase()) {
       case "OFFLINE":
       case "BATCH":
-        new Quickstart().execute();
+        Quickstart quickstart = new Quickstart();
+        if (_tmpDir != null) {
+          quickstart.setTmpDir(_tmpDir);
+        }
+        quickstart.execute();
         break;
       case "REALTIME":
       case "STREAM":
-        new RealtimeQuickStart().execute();
+        RealtimeQuickStart realtimeQuickStart = new RealtimeQuickStart();
+        if (_tmpDir != null) {
+          realtimeQuickStart.setTmpDir(_tmpDir);
+        }
+        realtimeQuickStart.execute();
         break;
       case "HYBRID":
-        new HybridQuickstart().execute();
+        HybridQuickstart hybridQuickstart = new HybridQuickstart();
+        if (_tmpDir != null) {
+          hybridQuickstart.setTmpDir(_tmpDir);
+        }
+        hybridQuickstart.execute();
         break;
       default:
         throw new UnsupportedOperationException("Unsupported QuickStart type: 
" + _type);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to