From 4669d7d0be3addcca57397d44be69aa278db10da Mon Sep 17 00:00:00 2001 From: Xiang Fu Date: Sun, 23 Jan 2022 23:29:34 -0800 Subject: [PATCH] Adding a config file to override quickstart configs --- .../apache/pinot/tools/EmptyQuickstart.java | 5 ---- .../apache/pinot/tools/GenericQuickstart.java | 18 +++++++++-- .../pinot/tools/GitHubEventsQuickstart.java | 30 ++++++++++++++++--- .../apache/pinot/tools/HybridQuickstart.java | 2 +- .../apache/pinot/tools/JoinQuickStart.java | 3 +- .../pinot/tools/JsonIndexQuickStart.java | 3 +- .../OfflineComplexTypeHandlingQuickStart.java | 3 +- .../pinot/tools/PartialUpsertQuickStart.java | 12 ++++++-- .../apache/pinot/tools/QuickStartBase.java | 20 +++++++++++++ .../org/apache/pinot/tools/Quickstart.java | 5 ---- ...RealtimeComplexTypeHandlingQuickStart.java | 3 +- .../tools/RealtimeJsonIndexQuickStart.java | 3 +- .../pinot/tools/RealtimeQuickStart.java | 3 +- .../tools/RealtimeQuickStartWithMinion.java | 5 ++-- .../pinot/tools/UpsertJsonQuickStart.java | 3 +- .../apache/pinot/tools/UpsertQuickStart.java | 3 +- .../GitHubEventsQuickStartCommand.java | 2 +- .../admin/command/QuickStartCommand.java | 8 +++++ .../tools/admin/command/QuickstartRunner.java | 5 ++-- 19 files changed, 102 insertions(+), 34 deletions(-) diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/EmptyQuickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/EmptyQuickstart.java index 150ae58bf08b..08586ed5d5d1 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/EmptyQuickstart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/EmptyQuickstart.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; import org.apache.pinot.tools.admin.PinotAdministrator; import org.apache.pinot.tools.admin.command.QuickstartRunner; @@ -37,10 +36,6 @@ public String getAuthToken() { return null; } - public Map getConfigOverrides() { - return null; - } - public void execute() throws Exception { File quickstartTmpDir = new File(_dataDir.getAbsolutePath()); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/GenericQuickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/GenericQuickstart.java index 536dad4bdf18..400e58a2a268 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/GenericQuickstart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/GenericQuickstart.java @@ -22,6 +22,8 @@ import com.google.common.collect.Lists; import java.io.File; import java.net.URL; +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.stream.StreamDataProvider; @@ -33,7 +35,6 @@ import org.slf4j.LoggerFactory; import static org.apache.pinot.tools.Quickstart.prettyPrintResponse; -import static org.apache.pinot.tools.Quickstart.printStatus; /** @@ -48,7 +49,7 @@ * ingestion_job_spec.json * */ -public class GenericQuickstart { +public class GenericQuickstart extends QuickStartBase { private static final Logger LOGGER = LoggerFactory.getLogger(GenericQuickstart.class); private final File _schemaFile; private final File _tableConfigFile; @@ -57,6 +58,11 @@ public class GenericQuickstart { private StreamDataServerStartable _kafkaStarter; private ZkStarter.ZookeeperInstance _zookeeperInstance; + public GenericQuickstart() { + this(GenericQuickstart.class.getClassLoader().getResource("examples/batch/starbucksStores").getPath(), + "starbucksStores"); + } + public GenericQuickstart(String tableDirectoryPath, String tableName) { _tableDirectory = new File(tableDirectoryPath); _tableName = tableName; @@ -80,13 +86,19 @@ private void startKafka() { _kafkaStarter.createTopic("pullRequestMergedEvents", KafkaStarterUtils.getTopicCreationProps(2)); } + @Override + public List types() { + return Arrays.asList("GENERIC"); + } + public void execute() throws Exception { File tempDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis())); Preconditions.checkState(tempDir.mkdirs()); QuickstartTableRequest request = new QuickstartTableRequest(_tableDirectory.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, tempDir); + final QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, tempDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); startKafka(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/GitHubEventsQuickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/GitHubEventsQuickstart.java index a2e5615ddd6c..e8495b19083a 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/GitHubEventsQuickstart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/GitHubEventsQuickstart.java @@ -22,6 +22,8 @@ import com.google.common.collect.Lists; import java.io.File; import java.net.URL; +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.stream.StreamDataProvider; @@ -34,7 +36,6 @@ import org.slf4j.LoggerFactory; import static org.apache.pinot.tools.Quickstart.prettyPrintResponse; -import static org.apache.pinot.tools.Quickstart.printStatus; /** @@ -43,10 +44,14 @@ * Creates a realtime table pullRequestMergedEvents * Starts the {@link PullRequestMergedEventsStream} to publish pullRequestMergedEvents into the topic */ -public class GitHubEventsQuickstart { +public class GitHubEventsQuickstart extends QuickStartBase { private static final Logger LOGGER = LoggerFactory.getLogger(GitHubEventsQuickstart.class); private StreamDataServerStartable _kafkaStarter; private ZkStarter.ZookeeperInstance _zookeeperInstance; + private String _personalAccessToken; + + public GitHubEventsQuickstart() { + } private void startKafka() { _zookeeperInstance = ZkStarter.startLocalZkServer(); @@ -60,7 +65,7 @@ private void startKafka() { _kafkaStarter.createTopic("pullRequestMergedEvents", KafkaStarterUtils.getTopicCreationProps(2)); } - public void execute(String personalAccessToken) + private void execute(String personalAccessToken) throws Exception { final File quickStartDataDir = new File(new File("githubEvents-" + System.currentTimeMillis()), "pullRequestMergedEvents"); @@ -84,7 +89,8 @@ public void execute(String personalAccessToken) File tempDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis())); Preconditions.checkState(tempDir.mkdirs()); QuickstartTableRequest request = new QuickstartTableRequest(quickStartDataDir.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, tempDir); + final QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, tempDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); startKafka(); @@ -149,4 +155,20 @@ public void execute(String personalAccessToken) printStatus(Color.GREEN, "You can always go to http://localhost:9000 to play around in the query console"); } + + @Override + public List types() { + return Arrays.asList("GITHUB-EVENTS", "GITHUB_EVENTS"); + } + + @Override + public void execute() + throws Exception { + execute(_personalAccessToken); + } + + public GitHubEventsQuickstart setPersonalAccessToken(String personalAccessToken) { + _personalAccessToken = personalAccessToken; + return this; + } } 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 45893af5c9d7..7c738a40c5d3 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 @@ -115,7 +115,7 @@ public void execute() Preconditions.checkState(dataDir.mkdirs()); QuickstartTableRequest bootstrapTableRequest = prepareTableRequest(baseDir); final QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(bootstrapTableRequest), - 1, 1, 1, 0, dataDir); + 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.YELLOW, "***** Starting Kafka *****"); startKafka(); printStatus(Color.YELLOW, "***** Starting airline data stream and publishing to Kafka *****"); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java index f4d9ea7469bb..3270b6699f98 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/JoinQuickStart.java @@ -80,7 +80,8 @@ public void execute() File tempDir = new File(quickstartTmpDir, "tmp"); FileUtils.forceMkdir(tempDir); - QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request, dimTableRequest), 1, 1, 3, 0, tempDir); + QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request, dimTableRequest), 1, 1, 3, 0, tempDir, getConfigOverrides()); printStatus(Quickstart.Color.CYAN, "***** Starting Zookeeper, controller, broker and server *****"); runner.startAll(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java index 36ba63d6ff76..80ec6d4b80ea 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/JsonIndexQuickStart.java @@ -63,7 +63,8 @@ public void execute() FileUtils.copyURLToFile(resource, ingestionJobSpecFile); QuickstartTableRequest request = new QuickstartTableRequest(baseDir.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Collections.singletonList(request), 1, 1, 1, 0, dataDir); + final QuickstartRunner runner = + new QuickstartRunner(Collections.singletonList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Zookeeper, controller, broker and server *****"); runner.startAll(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java index ed3eb618b2f3..69f07b6805e2 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/OfflineComplexTypeHandlingQuickStart.java @@ -65,7 +65,8 @@ public void execute() FileUtils.copyURLToFile(resource, ingestionJobSpecFile); QuickstartTableRequest request = new QuickstartTableRequest(baseDir.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Collections.singletonList(request), 1, 1, 1, 0, dataDir); + final QuickstartRunner runner = + new QuickstartRunner(Collections.singletonList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Zookeeper, controller, broker and server *****"); runner.startAll(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/PartialUpsertQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/PartialUpsertQuickStart.java index 16159017c5eb..c23f4c8f23aa 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/PartialUpsertQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/PartialUpsertQuickStart.java @@ -22,6 +22,8 @@ import com.google.common.collect.Lists; import java.io.File; import java.net.URL; +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; @@ -36,7 +38,7 @@ import static org.apache.pinot.tools.Quickstart.printStatus; -public class PartialUpsertQuickStart { +public class PartialUpsertQuickStart extends QuickStartBase { private StreamDataServerStartable _kafkaStarter; public static void main(String[] args) @@ -45,6 +47,11 @@ public static void main(String[] args) new PartialUpsertQuickStart().execute(); } + @Override + public List types() { + return Arrays.asList("PARTIAL-UPSERT", "PARTIAL_UPSERT"); + } + // Todo: add a quick start demo public void execute() throws Exception { @@ -66,7 +73,8 @@ public void execute() FileUtils.copyURLToFile(resource, tableConfigFile); QuickstartTableRequest request = new QuickstartTableRequest(bootstrapTableDir.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir); + final QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); final ZkStarter.ZookeeperInstance zookeeperInstance = ZkStarter.startLocalZkServer(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java b/pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java index 6b2686ab821c..0fdb5286c03f 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/QuickStartBase.java @@ -18,15 +18,21 @@ */ package org.apache.pinot.tools; +import com.google.common.collect.ImmutableMap; import java.io.File; import java.util.List; +import java.util.Map; +import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.pinot.tools.admin.command.QuickstartRunner; +import org.apache.pinot.tools.utils.PinotConfigUtils; public abstract class QuickStartBase { protected File _dataDir = FileUtils.getTempDirectory(); protected String _zkExternalAddress; + protected String _configFilePath; public QuickStartBase setDataDir(String dataDir) { _dataDir = new File(dataDir); @@ -38,6 +44,11 @@ public QuickStartBase setZkExternalAddress(String zkExternalAddress) { return this; } + public QuickStartBase setConfigFilePath(String configFilePath) { + _configFilePath = configFilePath; + return this; + } + public abstract List types(); protected void waitForBootstrapToComplete(QuickstartRunner runner) @@ -53,4 +64,13 @@ public static void printStatus(Quickstart.Color color, String message) { public abstract void execute() throws Exception; + + protected Map getConfigOverrides() { + try { + return StringUtils.isEmpty(_configFilePath) ? ImmutableMap.of() + : PinotConfigUtils.readConfigFromFile(_configFilePath); + } catch (ConfigurationException e) { + throw new RuntimeException(e); + } + } } 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 886085a82d67..a8efabc04a7b 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 @@ -26,7 +26,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.pinot.tools.admin.PinotAdministrator; import org.apache.pinot.tools.admin.command.QuickstartRunner; @@ -67,10 +66,6 @@ public String getAuthToken() { return null; } - public Map getConfigOverrides() { - return null; - } - public static String prettyPrintResponse(JsonNode response) { StringBuilder responseBuilder = new StringBuilder(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java index 3e45e9d10d79..c07004653a9a 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeComplexTypeHandlingQuickStart.java @@ -74,7 +74,8 @@ public void execute() FileUtils.copyURLToFile(resource, tableConfigFile); QuickstartTableRequest request = new QuickstartTableRequest(baseDir.getAbsolutePath()); - QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir); + QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); ZkStarter.ZookeeperInstance zookeeperInstance = ZkStarter.startLocalZkServer(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java index 758222d4e0f1..3875543ef0cc 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeJsonIndexQuickStart.java @@ -73,7 +73,8 @@ public void execute() FileUtils.copyURLToFile(resource, tableConfigFile); QuickstartTableRequest request = new QuickstartTableRequest(baseDir.getAbsolutePath()); - QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir); + QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); ZkStarter.ZookeeperInstance zookeeperInstance = ZkStarter.startLocalZkServer(); 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 bcceaf8901a0..975eeb310b29 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 @@ -73,7 +73,8 @@ public void execute() FileUtils.copyURLToFile(resource, tableConfigFile); QuickstartTableRequest request = new QuickstartTableRequest(baseDir.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir); + final QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); final ZkStarter.ZookeeperInstance zookeeperInstance = ZkStarter.startLocalZkServer(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStartWithMinion.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStartWithMinion.java index c1240334c067..6809e659c435 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStartWithMinion.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStartWithMinion.java @@ -25,7 +25,6 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; @@ -64,8 +63,8 @@ public static void main(String[] args) } public Map getConfigOverrides() { - Map properties = new HashMap<>(); - properties.put("controller.task.scheduler.enabled", true); + Map properties = super.getConfigOverrides(); + properties.putIfAbsent("controller.task.scheduler.enabled", true); return properties; } diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertJsonQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertJsonQuickStart.java index 1cfe36837892..7a86ee87cca9 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertJsonQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertJsonQuickStart.java @@ -73,7 +73,8 @@ public void execute() FileUtils.copyURLToFile(resource, tableConfigFile); QuickstartTableRequest request = new QuickstartTableRequest(baseDir.getAbsolutePath()); - QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir); + QuickstartRunner runner = + new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); ZkStarter.ZookeeperInstance zookeeperInstance = ZkStarter.startLocalZkServer(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java index a80ea92aa9b6..e17de70c0979 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/UpsertQuickStart.java @@ -74,7 +74,8 @@ public void execute() FileUtils.copyURLToFile(resource, tableConfigFile); QuickstartTableRequest request = new QuickstartTableRequest(bootstrapTableDir.getAbsolutePath()); - final QuickstartRunner runner = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir); + final QuickstartRunner runner + = new QuickstartRunner(Lists.newArrayList(request), 1, 1, 1, 0, dataDir, getConfigOverrides()); printStatus(Color.CYAN, "***** Starting Kafka *****"); final ZkStarter.ZookeeperInstance zookeeperInstance = ZkStarter.startLocalZkServer(); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/GitHubEventsQuickStartCommand.java b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/GitHubEventsQuickStartCommand.java index fb4f51d06065..578f94daf19d 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/GitHubEventsQuickStartCommand.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/GitHubEventsQuickStartCommand.java @@ -68,7 +68,7 @@ public String description() { public boolean execute() throws Exception { PluginManager.get().init(); - new GitHubEventsQuickstart().execute(_personalAccessToken); + new GitHubEventsQuickstart().setPersonalAccessToken(_personalAccessToken).execute(); return true; } } 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 43927a4d399f..6a79d4db8888 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 @@ -47,6 +47,10 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma description = "URL for an external Zookeeper instance instead of using the default embedded instance") private String _zkExternalAddress; + @CommandLine.Option(names = {"-configFile", "-configFilePath"}, required = false, + description = "Config file path to override default pinot configs") + private String _configFilePath; + @CommandLine.Option(names = {"-help", "-h", "--h", "--help"}, required = false, description = "Print this message.") private boolean _help = false; @@ -130,6 +134,10 @@ public boolean execute() throws Exception { quickstart.setZkExternalAddress(_zkExternalAddress); } + if (_configFilePath != null) { + quickstart.setConfigFilePath(_configFilePath); + } + quickstart.execute(); return true; } diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickstartRunner.java b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickstartRunner.java index 7387e42c177d..ebcd095cb318 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickstartRunner.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickstartRunner.java @@ -85,9 +85,10 @@ public class QuickstartRunner { private boolean _isStopped = false; public QuickstartRunner(List tableRequests, int numControllers, int numBrokers, - int numServers, int numMinions, File tempDir) + int numServers, int numMinions, File tempDir, Map configOverrides) throws Exception { - this(tableRequests, numControllers, numBrokers, numServers, numMinions, tempDir, true, null, null, null, true); + this(tableRequests, numControllers, numBrokers, numServers, numMinions, tempDir, true, null, configOverrides, null, + true); } public QuickstartRunner(List tableRequests, int numControllers, int numBrokers,