This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.3.1
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.3.1 by this push:
new ebc4acef5 Feature bml refresh api support force parameter (#3895)
ebc4acef5 is described below
commit ebc4acef5b5ab53e0330b277fe70c6940d0a92c8
Author: Casion <[email protected]>
AuthorDate: Fri Nov 25 21:21:23 2022 +0800
Feature bml refresh api support force parameter (#3895)
* update bml engineplugin api
* update bml engineplugin api
* format code
---
.../server/restful/EnginePluginRestful.java | 32 +++++++-----
.../service/DefaultEngineConnResourceService.scala | 57 +++++++++++++---------
.../server/service/EngineConnResourceService.scala | 10 +++-
3 files changed, 62 insertions(+), 37 deletions(-)
diff --git
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
index ab2b280a7..ab37d77b2 100644
---
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
+++
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
@@ -27,6 +27,8 @@ import org.apache.linkis.engineplugin.vo.EnginePluginBMLVo;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.utils.ModuleUserUtils;
+import org.apache.commons.lang3.StringUtils;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -157,11 +159,13 @@ public class EnginePluginRestful {
@RequestParam("file") MultipartFile file,
@RequestParam(value = "ecType") String ecType,
@RequestParam(value = "version") String version,
+ @RequestParam(value = "force", required = false, defaultValue = "false")
Boolean force,
HttpServletRequest req) {
- if (ecType.isEmpty() || ecType.length() == 0 || ecType.equals("null")) {
- return Message.error("ecType is not null");
- } else if (version.isEmpty() || version.length() == 0 ||
version.equals("null")) {
- return Message.error("version is not null");
+
+ if (StringUtils.isNotBlank(ecType)) {
+ return Message.error("ecType cannot be null");
+ } else if (StringUtils.isNotBlank(version)) {
+ return Message.error("version cannot be null");
}
file.getOriginalFilename().toLowerCase().endsWith(".zip");
if (file.getOriginalFilename().toLowerCase().endsWith(".zip")) {
@@ -174,17 +178,17 @@ public class EnginePluginRestful {
new RefreshEngineConnResourceRequest();
refreshEngineConnResourceRequest.setEngineConnType(ecType);
refreshEngineConnResourceRequest.setVersion(version);
- engineConnResourceService.refresh(refreshEngineConnResourceRequest);
+ engineConnResourceService.refresh(refreshEngineConnResourceRequest,
force);
} catch (Exception e) {
return Message.error(e.getMessage());
}
log.info("{} finished to update enginePlugin {} {}", username, ecType,
version);
- return Message.ok().data("mes", "upload file success");
+ return Message.ok().data("msg", "upload file success");
} else {
return Message.error("Only administrators can operate");
}
} else {
- return Message.error("Only suppose zip format file");
+ return Message.error("Only support zip format file");
}
}
@@ -231,7 +235,7 @@ public class EnginePluginRestful {
} catch (Exception e) {
return Message.error(e.getMessage());
}
- engineConnResourceService.refreshAll(true);
+ engineConnResourceService.refreshAll(true, false);
log.info("{} finished to upload enginePlugin", username);
return Message.ok().data("mes", "upload file success");
} else {
@@ -271,11 +275,13 @@ public class EnginePluginRestful {
notes = "refresh all engineconn resource",
response = Message.class)
@RequestMapping(path = "/refreshAll", method = RequestMethod.GET)
- public Message refreshAll(HttpServletRequest req) {
+ public Message refreshAll(
+ HttpServletRequest req,
+ @RequestParam(value = "force", required = false, defaultValue = "false")
Boolean force) {
String username = ModuleUserUtils.getOperationUser(req, "refreshAll");
if (Configuration.isAdmin(username)) {
log.info("{} start to refresh all ec resource", username);
- engineConnResourceService.refreshAll(true);
+ engineConnResourceService.refreshAll(true, force);
log.info("{} finished to refresh all ec resource", username);
return Message.ok().data("msg", "Refresh successfully");
} else {
@@ -291,7 +297,8 @@ public class EnginePluginRestful {
public Message refreshOne(
HttpServletRequest req,
@RequestParam(value = "ecType") String ecType,
- @RequestParam(value = "version", required = false) String version) {
+ @RequestParam(value = "version", required = false) String version,
+ @RequestParam(value = "force", required = false, defaultValue = "false")
Boolean force) {
String username = ModuleUserUtils.getOperationUser(req, "refreshOne");
if (Configuration.isAdmin(username)) {
log.info("{} start to refresh {} ec resource", username, ecType);
@@ -299,7 +306,8 @@ public class EnginePluginRestful {
new RefreshEngineConnResourceRequest();
refreshEngineConnResourceRequest.setEngineConnType(ecType);
refreshEngineConnResourceRequest.setVersion(version);
- engineConnResourceService.refresh(refreshEngineConnResourceRequest);
+
+ engineConnResourceService.refresh(refreshEngineConnResourceRequest,
force);
log.info("{} finished to refresh {} ec resource", username, ecType);
return Message.ok().data("msg", "Refresh successfully");
} else {
diff --git
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
index 63988fac5..3c2c88ea1 100644
---
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
+++
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
@@ -95,7 +95,7 @@ class DefaultEngineConnResourceService extends
EngineConnResourceService with Lo
bmlResource
}
- override def refreshAll(iswait: Boolean = false): Unit = {
+ override def refreshAll(iswait: Boolean = false, force: Boolean = false):
Unit = {
if (!isRefreshing) {
synchronized {
if (!isRefreshing) {
@@ -110,7 +110,7 @@ class DefaultEngineConnResourceService extends
EngineConnResourceService with Lo
engineConnBmlResourceGenerator.generate(engineConnType).foreach {
case (version, localize) =>
logger.info(s" Try to initialize
${engineConnType}EngineConn-$version.")
- refresh(localize, engineConnType, version)
+ refresh(localize, engineConnType, version, force)
}
} { t =>
if (
@@ -144,19 +144,22 @@ class DefaultEngineConnResourceService extends
EngineConnResourceService with Lo
}
@Receiver
- override def refresh(engineConnRefreshRequest:
RefreshEngineConnResourceRequest): Boolean = {
+ override def refresh(
+ engineConnRefreshRequest: RefreshEngineConnResourceRequest,
+ force: Boolean
+ ): Boolean = {
val engineConnType = engineConnRefreshRequest.getEngineConnType
val version = engineConnRefreshRequest.getVersion
if ("*" == version || StringUtils.isEmpty(version)) {
logger.info(s"Try to refresh all versions of
${engineConnType}EngineConn.")
engineConnBmlResourceGenerator.generate(engineConnType).foreach { case
(v, localize) =>
logger.info(s"Try to refresh ${engineConnType}EngineConn-$v.")
- refresh(localize, engineConnType, v)
+ refresh(localize, engineConnType, v, force)
}
} else {
logger.info(s"Try to refresh ${engineConnType}EngineConn-$version.")
val localize = engineConnBmlResourceGenerator.generate(engineConnType,
version)
- refresh(localize, engineConnType, version)
+ refresh(localize, engineConnType, version, force)
}
true
}
@@ -164,7 +167,8 @@ class DefaultEngineConnResourceService extends
EngineConnResourceService with Lo
private def refresh(
localize: Array[EngineConnLocalizeResource],
engineConnType: String,
- version: String
+ version: String,
+ force: Boolean = false
): Unit = {
val engineConnBmlResources = asScalaBufferConverter(
engineConnBmlResourceDao.getAllEngineConnBmlResource(engineConnType,
version)
@@ -198,25 +202,32 @@ class DefaultEngineConnResourceService extends
EngineConnResourceService with Lo
engineConnBmlResource.setLastModified(localizeResource.lastModified)
engineConnBmlResource.setVersion(version)
engineConnBmlResourceDao.save(engineConnBmlResource)
- } else if (
- resource.exists(r =>
- r.getFileSize != localizeResource.fileSize || r.getLastModified !=
localizeResource.lastModified
- )
- ) {
- logger.info(
- s"Ready to upload a refreshed bmlResource for
${engineConnType}EngineConn-$version. path: " + localizeResource.fileName
- )
- val engineConnBmlResource = resource.get
- val bmlResource = uploadToBml(localizeResource,
engineConnBmlResource.getBmlResourceId)
- engineConnBmlResource.setBmlResourceVersion(bmlResource.getVersion)
- engineConnBmlResource.setLastUpdateTime(new Date)
- engineConnBmlResource.setFileSize(localizeResource.fileSize)
- engineConnBmlResource.setLastModified(localizeResource.lastModified)
- engineConnBmlResourceDao.update(engineConnBmlResource)
} else {
- logger.info(
- s"The file has no change in ${engineConnType}EngineConn-$version,
path: " + localizeResource.fileName
+ var isChanged = resource.exists(r =>
+ r.getFileSize != localizeResource.fileSize
+ || r.getLastModified != localizeResource.lastModified
)
+ if (isChanged == true || (isChanged == false && force == true)) {
+ if (isChanged == false && force == true) {
+ logger.info(
+ s"The file has no change in
${engineConnType}EngineConn-$version, path: " + localizeResource.fileName + ",
but force to refresh"
+ )
+ }
+ logger.info(
+ s"Ready to upload a refreshed bmlResource for
${engineConnType}EngineConn-$version. path: " + localizeResource.fileName
+ )
+ val engineConnBmlResource = resource.get
+ val bmlResource = uploadToBml(localizeResource,
engineConnBmlResource.getBmlResourceId)
+ engineConnBmlResource.setBmlResourceVersion(bmlResource.getVersion)
+ engineConnBmlResource.setLastUpdateTime(new Date)
+ engineConnBmlResource.setFileSize(localizeResource.fileSize)
+ engineConnBmlResource.setLastModified(localizeResource.lastModified)
+ engineConnBmlResourceDao.update(engineConnBmlResource)
+ } else {
+ logger.info(
+ s"The file has no change in ${engineConnType}EngineConn-$version,
path: " + localizeResource.fileName
+ )
+ }
}
}
}
diff --git
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
index 65fe60686..47042d357 100644
---
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
+++
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
@@ -28,9 +28,9 @@ abstract class EngineConnResourceService extends
EngineConnResourceGenerator {
def init(): Unit
- def refreshAll(wait: Boolean): Unit
+ def refreshAll(wait: Boolean, force: Boolean = false): Unit
- def refresh(engineConnRefreshRequest: RefreshEngineConnResourceRequest):
Boolean
+ def refresh(engineConnRefreshRequest: RefreshEngineConnResourceRequest,
force: Boolean): Boolean
def getEngineConnBMLResources(
engineConnBMLResourceRequest: GetEngineConnResourceRequest
@@ -50,6 +50,8 @@ abstract class EngineConnResourceRequest extends
RequestProtocol with RequestMet
private var engineConnType: String = _
private var version: String = _
+ private var force: Boolean = false
+
def getEngineConnType: String = engineConnType
def setEngineConnType(engineConnType: String): Unit = this.engineConnType =
engineConnType
@@ -57,6 +59,10 @@ abstract class EngineConnResourceRequest extends
RequestProtocol with RequestMet
def getVersion: String = version
def setVersion(version: String): Unit = this.version = version
+
+ def getForce: Boolean = force
+
+ def setForce(force: Boolean): Unit = this.force = force
}
class RefreshEngineConnResourceRequest extends EngineConnResourceRequest {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]