From 6589326868fec055728909a2bcb08e0f5d189e13 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Tue, 24 Mar 2020 11:33:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=B5=84=E6=BA=90=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/metersphere/engine/EngineContext.java | 9 +++++++++ .../java/io/metersphere/engine/EngineFactory.java | 3 +++ .../engine/kubernetes/KubernetesTestEngine.java | 12 ++++++++++++ .../io/metersphere/service/TestResourceService.java | 6 ++++++ 4 files changed, 30 insertions(+) diff --git a/backend/src/main/java/io/metersphere/engine/EngineContext.java b/backend/src/main/java/io/metersphere/engine/EngineContext.java index 66482d7e7..2a5f50822 100644 --- a/backend/src/main/java/io/metersphere/engine/EngineContext.java +++ b/backend/src/main/java/io/metersphere/engine/EngineContext.java @@ -9,6 +9,7 @@ public class EngineContext { private String namespace; private String fileType; private String content; + private String resourcePoolId; private Map properties = new HashMap<>(); private Map testData = new HashMap<>(); @@ -67,4 +68,12 @@ public class EngineContext { public void setTestData(Map testData) { this.testData = testData; } + + public String getResourcePoolId() { + return resourcePoolId; + } + + public void setResourcePoolId(String resourcePoolId) { + this.resourcePoolId = resourcePoolId; + } } diff --git a/backend/src/main/java/io/metersphere/engine/EngineFactory.java b/backend/src/main/java/io/metersphere/engine/EngineFactory.java index d3a091f2e..001084b9a 100644 --- a/backend/src/main/java/io/metersphere/engine/EngineFactory.java +++ b/backend/src/main/java/io/metersphere/engine/EngineFactory.java @@ -79,6 +79,9 @@ public class EngineFactory { for (int i = 0; i < jsonArray.size(); i++) { final JSONObject jsonObject = jsonArray.getJSONObject(i); engineContext.addProperty(jsonObject.getString("key"), jsonObject.get("value")); + if (StringUtils.equals(jsonObject.getString("key"), "resourcePoolId")) { + engineContext.setResourcePoolId(jsonObject.getString("value")); + } } } diff --git a/backend/src/main/java/io/metersphere/engine/kubernetes/KubernetesTestEngine.java b/backend/src/main/java/io/metersphere/engine/kubernetes/KubernetesTestEngine.java index ae0304a6c..06f97114c 100644 --- a/backend/src/main/java/io/metersphere/engine/kubernetes/KubernetesTestEngine.java +++ b/backend/src/main/java/io/metersphere/engine/kubernetes/KubernetesTestEngine.java @@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSON; import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.client.KubernetesClient; +import io.metersphere.base.domain.TestResource; +import io.metersphere.base.domain.TestResourcePool; +import io.metersphere.commons.exception.MSException; import io.metersphere.commons.utils.CommonBeanFactory; import io.metersphere.commons.utils.LogUtil; import io.metersphere.engine.Engine; @@ -13,19 +16,23 @@ import io.metersphere.engine.kubernetes.crds.jmeter.JmeterSpec; import io.metersphere.engine.kubernetes.provider.ClientCredential; import io.metersphere.engine.kubernetes.provider.KubernetesProvider; import io.metersphere.service.TestResourcePoolService; +import io.metersphere.service.TestResourceService; import org.apache.commons.collections.MapUtils; import java.util.HashMap; +import java.util.List; public class KubernetesTestEngine implements Engine { private EngineContext context; private TestResourcePoolService testResourcePoolService; + private TestResourceService testResourceService; @Override public boolean init(EngineContext context) { // todo 初始化操作 this.context = context; this.testResourcePoolService = CommonBeanFactory.getBean(TestResourcePoolService.class); + this.testResourceService = CommonBeanFactory.getBean(TestResourceService.class); return true; } @@ -36,6 +43,11 @@ public class KubernetesTestEngine implements Engine { LogUtil.warn("Please initial the engine."); return; } + TestResourcePool resourcePool = testResourcePoolService.getResourcePool(context.getResourcePoolId()); + if (resourcePool == null) { + MSException.throwException("Resource Pool is empty"); + } + List resourceList = testResourceService.getResourcesByPoolId(resourcePool.getId()); // todo 运行测试 ClientCredential credential = new ClientCredential(); credential.setMasterUrl("https://172.16.10.93:6443"); diff --git a/backend/src/main/java/io/metersphere/service/TestResourceService.java b/backend/src/main/java/io/metersphere/service/TestResourceService.java index b74c8bfdc..f6924503d 100644 --- a/backend/src/main/java/io/metersphere/service/TestResourceService.java +++ b/backend/src/main/java/io/metersphere/service/TestResourceService.java @@ -41,4 +41,10 @@ public class TestResourceService { testResource.setUpdateTime(System.currentTimeMillis()); testResourceMapper.updateByPrimaryKeySelective(testResource); } + + public List getResourcesByPoolId(String resourcePoolId) { + TestResourceExample example = new TestResourceExample(); + example.createCriteria().andTestResourcePoolIdEqualTo(resourcePoolId); + return testResourceMapper.selectByExampleWithBLOBs(example); + } } -- GitLab