From 22b2bfe17de5d6be30882629679501ec72720e7b Mon Sep 17 00:00:00 2001 From: kobe860219 Date: Tue, 11 Aug 2020 20:52:37 +0800 Subject: [PATCH 01/10] SUBMARINE-598. Support get environment list from database --- .vscode/tasks.json | 61 +++++++++++++++++++ .../environment/EnvironmentManager.java | 27 +++++++- .../database/mappers/EnvironmentMapper.java | 4 ++ .../database/mappers/EnvironmentMapper.xml | 7 +++ 4 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 .vscode/tasks.json diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..c375c4446 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,61 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Checking releases for licenses", + "type": "shell", + "command": "mvn clean org.apache.rat:apache-rat-plugin:check", + "group": "test" + }, + { + "label": "build all", + "type": "shell", + "command": "mvn clean install package -DskipTests -pl '!submarine-cloud'", + "group": "test" + }, + { + "label": "server-core", + "type": "shell", + "command": "mvn clean install package -DskipTests -pl 'submarine-server/server-core';cp submarine-server/server-core/target/submarine-server-core-0.5.0-SNAPSHOT.jar submarine-dist/target/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/lib/;", + + "group":"test" + }, + { + "label": "server-api", + "type": "shell", + "command": "mvn clean install package -DskipTests -pl 'submarine-server/server-api';cp submarine-server/server-api/target/submarine-server-api-0.5.0-SNAPSHOT.jar submarine-dist/target/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/lib/;", + + "group": "test" + }, + { + "label": "submarine-server", + "type": "shell", + "command": "", + "dependsOrder": "sequence", + "dependsOn": [ + "server-api", + "server-core" + ], + "group": "test" + }, + { + "label": "start getMysqlJar", + "type": "shell", + "command": "cd submarine-dist/target/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/;rm logs/submarine.log;bin/submarine-daemon.sh start getMysqlJar;cd ~/submarine;", + "group": "test" + }, + { + "label": "restart", + "type": "shell", + "command": "bash", + "args": ["cd submarine-dist/target/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/submarine-dist-0.5.0-SNAPSHOT-hadoop-2.9/;rm logs/submarine.log;bin/submarine-daemon.sh restart;cd ~/submarine;"], + "group":"test" + }, + { + "label": "rebase", + "type": "shell", + "command": "git fetch upstream;git checkout master;git rebase upstream/master", + "group":"test" + } + ] +} \ No newline at end of file diff --git a/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/EnvironmentManager.java b/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/EnvironmentManager.java index eb238a5b9..500117846 100644 --- a/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/EnvironmentManager.java +++ b/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/EnvironmentManager.java @@ -204,9 +204,32 @@ public Environment getEnvironment(String name) */ public List listEnvironments(String status) throws SubmarineRuntimeException { - List environmentList = + List envs = new ArrayList(cachedEnvironments.values()); - return environmentList; + // Is it available in cache? + if (envs != null && envs.size() != 0) { + return envs; + } + try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) { + EnvironmentMapper environmentMapper = + sqlSession.getMapper(EnvironmentMapper.class); + List environmentEntitys = environmentMapper.selectAll(); + for (EnvironmentEntity environmentEntity: environmentEntitys) { + if (environmentEntity != null) { + Environment env = new Environment(); + + env.setEnvironmentSpec(new Gson().fromJson( + environmentEntity.getEnvironmentSpec(), EnvironmentSpec.class)); + envs.add(env); + cachedEnvironments.put(env.getEnvironmentSpec().getName(), env); + } + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + throw new SubmarineRuntimeException(Status.BAD_REQUEST.getStatusCode(), + "Unable to get the environment details."); + } + return envs; } private void checkSpec(EnvironmentSpec spec) diff --git a/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/database/mappers/EnvironmentMapper.java b/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/database/mappers/EnvironmentMapper.java index eddea3266..43b1a3c4a 100644 --- a/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/database/mappers/EnvironmentMapper.java +++ b/submarine-server/server-core/src/main/java/org/apache/submarine/server/environment/database/mappers/EnvironmentMapper.java @@ -20,8 +20,12 @@ import org.apache.submarine.server.environment.database.entity.EnvironmentEntity; +import java.util.List; + public interface EnvironmentMapper { + List selectAll(); + EnvironmentEntity select(String environmentName); int insert(EnvironmentEntity environment); diff --git a/submarine-server/server-core/src/main/resources/org/apache/submarine/database/mappers/EnvironmentMapper.xml b/submarine-server/server-core/src/main/resources/org/apache/submarine/database/mappers/EnvironmentMapper.xml index 0efce7dda..58996f90f 100644 --- a/submarine-server/server-core/src/main/resources/org/apache/submarine/database/mappers/EnvironmentMapper.xml +++ b/submarine-server/server-core/src/main/resources/org/apache/submarine/database/mappers/EnvironmentMapper.xml @@ -36,6 +36,13 @@ id, environment_name, environment_spec, create_by, create_time, update_by, update_time + +