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

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


The following commit(s) were added to refs/heads/master by this push:
     new 58a4f58a1 [KYUUBI #3420][SPARK] Expose UI url on registering engine 
service
58a4f58a1 is described below

commit 58a4f58a1f47e14ff8f73c8c0b874ccb54ac21b7
Author: zwangsheng <[email protected]>
AuthorDate: Thu Mar 16 22:11:11 2023 +0800

    [KYUUBI #3420][SPARK] Expose UI url on registering engine service
    
    ### _Why are the changes needed?_
    
    see detail in KYUUBI #3436
    
    Splitting it out of a giant PR https://github.com/apache/kyuubi/pull/4002 
to perfect
    
    ### _How was this patch tested?_
    - [x] 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.readthedocs.io/en/master/develop_tools/testing.html#running-tests)
 locally before make a pull request
    
    Closes #4459 from zwangsheng/3420.
    
    Closes #3420
    
    2fd9b3131 [zwangsheng] [KYUUBI #3420]Fouce on spark web ui
    3fbee02b7 [zwangsheng] [KYUUBI #3420] With inter config and expose explicit 
conf
    09841d17b [zwangsheng] [KYUUBI #3420] Fix style
    b47c3e5d1 [zwangsheng] [KYUUBI #3420] Fix unit test
    b3ab3e23b [zwangsheng] [KYUUBI #3420] Expose more spark engine info
    69292abf4 [zwangsheng] [KYUUBI #3420] Using common test case
    cf889b09b [zwangsheng] [KYUUBI #3420] Fix unit test
    1a0ac582f [zwangsheng] [KYUUBI #3420] Fix style
    daf41de2d [zwangsheng] [KYUUBI #4453] Add etcd test
    ab1038369 [zwangsheng] [KYUUBI #3420 Add Spark Web UI Url in zk node]
    
    Authored-by: zwangsheng <[email protected]>
    Signed-off-by: Cheng Pan <[email protected]>
---
 .../engine/spark/SparkTBinaryFrontendService.scala |  8 +++-
 .../engine/spark/SparkEngineRegisterSuite.scala    | 50 ++++++++++++++++++++++
 2 files changed, 57 insertions(+), 1 deletion(-)

diff --git 
a/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
 
b/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
index d4eaf3454..49cb9b3ef 100644
--- 
a/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
+++ 
b/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/SparkTBinaryFrontendService.scala
@@ -94,7 +94,13 @@ class SparkTBinaryFrontendService(
   }
 
   override def attributes: Map[String, String] = {
-    Map(KYUUBI_ENGINE_ID -> KyuubiSparkUtil.engineId)
+    val attributes = Map(
+      KYUUBI_ENGINE_ID -> KyuubiSparkUtil.engineId)
+    // TODO Support Spark Web UI Enabled SSL
+    sc.uiWebUrl match {
+      case Some(url) => attributes ++ Map(KYUUBI_ENGINE_URL -> 
url.split("//").last)
+      case None => attributes
+    }
   }
 }
 
diff --git 
a/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/SparkEngineRegisterSuite.scala
 
b/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/SparkEngineRegisterSuite.scala
new file mode 100644
index 000000000..8c636af76
--- /dev/null
+++ 
b/externals/kyuubi-spark-sql-engine/src/test/scala/org/apache/kyuubi/engine/spark/SparkEngineRegisterSuite.scala
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.kyuubi.engine.spark
+
+import java.util.UUID
+
+import org.apache.kyuubi.config.KyuubiReservedKeys.{KYUUBI_ENGINE_ID, 
KYUUBI_ENGINE_URL}
+
+trait SparkEngineRegisterSuite extends WithDiscoverySparkSQLEngine {
+
+  override def withKyuubiConf: Map[String, String] =
+    super.withKyuubiConf ++ Map("spark.ui.enabled" -> "true")
+
+  override val namespace: String = 
s"/kyuubi/deregister_test/${UUID.randomUUID.toString}"
+
+  test("Spark Engine Register Zookeeper with spark ui info") {
+    withDiscoveryClient(client => {
+      val info = client.getChildren(namespace).head.split(";")
+      assert(info.exists(_.startsWith(KYUUBI_ENGINE_ID)))
+      assert(info.exists(_.startsWith(KYUUBI_ENGINE_URL)))
+    })
+  }
+}
+
+class ZookeeperSparkEngineRegisterSuite extends SparkEngineRegisterSuite
+  with WithEmbeddedZookeeper {
+
+  override def withKyuubiConf: Map[String, String] =
+    super.withKyuubiConf ++ zookeeperConf
+}
+
+class EtcdSparkEngineRegisterSuite extends SparkEngineRegisterSuite
+  with WithEtcdCluster {
+  override def withKyuubiConf: Map[String, String] = super.withKyuubiConf ++ 
etcdConf
+}

Reply via email to