Skip to content

Commit 0b0700b

Browse files
committed
app
1 parent 726e557 commit 0b0700b

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

kyuubi-server/src/main/scala/org/apache/kyuubi/engine/KubernetesApplicationOperation.scala

+7-2
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,13 @@ class KubernetesApplicationOperation extends ApplicationOperation with Logging {
252252
try {
253253
// need to initialize the kubernetes client if not exists
254254
getOrCreateKubernetesClient(appMgrInfo.kubernetesInfo)
255-
val (_, appInfo) =
256-
appInfoStore.getOrDefault(tag, appMgrInfo.kubernetesInfo -> ApplicationInfo.NOT_FOUND)
255+
val appInfo = appInfoStore.get(tag) match {
256+
case (_, info) => info
257+
case _ =>
258+
// try to get the application info from kubernetes metadata
259+
metadataManager.flatMap(
260+
_.getKubernetesApplicationInfo(tag)).getOrElse(ApplicationInfo.NOT_FOUND)
261+
}
257262
(appInfo.state, submitTime) match {
258263
// Kyuubi should wait second if pod is not be created
259264
case (NOT_FOUND, Some(_submitTime)) =>

kyuubi-server/src/main/scala/org/apache/kyuubi/server/metadata/MetadataManager.scala

+14
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.apache.kyuubi.{KyuubiException, Logging}
2626
import org.apache.kyuubi.client.api.v1.dto.Batch
2727
import org.apache.kyuubi.config.KyuubiConf
2828
import org.apache.kyuubi.config.KyuubiConf.METADATA_MAX_AGE
29+
import org.apache.kyuubi.engine.{ApplicationInfo, ApplicationState}
2930
import org.apache.kyuubi.metrics.{MetricsConstants, MetricsSystem}
3031
import org.apache.kyuubi.operation.OperationState
3132
import org.apache.kyuubi.server.metadata.api.{KubernetesMetadata, Metadata, MetadataFilter}
@@ -134,6 +135,11 @@ class MetadataManager extends AbstractService("MetadataManager") {
134135
.filter(_.sessionType == SessionType.BATCH)
135136
}
136137

138+
def getKubernetesApplicationInfo(identifier: String): Option[ApplicationInfo] = {
139+
Option(withMetadataRequestMetrics(
140+
_metadataStore.getKubernetesMetadata(identifier))).map(buildApplicationInfo)
141+
}
142+
137143
def getBatches(
138144
filter: MetadataFilter,
139145
from: Int,
@@ -374,4 +380,12 @@ object MetadataManager extends Logging {
374380
batchMetadata.endTime,
375381
Map.empty[String, String].asJava)
376382
}
383+
384+
def buildApplicationInfo(metadata: KubernetesMetadata): ApplicationInfo = {
385+
ApplicationInfo(
386+
id = metadata.appId,
387+
name = metadata.podName,
388+
state = ApplicationState.withName(metadata.appState),
389+
error = metadata.appError)
390+
}
377391
}

kyuubi-server/src/main/scala/org/apache/kyuubi/server/metadata/jdbc/JDBCMetadataStore.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ class JDBCMetadataStore(conf: KyuubiConf) extends MetadataStore with Logging {
432432
|app_error,
433433
|create_time
434434
|)
435-
|VALUES(?, ?, ?, ?, ?, ?, ?)
435+
|VALUES(?, ?, ?, ?, ?, ?, ?, ?)
436436
|WHERE NOT EXISTS (
437437
| SELECT 1 FROM $KUBERNETES_METADATA_TABLE WHERE identifier = ?
438438
|)

0 commit comments

Comments
 (0)