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 2022/06/29 11:28:30 UTC

[incubator-linkis] branch dev-1.2.0 updated: [Feature] Automatically create workspace for newly added users (#2368)

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

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


The following commit(s) were added to refs/heads/dev-1.2.0 by this push:
     new 713f4c5d7 [Feature] Automatically create workspace for newly added users (#2368)
713f4c5d7 is described below

commit 713f4c5d7aaec168872df03e70f4e2c06b2f329b
Author: Hunter <53...@users.noreply.github.com>
AuthorDate: Wed Jun 29 19:28:24 2022 +0800

    [Feature] Automatically create workspace for newly added users (#2368)
    
    * [Feature] Automatically create workspace for newly added users
---
 .../linkis/filesystem/conf/WorkSpaceConfiguration.java      |  3 +++
 .../filesystem/exception/WorkspaceExceptionManager.java     |  3 ++-
 .../apache/linkis/filesystem/restful/api/FsRestfulApi.java  | 13 +++++++++++--
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/conf/WorkSpaceConfiguration.java b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/conf/WorkSpaceConfiguration.java
index 4eb870e18..ef3e41e63 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/conf/WorkSpaceConfiguration.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/conf/WorkSpaceConfiguration.java
@@ -55,6 +55,9 @@ public class WorkSpaceConfiguration {
     public static final CommonVars<Boolean> FILESYSTEM_PATH_CHECK_OWNER =
             CommonVars$.MODULE$.apply("wds.linkis.workspace.filesystem.owner.check", false);
 
+    public static final CommonVars<Boolean> FILESYSTEM_PATH_AUTO_CREATE =
+            CommonVars$.MODULE$.apply("linkis.workspace.filesystem.auto.create", false);
+
     public static final ExecutorService executorService =
             new ThreadPoolExecutor(
                     FILESYSTEM_FS_THREAD_NUM.getValue(),
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/exception/WorkspaceExceptionManager.java b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/exception/WorkspaceExceptionManager.java
index e6d27c9e0..4efa2d384 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/exception/WorkspaceExceptionManager.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/exception/WorkspaceExceptionManager.java
@@ -22,7 +22,7 @@ import java.util.Map;
 
 public class WorkspaceExceptionManager {
 
-    private static Map<String, String> desc =
+    private static final Map<String, String> desc =
             new HashMap<String, String>(32) {
                 {
                     put(
@@ -66,6 +66,7 @@ public class WorkspaceExceptionManager {
                     put("80024", "非table类型的结果集不能下载为excel");
                     put("80028", "the path exist special char");
                     put("80029", "empty dir!");
+                    put("80030", "Failed to create user path");
                 }
             };
 
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
index b2e69a5f3..382c28807 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
@@ -104,8 +104,7 @@ public class FsRestfulApi {
         LOGGER.debug("workspacePath:" + workspacePath);
         LOGGER.debug("enginconnPath:" + enginconnPath);
         LOGGER.debug("adminUser:" + WorkSpaceConfiguration.FILESYSTEM_LOG_ADMIN.getValue());
-        return (requestPath.indexOf(workspacePath) > -1)
-                || (requestPath.indexOf(enginconnPath) > -1);
+        return (requestPath.contains(workspacePath)) || (requestPath.contains(enginconnPath));
     }
 
     @RequestMapping(path = "/getUserRootPath", method = RequestMethod.GET)
@@ -130,6 +129,16 @@ public class FsRestfulApi {
         FsPath fsPath = new FsPath(path);
         FileSystem fileSystem = fsService.getFileSystem(userName, fsPath);
         if (!fileSystem.exists(fsPath)) {
+
+            if (FILESYSTEM_PATH_AUTO_CREATE.getValue()) {
+                try {
+                    fileSystem.mkdirs(fsPath);
+                    return Message.ok().data(String.format("user%sRootPath", returnType), path);
+                } catch (IOException e) {
+                    LOGGER.error(e.getMessage(), e);
+                    throw WorkspaceExceptionManager.createException(80030);
+                }
+            }
             throw WorkspaceExceptionManager.createException(80003);
         }
         return Message.ok().data(String.format("user%sRootPath", returnType), path);


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