You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2023/03/28 13:35:33 UTC

[linkis] branch dev-1.3.2 updated: appcon compatibility (#4420)

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

peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
     new 8d2179123 appcon compatibility (#4420)
8d2179123 is described below

commit 8d2179123065204b8ba4d85a92821d22ed016ce0
Author: Casion <ca...@gmail.com>
AuthorDate: Tue Mar 28 21:35:24 2023 +0800

    appcon compatibility (#4420)
    
    * engine bml resource compatible prefix v format
---
 .../linkis-engineconn-plugin-core-errorcode.md     |  2 +-
 .../linkis/server/security/SecurityFilter.scala    |  6 +++-
 .../errorcode/EngineconnCoreErrorCodeSummary.java  |  2 +-
 .../conf/EngineConnPluginConfiguration.scala       |  4 +++
 .../AbstractEngineConnBmlResourceGenerator.scala   | 35 ++++++++++++++++++----
 .../service/DefaultEngineConnResourceService.scala | 13 ++++++--
 .../rm/service/impl/DefaultResourceManager.scala   |  2 +-
 linkis-web/src/apps/linkis/i18n/common/en.json     |  2 +-
 8 files changed, 53 insertions(+), 13 deletions(-)

diff --git a/docs/errorcode/linkis-engineconn-plugin-core-errorcode.md b/docs/errorcode/linkis-engineconn-plugin-core-errorcode.md
index a929d062d..0fc2521a7 100644
--- a/docs/errorcode/linkis-engineconn-plugin-core-errorcode.md
+++ b/docs/errorcode/linkis-engineconn-plugin-core-errorcode.md
@@ -3,7 +3,7 @@
 | module name(模块名) | error code(错误码)  | describe(描述) |enumeration name(枚举)| Exception Class(类名)|
 | -------- | -------- | ----- |-----|-----|
 |linkis-engineconn-plugin-core |10001|Failed to createEngineConnLaunchRequest(创建 EngineConnLaunchRequest失败)|FAILED_CREATE_ELR|EngineconnCoreErrorCodeSummary|
-|linkis-engineconn-plugin-core |10001|The engine plug-in material is abnormal, please check whether the material is uploaded successfully(引擎插件物料异常,请检查物料是否上传成功)|EN_PLUGIN_MATERIAL_SOURCE_EXCEPTION|EngineconnCoreErrorCodeSummary|
+|linkis-engineconn-plugin-core |10001|The engine plugin material is abnormal, please check whether the material is uploaded successfully(引擎插件物料异常,请检查物料是否上传成功)|EN_PLUGIN_MATERIAL_SOURCE_EXCEPTION|EngineconnCoreErrorCodeSummary|
 |linkis-engineconn-plugin-core |10001|EngineTypeLabel are requested(需要参数 EngineTypeLabel)|ETL_REQUESTED|EngineconnCoreErrorCodeSummary|
 |linkis-engineconn-plugin-core |20000|Cannot instance EngineConnExecution(无法实例化 EngineConnExecution)|CANNOT_INSTANCE_ECE|EngineconnCoreErrorCodeSummary|
 |linkis-engineconn-plugin-core |20000|Cannot find default ExecutorFactory(找不到默认的 ExecutorFactory)|CANNOT_DEFAULT_EF|EngineconnCoreErrorCodeSummary|
diff --git a/linkis-commons/linkis-module/src/main/scala/org/apache/linkis/server/security/SecurityFilter.scala b/linkis-commons/linkis-module/src/main/scala/org/apache/linkis/server/security/SecurityFilter.scala
index 411bda482..5cc796d23 100644
--- a/linkis-commons/linkis-module/src/main/scala/org/apache/linkis/server/security/SecurityFilter.scala
+++ b/linkis-commons/linkis-module/src/main/scala/org/apache/linkis/server/security/SecurityFilter.scala
@@ -199,7 +199,11 @@ object SecurityFilter {
 
   def getLoginUsername(req: HttpServletRequest): String = {
     if (Configuration.IS_TEST_MODE.getValue) {
-      ServerConfiguration.BDP_TEST_USER.getValue;
+      val testUser = ServerConfiguration.BDP_TEST_USER.getValue
+      if (StringUtils.isBlank(testUser)) {
+        throw new IllegalUserTicketException("Need to set test user when enable test module")
+      }
+      testUser
     } else {
       getLoginUser(req).getOrElse(
         throw new IllegalUserTicketException(ILLEGAL_USER_TOKEN.getErrorDesc)
diff --git a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/java/org/apache/linkis/manager/engineplugin/errorcode/EngineconnCoreErrorCodeSummary.java b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/java/org/apache/linkis/manager/engineplugin/errorcode/EngineconnCoreErrorCodeSummary.java
index 1685f4b65..f29b2a6ed 100644
--- a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/java/org/apache/linkis/manager/engineplugin/errorcode/EngineconnCoreErrorCodeSummary.java
+++ b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-core/src/main/java/org/apache/linkis/manager/engineplugin/errorcode/EngineconnCoreErrorCodeSummary.java
@@ -23,7 +23,7 @@ public enum EngineconnCoreErrorCodeSummary implements LinkisErrorCode {
   FAILED_CREATE_ELR(10001, "Failed to createEngineConnLaunchRequest(创建 EngineConnLaunchRequest失败)"),
   EN_PLUGIN_MATERIAL_SOURCE_EXCEPTION(
       10001,
-      "The engine plug-in material is abnormal, please check whether the material is uploaded successfully(引擎插件物料异常,请检查物料是否上传成功)"),
+      "The engine plugin material is abnormal, please check whether the material is uploaded successfully(引擎插件物料异常,请检查物料是否上传成功)"),
   ETL_REQUESTED(10001, "EngineTypeLabel are requested(需要参数 EngineTypeLabel)"),
   CANNOT_INSTANCE_ECE(20000, "Cannot instance EngineConnExecution(无法实例化 EngineConnExecution)"),
 
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/conf/EngineConnPluginConfiguration.scala b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/conf/EngineConnPluginConfiguration.scala
index de1add173..9a16d9b9e 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/conf/EngineConnPluginConfiguration.scala
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/conf/EngineConnPluginConfiguration.scala
@@ -35,4 +35,8 @@ object EngineConnPluginConfiguration {
   val ENABLED_BML_UPLOAD_FAILED_EXIT: CommonVars[Boolean] =
     CommonVars("wds.linkis.engineconn.bml.upload.failed.enable", true)
 
+  // for third party eg appconn/datax, if all update, can set to false then to remove
+  val EC_BML_VERSION_MAY_WITH_PREFIX_V: CommonVars[Boolean] =
+    CommonVars("linkis.engineconn.bml.version.may.with.prefix", true)
+
 }
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/localize/AbstractEngineConnBmlResourceGenerator.scala b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/localize/AbstractEngineConnBmlResourceGenerator.scala
index fce3508c3..c21ee924e 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/localize/AbstractEngineConnBmlResourceGenerator.scala
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/localize/AbstractEngineConnBmlResourceGenerator.scala
@@ -17,6 +17,7 @@
 
 package org.apache.linkis.engineplugin.server.localize
 
+import org.apache.linkis.engineplugin.server.conf.EngineConnPluginConfiguration
 import org.apache.linkis.engineplugin.server.conf.EngineConnPluginConfiguration.ENGINE_CONN_HOME
 import org.apache.linkis.engineplugin.server.localize.EngineConnBmlResourceGenerator.NO_VERSION_MARK
 import org.apache.linkis.manager.engineplugin.common.exception.EngineConnPluginErrorException
@@ -53,13 +54,37 @@ abstract class AbstractEngineConnBmlResourceGenerator extends EngineConnBmlResou
     val engineConnPackageHome = Paths.get(engineConnDistHome, version).toFile.getPath
     logger.info("getEngineConnDistHome, engineConnPackageHome path:" + engineConnPackageHome)
     val engineConnPackageHomeFile = new File(engineConnPackageHome)
+
     if (!engineConnPackageHomeFile.exists()) {
-      throw new EngineConnPluginErrorException(
-        ENGINE_VERSION_NOT_FOUND.getErrorCode,
-        MessageFormat.format(ENGINE_VERSION_NOT_FOUND.getErrorDesc, version, engineConnType)
-      )
+      if (
+          !version.startsWith(
+            "v"
+          ) && EngineConnPluginConfiguration.EC_BML_VERSION_MAY_WITH_PREFIX_V.getValue
+      ) {
+        val versionOld = "v" + version
+        val engineConnPackageHomeOld = Paths.get(engineConnDistHome, versionOld).toFile.getPath
+        logger.info(
+          "try to getEngineConnDistHome with prefix v, engineConnPackageHome path:" + engineConnPackageHomeOld
+        )
+        val engineConnPackageHomeFileOld = new File(engineConnPackageHomeOld)
+        if (!engineConnPackageHomeFileOld.exists()) {
+          throw new EngineConnPluginErrorException(
+            ENGINE_VERSION_NOT_FOUND.getErrorCode,
+            MessageFormat.format(ENGINE_VERSION_NOT_FOUND.getErrorDesc, version, engineConnType)
+          )
+        } else {
+          engineConnPackageHomeOld
+        }
+      } else {
+        throw new EngineConnPluginErrorException(
+          ENGINE_VERSION_NOT_FOUND.getErrorCode,
+          MessageFormat.format(ENGINE_VERSION_NOT_FOUND.getErrorDesc, version, engineConnType)
+        )
+      }
+    } else {
+      engineConnPackageHome
     }
-    engineConnPackageHome
+
   }
 
   private def checkEngineConnDistHome(engineConnPackageHomePath: String): Unit = {
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
index 3ddfdc7bb..55f3b2568 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
@@ -201,8 +201,6 @@ class DefaultEngineConnResourceService extends EngineConnResourceService with Lo
         engineConnBmlResource.setFileName(localizeResource.fileName)
         engineConnBmlResource.setFileSize(localizeResource.fileSize)
         engineConnBmlResource.setLastModified(localizeResource.lastModified)
-        if (version.startsWith("v")) engineConnBmlResource.setVersion(version.substring(1))
-        else engineConnBmlResource.setVersion(version)
         engineConnBmlResource.setVersion(version)
         engineConnBmlResourceDao.save(engineConnBmlResource)
       } else {
@@ -241,9 +239,18 @@ class DefaultEngineConnResourceService extends EngineConnResourceService with Lo
   ): EngineConnResource = {
     val engineConnType = engineConnBMLResourceRequest.getEngineConnType
     val version = engineConnBMLResourceRequest.getVersion
-    val engineConnBmlResources = asScalaBufferConverter(
+    var engineConnBmlResources = asScalaBufferConverter(
       engineConnBmlResourceDao.getAllEngineConnBmlResource(engineConnType, version)
     )
+    if (
+        engineConnBmlResources.asScala.size == 0 && EngineConnPluginConfiguration.EC_BML_VERSION_MAY_WITH_PREFIX_V.getValue
+    ) {
+      logger.info("Try to get engine conn bml resource with prefex v")
+      engineConnBmlResources = asScalaBufferConverter(
+        engineConnBmlResourceDao.getAllEngineConnBmlResource(engineConnType, "v" + version)
+      )
+    }
+
     val confBmlResourceMap = engineConnBmlResources.asScala
       .find(_.getFileName == LaunchConstants.ENGINE_CONN_CONF_DIR_NAME + ".zip")
       .map(parseToBmlResource)
diff --git a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/service/impl/DefaultResourceManager.scala b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/service/impl/DefaultResourceManager.scala
index f1284268b..6145f8bc0 100644
--- a/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/service/impl/DefaultResourceManager.scala
+++ b/linkis-computation-governance/linkis-manager/linkis-application-manager/src/main/scala/org/apache/linkis/manager/rm/service/impl/DefaultResourceManager.scala
@@ -710,7 +710,7 @@ class DefaultResourceManager extends ResourceManager with Logging with Initializ
             var heartbeatMsgMetrics = ""
             Utils.tryAndWarn {
               val oldMetrics = nodeMetricManagerPersistence.getNodeMetrics(ecNode)
-              if (StringUtils.isNotBlank(oldMetrics.getHeartBeatMsg)) {
+              if (oldMetrics != null && StringUtils.isNotBlank(oldMetrics.getHeartBeatMsg)) {
                 heartbeatMsgMetrics = oldMetrics.getHeartBeatMsg
               }
             }
diff --git a/linkis-web/src/apps/linkis/i18n/common/en.json b/linkis-web/src/apps/linkis/i18n/common/en.json
index c6230555f..845b6fe03 100644
--- a/linkis-web/src/apps/linkis/i18n/common/en.json
+++ b/linkis-web/src/apps/linkis/i18n/common/en.json
@@ -629,7 +629,7 @@
         "versionList": "Version List",
         "rollback": "Rollback",
         "checkEngineConnTypeAndVersion": "Please select the engine type and version",
-        "upload": "Please click the button to upload the engine plug-in"
+        "upload": "Please click the button to upload the engine plugin"
       }
     }
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org