From df34a7afc748c79670af9ccf7ca194530b45e46b Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Wed, 29 Apr 2020 11:11:11 +0800 Subject: [PATCH] env --- .../metersphere/config/KafkaProperties.java | 21 +++++++++++++++++++ .../io/metersphere/engine/EngineContext.java | 9 ++++++++ .../io/metersphere/engine/EngineFactory.java | 13 ++++++++++++ .../engine/docker/DockerTestEngine.java | 1 + .../engine/docker/request/TestRequest.java | 9 ++++++++ 5 files changed, 53 insertions(+) diff --git a/backend/src/main/java/io/metersphere/config/KafkaProperties.java b/backend/src/main/java/io/metersphere/config/KafkaProperties.java index 679545031..c0036f475 100644 --- a/backend/src/main/java/io/metersphere/config/KafkaProperties.java +++ b/backend/src/main/java/io/metersphere/config/KafkaProperties.java @@ -20,6 +20,7 @@ public class KafkaProperties { private String clientId; private String connectionsMaxIdleMs; private KafkaProperties.Ssl ssl = new KafkaProperties.Ssl(); + private KafkaProperties.Log log = new KafkaProperties.Log(); public String getAcks() { return acks; @@ -239,4 +240,24 @@ public class KafkaProperties { public void setSsl(Ssl ssl) { this.ssl = ssl; } + + public static class Log { + private String topic; + + public String getTopic() { + return topic; + } + + public void setTopic(String topic) { + this.topic = topic; + } + } + + public Log getLog() { + return log; + } + + public void setLog(Log log) { + this.log = log; + } } diff --git a/backend/src/main/java/io/metersphere/engine/EngineContext.java b/backend/src/main/java/io/metersphere/engine/EngineContext.java index c5a1d2a8b..f3eac08cd 100644 --- a/backend/src/main/java/io/metersphere/engine/EngineContext.java +++ b/backend/src/main/java/io/metersphere/engine/EngineContext.java @@ -15,6 +15,7 @@ public class EngineContext { private String reportId; private Map properties = new HashMap<>(); private Map testData = new HashMap<>(); + private Map env = new HashMap<>(); public String getTestId() { return testId; @@ -48,6 +49,14 @@ public class EngineContext { this.properties.putAll(props); } + public Map getEnv() { + return env; + } + + public void setEnv(Map env) { + this.env = env; + } + public Object getProperty(String key) { return this.properties.get(key); } diff --git a/backend/src/main/java/io/metersphere/engine/EngineFactory.java b/backend/src/main/java/io/metersphere/engine/EngineFactory.java index 72db7dbed..b7a7f589a 100644 --- a/backend/src/main/java/io/metersphere/engine/EngineFactory.java +++ b/backend/src/main/java/io/metersphere/engine/EngineFactory.java @@ -9,6 +9,7 @@ import io.metersphere.base.domain.TestResourcePool; import io.metersphere.commons.constants.FileType; import io.metersphere.commons.constants.ResourcePoolTypeEnum; import io.metersphere.commons.exception.MSException; +import io.metersphere.config.KafkaProperties; import io.metersphere.engine.docker.DockerTestEngine; import io.metersphere.engine.kubernetes.KubernetesTestEngine; import io.metersphere.i18n.Translator; @@ -31,6 +32,7 @@ import java.util.stream.Collectors; public class EngineFactory { private static FileService fileService; private static TestResourcePoolService testResourcePoolService; + private static KafkaProperties kafkaProperties; public static Engine createEngine(LoadTestWithBLOBs loadTest) { String resourcePoolId = loadTest.getTestResourcePoolId(); @@ -78,6 +80,12 @@ public class EngineFactory { engineContext.setResourcePoolId(loadTest.getTestResourcePoolId()); engineContext.setStartTime(startTime); engineContext.setReportId(reportId); + HashMap env = new HashMap() {{ + put("BOOTSTRAP_SERVERS", kafkaProperties.getBootstrapServers()); + put("LOG_TOPIC", kafkaProperties.getLog().getTopic()); + put("REPORT_ID", reportId); + }}; + engineContext.setEnv(env); if (StringUtils.isNotEmpty(loadTest.getLoadConfiguration())) { final JSONArray jsonArray = JSONObject.parseArray(loadTest.getLoadConfiguration()); @@ -130,4 +138,9 @@ public class EngineFactory { public void setTestResourcePoolService(TestResourcePoolService testResourcePoolService) { EngineFactory.testResourcePoolService = testResourcePoolService; } + + @Resource + public void setKafkaProperties(KafkaProperties kafkaProperties) { + EngineFactory.kafkaProperties = kafkaProperties; + } } diff --git a/backend/src/main/java/io/metersphere/engine/docker/DockerTestEngine.java b/backend/src/main/java/io/metersphere/engine/docker/DockerTestEngine.java index aca39565f..c21f0c464 100644 --- a/backend/src/main/java/io/metersphere/engine/docker/DockerTestEngine.java +++ b/backend/src/main/java/io/metersphere/engine/docker/DockerTestEngine.java @@ -82,6 +82,7 @@ public class DockerTestEngine extends AbstractEngine { testRequest.setFileString(content); testRequest.setImage(JMETER_IMAGE); testRequest.setTestData(context.getTestData()); + testRequest.setEnv(context.getEnv()); restTemplate.postForObject(uri, testRequest, String.class); } diff --git a/backend/src/main/java/io/metersphere/engine/docker/request/TestRequest.java b/backend/src/main/java/io/metersphere/engine/docker/request/TestRequest.java index 3133e1d6d..0cdd97f42 100644 --- a/backend/src/main/java/io/metersphere/engine/docker/request/TestRequest.java +++ b/backend/src/main/java/io/metersphere/engine/docker/request/TestRequest.java @@ -9,6 +9,7 @@ public class TestRequest extends BaseRequest { private String fileString; private String image; private Map testData = new HashMap<>(); + private Map env = new HashMap<>(); public int getSize() { return size; @@ -41,4 +42,12 @@ public class TestRequest extends BaseRequest { public void setTestData(Map testData) { this.testData = testData; } + + public Map getEnv() { + return env; + } + + public void setEnv(Map env) { + this.env = env; + } } -- GitLab