From 9b458f37319cf7cb7ba65acd08b3271b8fb6a07e Mon Sep 17 00:00:00 2001 From: liuruibin Date: Fri, 1 May 2020 10:00:04 +0800 Subject: [PATCH 1/6] fit2cloud -> metersphere --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6c51bae..c45cedf 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ spring.application.name=node-controller -logging.file.path=/opt/fit2cloud/logs/${spring.application.name} +logging.file.path=/opt/metersphere/logs/${spring.application.name} server.port=8082 From 40e5212837e65401165ef1b878f80bcaabfdcd21 Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Wed, 13 May 2020 11:07:22 +0800 Subject: [PATCH 2/6] get set --- .../metersphere/controller/request/DockerLoginRequest.java | 6 ++++-- .../java/io/metersphere/controller/request/TestRequest.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/metersphere/controller/request/DockerLoginRequest.java b/src/main/java/io/metersphere/controller/request/DockerLoginRequest.java index fa01205..9767401 100644 --- a/src/main/java/io/metersphere/controller/request/DockerLoginRequest.java +++ b/src/main/java/io/metersphere/controller/request/DockerLoginRequest.java @@ -1,8 +1,10 @@ package io.metersphere.controller.request; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; -@Data +@Getter +@Setter public class DockerLoginRequest { private String username; private String password; diff --git a/src/main/java/io/metersphere/controller/request/TestRequest.java b/src/main/java/io/metersphere/controller/request/TestRequest.java index f790f43..3ec0d3f 100644 --- a/src/main/java/io/metersphere/controller/request/TestRequest.java +++ b/src/main/java/io/metersphere/controller/request/TestRequest.java @@ -1,11 +1,13 @@ package io.metersphere.controller.request; -import lombok.Data; +import lombok.Getter; +import lombok.Setter; import java.util.HashMap; import java.util.Map; -@Data +@Getter +@Setter public class TestRequest extends DockerLoginRequest { private int size; From 81a2574764bffda3dc3a6d3625833b193ecde735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=8C=AF?= Date: Thu, 4 Jun 2020 10:53:14 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Dockerfile b/Dockerfile index 644a0c6..19f885b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,8 @@ FROM registry.fit2cloud.com/fit2cloud2/fabric8-java-alpine-openjdk8-jre MAINTAINER FIT2CLOUD +ARG MS_VERSION=dev + RUN mkdir -p /opt/apps ADD target/node-controller-1.0.jar /opt/apps @@ -10,6 +12,8 @@ ENV JAVA_APP_JAR=/opt/apps/node-controller-1.0.jar ENV AB_OFF=true +ENV MS_VERSION=${MS_VERSION} + ENV JAVA_OPTIONS=-Dfile.encoding=utf-8 CMD ["/deployments/run-java.sh"] From 86507eca3c623401e014b8c2d4de8b2fc369f5ae Mon Sep 17 00:00:00 2001 From: "Captain.B" Date: Mon, 15 Jun 2020 14:40:44 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=81=9C=E6=AD=A2=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/metersphere/service/JmeterOperateService.java | 2 +- src/main/java/io/metersphere/util/DockerClientService.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/metersphere/service/JmeterOperateService.java b/src/main/java/io/metersphere/service/JmeterOperateService.java index 743a623..e9505fd 100644 --- a/src/main/java/io/metersphere/service/JmeterOperateService.java +++ b/src/main/java/io/metersphere/service/JmeterOperateService.java @@ -129,7 +129,7 @@ public void stopContainer(String testId) { .withNameFilter(Collections.singletonList(testId)) .exec(); // container stop - list.forEach(container -> DockerClientService.stopContainer(dockerClient, container.getId())); + list.forEach(container -> DockerClientService.removeContainer(dockerClient, container.getId())); } public List taskStatus(String testId) { diff --git a/src/main/java/io/metersphere/util/DockerClientService.java b/src/main/java/io/metersphere/util/DockerClientService.java index 7222232..c429534 100644 --- a/src/main/java/io/metersphere/util/DockerClientService.java +++ b/src/main/java/io/metersphere/util/DockerClientService.java @@ -83,7 +83,10 @@ public static void stopContainer(DockerClient client, String containerId) { * @param containerId */ public static void removeContainer(DockerClient client, String containerId) { - client.removeContainerCmd(containerId).exec(); + client.removeContainerCmd(containerId) + .withForce(true) + .withRemoveVolumes(true) + .exec(); } } From b11bf2dc298125f5f48dfda069083712289d1446 Mon Sep 17 00:00:00 2001 From: shiziyuan9527 Date: Tue, 16 Jun 2020 17:20:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E5=89=8D=E6=A3=80=E6=9F=A5=E5=AE=B9=E5=99=A8=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/JmeterOperateService.java | 4 +++- .../metersphere/util/DockerClientService.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/metersphere/service/JmeterOperateService.java b/src/main/java/io/metersphere/service/JmeterOperateService.java index e9505fd..de1e3c5 100644 --- a/src/main/java/io/metersphere/service/JmeterOperateService.java +++ b/src/main/java/io/metersphere/service/JmeterOperateService.java @@ -77,7 +77,9 @@ public void onComplete() { try { FileUtils.forceDelete(new File(filePath)); LogUtil.info("Remove dir completed."); - DockerClientService.removeContainer(dockerClient, containerId); + if (DockerClientService.existContainer(dockerClient, containerId) > 0) { + DockerClientService.removeContainer(dockerClient, containerId); + } LogUtil.info("Remove container completed: " + containerId); } catch (IOException e) { LogUtil.error("Remove dir error: ", e); diff --git a/src/main/java/io/metersphere/util/DockerClientService.java b/src/main/java/io/metersphere/util/DockerClientService.java index c429534..79b0449 100644 --- a/src/main/java/io/metersphere/util/DockerClientService.java +++ b/src/main/java/io/metersphere/util/DockerClientService.java @@ -2,6 +2,7 @@ import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.CreateContainerResponse; +import com.github.dockerjava.api.model.Container; import com.github.dockerjava.api.model.HostConfig; import com.github.dockerjava.api.model.Info; import com.github.dockerjava.core.DefaultDockerClientConfig; @@ -9,6 +10,9 @@ import io.metersphere.controller.request.DockerLoginRequest; import org.apache.commons.lang.StringUtils; +import java.util.Collections; +import java.util.List; + public class DockerClientService { /** @@ -89,4 +93,17 @@ public static void removeContainer(DockerClient client, String containerId) { .exec(); } + /** + * 容器是否存在 + * @param client + * @param containerId + */ + public static int existContainer(DockerClient client, String containerId) { + List list = client.listContainersCmd() + .withShowAll(true) + .withIdFilter(Collections.singleton(containerId)) + .exec(); + return list.size(); + } + } From 61a06bb02d6a012c763b7910919075d9b621062d Mon Sep 17 00:00:00 2001 From: shiziyuan9527 Date: Wed, 17 Jun 2020 11:01:50 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E5=89=8D=E6=A3=80=E6=9F=A5kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/JmeterOperateService.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main/java/io/metersphere/service/JmeterOperateService.java b/src/main/java/io/metersphere/service/JmeterOperateService.java index de1e3c5..8238282 100644 --- a/src/main/java/io/metersphere/service/JmeterOperateService.java +++ b/src/main/java/io/metersphere/service/JmeterOperateService.java @@ -17,6 +17,9 @@ import java.io.File; import java.io.IOException; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.TimeUnit; @@ -26,6 +29,9 @@ public class JmeterOperateService { public void startContainer(TestRequest testRequest) throws IOException { + String bootstrapServers = testRequest.getEnv().get("BOOTSTRAP_SERVERS"); + checkKafka(bootstrapServers); + LogUtil.info("Receive start container request, test id: {}", testRequest.getTestId()); DockerClient dockerClient = DockerClientService.connectDocker(testRequest); int size = testRequest.getSize(); @@ -90,6 +96,30 @@ public void onComplete() { }); } + private void checkKafka(String bootstrapServers) { + String[] servers = StringUtils.split(bootstrapServers, ","); + try { + for (String s : servers) { + String[] ipAndPort = s.split(":"); + //1,建立tcp + String ip = ipAndPort[0]; + int port = Integer.parseInt(ipAndPort[1]); + Socket soc = new Socket(); + soc.connect(new InetSocketAddress(ip, port), 1000); // 1s timeout + //2.输入内容 + String content = "1010"; + byte[] bs = content.getBytes(); + OutputStream os = soc.getOutputStream(); + os.write(bs); + //3.关闭 + soc.close(); + } + } catch (Exception e) { + LogUtil.error(e); + throw new RuntimeException("Failed to connect to Kafka"); + } + } + private String[] getEnvs(TestRequest testRequest) { Map env = testRequest.getEnv(); return env.keySet().stream().map(k -> k + "=" + env.get(k)).toArray(String[]::new);