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

yao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-kyuubi.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f4960cf4 [KYUUBI #2368] [Improvement] Command OptionParser for 
launching Trino Backend Engine
4f4960cf4 is described below

commit 4f4960cf4d1769e3970f3d5bbe548aa05b8d00b5
Author: Min Zhao <[email protected]>
AuthorDate: Tue Apr 19 15:55:57 2022 +0800

    [KYUUBI #2368] [Improvement] Command OptionParser for launching Trino 
Backend Engine
    
    ### _Why are the changes needed?_
    
    Command OptionParser for launching Trino Backend Engine
    ### _How was this patch tested?_
    - [ ] Add some test cases that check the changes thoroughly including 
negative and positive cases if possible
    
    - [ ] Add screenshots for manual tests if appropriate
    
    - [ ] [Run 
test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests)
 locally before make a pull request
    
    Closes #2417 from zhaomin1423/trino_option_parser.
    
    Closes #2368
    
    c644c791 [Min Zhao] [KYUUBI #2368] [Improvement] Command OptionParser for 
launching Trino Backend Engine
    
    Authored-by: Min Zhao <[email protected]>
    Signed-off-by: Kent Yao <[email protected]>
---
 .../kyuubi/engine/trino/TrinoSqlEngine.scala       |  3 ++-
 .../kyuubi/engine/trino/TrinoProcessBuilder.scala  | 23 +++++++++++-----------
 .../engine/trino/TrinoProcessBuilderSuite.scala    |  6 +++++-
 3 files changed, 19 insertions(+), 13 deletions(-)

diff --git 
a/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoSqlEngine.scala
 
b/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoSqlEngine.scala
index d05bc641c..1a2534fb7 100644
--- 
a/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoSqlEngine.scala
+++ 
b/externals/kyuubi-trino-engine/src/main/scala/org/apache/kyuubi/engine/trino/TrinoSqlEngine.scala
@@ -19,7 +19,7 @@ package org.apache.kyuubi.engine.trino
 
 import java.util.concurrent.CountDownLatch
 
-import org.apache.kyuubi.Logging
+import org.apache.kyuubi.{Logging, Utils}
 import org.apache.kyuubi.Utils.TRINO_ENGINE_SHUTDOWN_PRIORITY
 import org.apache.kyuubi.Utils.addShutdownHook
 import org.apache.kyuubi.config.KyuubiConf
@@ -72,6 +72,7 @@ object TrinoSqlEngine extends Logging {
     SignalRegister.registerLogger(logger)
 
     try {
+      Utils.fromCommandLineArgs(args, kyuubiConf)
       kyuubiConf.setIfMissing(KyuubiConf.FRONTEND_THRIFT_BINARY_BIND_PORT, 0)
       kyuubiConf.setIfMissing(HA_ZK_CONN_RETRY_POLICY, 
RetryPolicies.N_TIME.toString)
 
diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilder.scala
 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilder.scala
index cb33f8f40..70cecb8f5 100644
--- 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilder.scala
+++ 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilder.scala
@@ -50,23 +50,12 @@ class TrinoProcessBuilder(
     val buffer = new ArrayBuffer[String]()
     buffer += executable
 
-    // TODO: How shall we deal with proxyUser,
-    // user.name
-    // kyuubi.session.user
-    // or just leave it, because we can handle it at operation layer
-    buffer += s"-D$KYUUBI_SESSION_USER_KEY=$proxyUser"
-
     val memory = conf.get(ENGINE_TRINO_MEMORY)
     buffer += s"-Xmx$memory"
     val javaOptions = conf.get(ENGINE_TRINO_JAVA_OPTIONS)
     if (javaOptions.isDefined) {
       buffer += javaOptions.get
     }
-    // -Xmx5g
-    // java options
-    for ((k, v) <- conf.getAll) {
-      buffer += s"-D$k=$v"
-    }
 
     buffer += "-cp"
     val classpathEntries = new LinkedHashSet[String]
@@ -92,6 +81,18 @@ class TrinoProcessBuilder(
 
     buffer += classpathEntries.asScala.mkString(File.pathSeparator)
     buffer += mainClass
+
+    // TODO: How shall we deal with proxyUser,
+    // user.name
+    // kyuubi.session.user
+    // or just leave it, because we can handle it at operation layer
+    buffer += "--conf"
+    buffer += s"$KYUUBI_SESSION_USER_KEY=$proxyUser"
+
+    for ((k, v) <- conf.getAll) {
+      buffer += "--conf"
+      buffer += s"$k=$v"
+    }
     buffer.toArray
   }
 
diff --git 
a/kyuubi-server/src/test/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilderSuite.scala
 
b/kyuubi-server/src/test/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilderSuite.scala
index 7afc1ed06..2c37c41bc 100644
--- 
a/kyuubi-server/src/test/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilderSuite.scala
+++ 
b/kyuubi-server/src/test/scala/org/apache/kyuubi/engine/trino/TrinoProcessBuilderSuite.scala
@@ -20,6 +20,7 @@ package org.apache.kyuubi.engine.trino
 import org.apache.kyuubi.KyuubiFunSuite
 import org.apache.kyuubi.config.KyuubiConf
 import org.apache.kyuubi.config.KyuubiConf._
+import org.apache.kyuubi.config.KyuubiReservedKeys.KYUUBI_SESSION_USER_KEY
 
 class TrinoProcessBuilderSuite extends KyuubiFunSuite {
 
@@ -30,7 +31,10 @@ class TrinoProcessBuilderSuite extends KyuubiFunSuite {
     val builder = new TrinoProcessBuilder("kyuubi", conf)
     val commands = builder.toString.split("\n")
     assert(commands.head.endsWith("java"))
-    
assert(commands.contains(s"-D${ENGINE_TRINO_CONNECTION_URL.key}=dummy_url"))
+    
assert(builder.toString.contains(s"--conf\n${KYUUBI_SESSION_USER_KEY}=kyuubi"))
+    
assert(builder.toString.contains(s"--conf\n${ENGINE_TRINO_CONNECTION_URL.key}=dummy_url"))
+    assert(builder.toString.contains(
+      s"--conf\n${ENGINE_TRINO_CONNECTION_CATALOG.key}=dummy_catalog"))
   }
 
   test("capture error from trino process builder") {

Reply via email to