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

feiwang 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 42570cfd5 [KYUUBI #6379] Return engine name and engine url within 
KyuubiSessionEvent/SessionData
42570cfd5 is described below

commit 42570cfd5b5ddfc4dfb6855d65baadeaf07baeb6
Author: Wang, Fei <[email protected]>
AuthorDate: Thu May 9 14:10:31 2024 -0700

    [KYUUBI #6379] Return engine name and engine url within 
KyuubiSessionEvent/SessionData
    
    # :mag: Description
    ## Issue References ๐Ÿ”—
    
    In this pr, engineName and engineUrl will return within 
KyuubiSessionEvent/SessionData, these information are helpful to get the 
session info straight forward.
    
    ## Types of changes :bookmark:
    
    - [ ] Bugfix (non-breaking change which fixes an issue)
    - [ ] New feature (non-breaking change which adds functionality)
    - [ ] Breaking change (fix or feature that would cause existing 
functionality to change)
    
    ## Test Plan ๐Ÿงช
    
    #### Behavior Without This Pull Request :coffin:
    
    #### Behavior With This Pull Request :tada:
    
    #### Related Unit Tests
    
    ---
    
    # Checklist ๐Ÿ“
    
    - [x] This patch was not authored or co-authored using [Generative 
Tooling](https://www.apache.org/legal/generative-tooling.html)
    
    **Be nice. Be informative.**
    
    Closes #6379 from turboFei/app_name_session_event.
    
    Closes #6379
    
    f9c4b0dfe [Wang, Fei] refine
    15b4cfc9d [Wang, Fei] engine info
    4662878e6 [Wang, Fei] id name url
    9e1d72b9c [Wang, Fei] id name url
    
    Authored-by: Wang, Fei <[email protected]>
    Signed-off-by: Wang, Fei <[email protected]>
---
 .../client/api/v1/dto/KyuubiSessionEvent.java      | 40 ++++++++++++++++++++++
 .../kyuubi/client/api/v1/dto/SessionData.java      | 22 ++++++++++++
 .../apache/kyuubi/events/KyuubiSessionEvent.scala  |  2 ++
 .../kyuubi/operation/BatchJobSubmission.scala      | 12 +++++--
 .../org/apache/kyuubi/server/api/ApiUtils.scala    |  4 +++
 .../apache/kyuubi/session/KyuubiSessionImpl.scala  |  2 ++
 6 files changed, 80 insertions(+), 2 deletions(-)

diff --git 
a/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/KyuubiSessionEvent.java
 
b/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/KyuubiSessionEvent.java
index 34d306fed..4ec189452 100644
--- 
a/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/KyuubiSessionEvent.java
+++ 
b/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/KyuubiSessionEvent.java
@@ -33,6 +33,10 @@ public class KyuubiSessionEvent {
 
   private String engineId;
 
+  private String engineName;
+
+  private String engineUrl;
+
   private String user;
 
   private String clientIp;
@@ -62,6 +66,8 @@ public class KyuubiSessionEvent {
       String sessionName,
       String remoteSessionId,
       String engineId,
+      String engineName,
+      String engineUrl,
       String user,
       String clientIp,
       String serverIp,
@@ -78,6 +84,8 @@ public class KyuubiSessionEvent {
     this.sessionName = sessionName;
     this.remoteSessionId = remoteSessionId;
     this.engineId = engineId;
+    this.engineName = engineName;
+    this.engineUrl = engineUrl;
     this.user = user;
     this.clientIp = clientIp;
     this.serverIp = serverIp;
@@ -107,6 +115,10 @@ public class KyuubiSessionEvent {
 
     private String engineId;
 
+    private String engineName;
+
+    private String engineUrl;
+
     private String user;
 
     private String clientIp;
@@ -160,6 +172,16 @@ public class KyuubiSessionEvent {
       return this;
     }
 
+    public KyuubiSessionEvent.KyuubiSessionEventBuilder engineName(final 
String engineName) {
+      this.engineName = engineName;
+      return this;
+    }
+
+    public KyuubiSessionEvent.KyuubiSessionEventBuilder engineUrl(final String 
engineUrl) {
+      this.engineUrl = engineUrl;
+      return this;
+    }
+
     public KyuubiSessionEvent.KyuubiSessionEventBuilder user(final String 
user) {
       this.user = user;
       return this;
@@ -218,6 +240,8 @@ public class KyuubiSessionEvent {
           sessionName,
           remoteSessionId,
           engineId,
+          engineName,
+          engineUrl,
           user,
           clientIp,
           serverIp,
@@ -279,6 +303,22 @@ public class KyuubiSessionEvent {
     this.engineId = engineId;
   }
 
+  public String getEngineName() {
+    return engineName;
+  }
+
+  public void setEngineName(String engineName) {
+    this.engineName = engineName;
+  }
+
+  public String getEngineUrl() {
+    return engineUrl;
+  }
+
+  public void setEngineUrl(String engineUrl) {
+    this.engineUrl = engineUrl;
+  }
+
   public String getUser() {
     return user;
   }
diff --git 
a/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/SessionData.java
 
b/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/SessionData.java
index a1bc90a56..7906adef5 100644
--- 
a/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/SessionData.java
+++ 
b/kyuubi-rest-client/src/main/java/org/apache/kyuubi/client/api/v1/dto/SessionData.java
@@ -36,6 +36,8 @@ public class SessionData {
   private String sessionType;
   private String kyuubiInstance;
   private String engineId;
+  private String engineName;
+  private String engineUrl;
   private String sessionName;
   private Integer totalOperations;
 
@@ -54,6 +56,8 @@ public class SessionData {
       String sessionType,
       String kyuubiInstance,
       String engineId,
+      String engineName,
+      String engineUrl,
       String sessionName,
       Integer totalOperations) {
     this.identifier = identifier;
@@ -68,6 +72,8 @@ public class SessionData {
     this.sessionType = sessionType;
     this.kyuubiInstance = kyuubiInstance;
     this.engineId = engineId;
+    this.engineName = engineName;
+    this.engineUrl = engineUrl;
     this.sessionName = sessionName;
     this.totalOperations = totalOperations;
   }
@@ -171,6 +177,22 @@ public class SessionData {
     this.engineId = engineId;
   }
 
+  public String getEngineName() {
+    return engineName;
+  }
+
+  public void setEngineName(String engineName) {
+    this.engineName = engineName;
+  }
+
+  public String getEngineUrl() {
+    return engineUrl;
+  }
+
+  public void setEngineUrl(String engineUrl) {
+    this.engineUrl = engineUrl;
+  }
+
   public String getSessionName() {
     return sessionName;
   }
diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/events/KyuubiSessionEvent.scala
 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/events/KyuubiSessionEvent.scala
index 821017b29..e2841d752 100644
--- 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/events/KyuubiSessionEvent.scala
+++ 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/events/KyuubiSessionEvent.scala
@@ -52,6 +52,8 @@ case class KyuubiSessionEvent(
     startTime: Long,
     var remoteSessionId: String = "",
     var engineId: String = "",
+    var engineName: String = "",
+    var engineUrl: String = "",
     var openedTime: Long = -1L,
     var endTime: Long = -1L,
     var totalOperations: Int = 0,
diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/operation/BatchJobSubmission.scala
 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/operation/BatchJobSubmission.scala
index c29065f19..2c90058db 100644
--- 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/operation/BatchJobSubmission.scala
+++ 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/operation/BatchJobSubmission.scala
@@ -165,8 +165,16 @@ class BatchJobSubmission(
   private def setStateIfNotCanceled(newState: OperationState): Unit = 
withLockRequired {
     if (state != CANCELED) {
       setState(newState)
-      applicationId(_applicationInfo).foreach { appId =>
-        session.getSessionEvent.foreach(_.engineId = appId)
+      _applicationInfo.foreach { app =>
+        Option(app.id).filter(_.nonEmpty).foreach { appId =>
+          session.getSessionEvent.foreach(_.engineId = appId)
+        }
+        Option(app.name).filter(_.nonEmpty).foreach { appName =>
+          session.getSessionEvent.foreach(_.engineName = appName)
+        }
+        app.url.filter(_.nonEmpty).foreach { appUrl =>
+          session.getSessionEvent.foreach(_.engineUrl = appUrl)
+        }
       }
       if (newState == RUNNING) {
         session.onEngineOpened()
diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/ApiUtils.scala 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/ApiUtils.scala
index ccd3ebe93..d7d1727c5 100644
--- a/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/ApiUtils.scala
+++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/server/api/ApiUtils.scala
@@ -41,6 +41,8 @@ object ApiUtils extends Logging {
         .conf(event.conf.asJava)
         .remoteSessionId(event.remoteSessionId)
         .engineId(event.engineId)
+        .engineName(event.engineName)
+        .engineUrl(event.engineUrl)
         .eventTime(event.eventTime)
         .openedTime(event.openedTime)
         .startTime(event.startTime)
@@ -65,6 +67,8 @@ object ApiUtils extends Logging {
       session.sessionType.toString,
       session.connectionUrl,
       sessionEvent.map(_.engineId).getOrElse(""),
+      sessionEvent.map(_.engineName).getOrElse(""),
+      sessionEvent.map(_.engineUrl).getOrElse(""),
       session.name.getOrElse(""),
       sessionEvent.map(_.totalOperations).getOrElse(0): Int)
   }
diff --git 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
index c0634455f..3351da5c5 100644
--- 
a/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
+++ 
b/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionImpl.scala
@@ -222,6 +222,8 @@ class KyuubiSessionImpl(
         sessionEvent.openedTime = System.currentTimeMillis()
         sessionEvent.remoteSessionId = _engineSessionHandle.identifier.toString
         _client.engineId.foreach(e => sessionEvent.engineId = e)
+        _client.engineName.foreach(e => sessionEvent.engineName = e)
+        _client.engineUrl.foreach(e => sessionEvent.engineUrl = e)
         EventBus.post(sessionEvent)
       }
     }

Reply via email to