diff --git a/agent/src/main/java/io/wdd/agent/executor/CommandExecutor.java b/agent/src/main/java/io/wdd/agent/executor/CommandExecutor.java index 09501c1..6dc7850 100644 --- a/agent/src/main/java/io/wdd/agent/executor/CommandExecutor.java +++ b/agent/src/main/java/io/wdd/agent/executor/CommandExecutor.java @@ -9,7 +9,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; import javax.annotation.Resource; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.nio.ByteBuffer; import java.util.List; import java.util.concurrent.TimeUnit; @@ -32,6 +34,10 @@ public class CommandExecutor { */ public void execute(ExecutionMessage executionMessage) { + + this.execute(executionMessage.getResultKey(), executionMessage.getCommandList()); + + } diff --git a/agent/src/main/java/io/wdd/agent/executor/web/TestCommandExecutorController.java b/agent/src/main/java/io/wdd/agent/executor/web/TestCommandExecutorController.java index ac3fb09..fa2a63a 100644 --- a/agent/src/main/java/io/wdd/agent/executor/web/TestCommandExecutorController.java +++ b/agent/src/main/java/io/wdd/agent/executor/web/TestCommandExecutorController.java @@ -44,7 +44,7 @@ public class TestCommandExecutorController { ExecutionMessage executionMessage = ExecutionMessage.builder() .resultKey(streamKey) .type(messageType) - .contend(messageType) + .command(messageType) .build(); System.out.println("executionMessage = " + executionMessage); diff --git a/agent/src/test/java/io/wdd/agent/SimpleTest.java b/agent/src/test/java/io/wdd/agent/SimpleTest.java index 893d434..72729a2 100644 --- a/agent/src/test/java/io/wdd/agent/SimpleTest.java +++ b/agent/src/test/java/io/wdd/agent/SimpleTest.java @@ -1,6 +1,8 @@ package io.wdd.agent; +import java.util.ArrayDeque; import java.util.Arrays; +import java.util.concurrent.ArrayBlockingQueue; import java.util.stream.Collectors; public class SimpleTest { diff --git a/common/src/main/java/io/wdd/common/beans/executor/ExecutionMessage.java b/common/src/main/java/io/wdd/common/beans/executor/ExecutionMessage.java index b413d50..77c9e8f 100644 --- a/common/src/main/java/io/wdd/common/beans/executor/ExecutionMessage.java +++ b/common/src/main/java/io/wdd/common/beans/executor/ExecutionMessage.java @@ -5,6 +5,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.util.List; + @Data @AllArgsConstructor @NoArgsConstructor @@ -13,7 +15,7 @@ public class ExecutionMessage { private String type; - private String contend; + private List commandList; private String resultKey; diff --git a/server/src/main/java/io/wdd/rpc/execute/service/CoreExecutionService.java b/server/src/main/java/io/wdd/rpc/execute/service/CoreExecutionService.java new file mode 100644 index 0000000..f0b58b6 --- /dev/null +++ b/server/src/main/java/io/wdd/rpc/execute/service/CoreExecutionService.java @@ -0,0 +1,23 @@ +package io.wdd.rpc.execute.service; + +import org.springframework.stereotype.Service; + +import java.util.List; + + +public interface CoreExecutionService { + + + void SendCommandToAgent(String topicName, String command); + + void SendCommandToAgent(String topicName, List commandList); + + + void SendCommandToAgent(String topicName, String type, List command); + + void SendCommandToAgent(List topicNameList, String type, String command); + + void SendCommandToAgent(List topicNameList, String type, List command); + + +} diff --git a/server/src/main/java/io/wdd/rpc/execute/service/CoreExecutionServiceImpl.java b/server/src/main/java/io/wdd/rpc/execute/service/CoreExecutionServiceImpl.java new file mode 100644 index 0000000..3bbca9f --- /dev/null +++ b/server/src/main/java/io/wdd/rpc/execute/service/CoreExecutionServiceImpl.java @@ -0,0 +1,80 @@ +package io.wdd.rpc.execute.service; + +import io.wdd.common.beans.executor.ExecutionMessage; +import io.wdd.common.beans.rabbitmq.OctopusMessage; +import io.wdd.common.beans.rabbitmq.OctopusMessageType; +import io.wdd.rpc.message.sender.ToAgentMessageSender; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +@Service +public class CoreExecutionServiceImpl implements CoreExecutionService { + + @Resource + ToAgentMessageSender messageSender; + + + @Override + public void SendCommandToAgent(String topicName, String command) { + this.SendCommandToAgent(topicName, List.of(command)); + } + + @Override + public void SendCommandToAgent(String topicName, List commandList) { + this.SendCommandToAgent(topicName,"manual-command", commandList); + + } + + @Override + public void SendCommandToAgent(String topicName, String type, List commandList) { + + } + + @Override + public void SendCommandToAgent(List topicNameList, String type, String command) { + + } + + @Override + public void SendCommandToAgent(List topicNameList, String type, List command) { + + } + + private OctopusMessage generateOctopusMessage(String topicName, String type, List commandList){ + + + return OctopusMessage.builder() + .type(OctopusMessageType.EXECUTOR) + .init_time(LocalDateTime.now()) + .content(generateExecutionMessage( + type, + commandList, + generateCommandResultKey(topicName) + )) + .uuid(topicName) + .build(); + } + + private ExecutionMessage generateExecutionMessage(String type, List commandList, String resultKey) { + + return ExecutionMessage.builder() + .type(type) + .commandList(commandList) + .resultKey(resultKey) + .build(); + + } + + private String generateCommandResultKey(String topicName) { + + String TimeString = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + + + return topicName + TimeString; + } + +} diff --git a/server/src/main/java/io/wdd/rpc/init/AcceptAgentInitInfo.java b/server/src/main/java/io/wdd/rpc/init/AcceptAgentInitInfo.java index 372d063..e0266d7 100644 --- a/server/src/main/java/io/wdd/rpc/init/AcceptAgentInitInfo.java +++ b/server/src/main/java/io/wdd/rpc/init/AcceptAgentInitInfo.java @@ -6,7 +6,7 @@ import com.rabbitmq.client.Channel; import io.wdd.common.beans.rabbitmq.OctopusMessage; import io.wdd.common.beans.rabbitmq.OctopusMessageType; import io.wdd.common.handler.MyRuntimeException; -import io.wdd.rpc.message.sender.ToAgentOrder; +import io.wdd.rpc.message.sender.ToAgentMessageSender; import io.wdd.server.beans.vo.ServerInfoVO; import io.wdd.server.utils.DaemonDatabaseOperator; import lombok.SneakyThrows; @@ -60,7 +60,7 @@ public class AcceptAgentInitInfo { * The To agent order. */ @Resource - ToAgentOrder toAgentOrder; + ToAgentMessageSender toAgentMessageSender; /** @@ -174,7 +174,7 @@ public class AcceptAgentInitInfo { .uuid(serverInfoVO.getTopicName()) .build(); - toAgentOrder.send(octopusMessage); + toAgentMessageSender.sendINIT(octopusMessage); return true; } diff --git a/server/src/main/java/io/wdd/rpc/message/sender/ToAgentOrder.java b/server/src/main/java/io/wdd/rpc/message/sender/ToAgentMessageSender.java similarity index 87% rename from server/src/main/java/io/wdd/rpc/message/sender/ToAgentOrder.java rename to server/src/main/java/io/wdd/rpc/message/sender/ToAgentMessageSender.java index 8cd6085..7127988 100644 --- a/server/src/main/java/io/wdd/rpc/message/sender/ToAgentOrder.java +++ b/server/src/main/java/io/wdd/rpc/message/sender/ToAgentMessageSender.java @@ -18,8 +18,8 @@ import javax.annotation.Resource; * provide override method to convert Object and send to rabbitmq */ @Component -@Slf4j(topic = "To Octopus Server Message ") -public class ToAgentOrder { +@Slf4j(topic = "Send Message To Octopus Agent ") +public class ToAgentMessageSender { @Resource RabbitTemplate rabbitTemplate; @@ -27,7 +27,6 @@ public class ToAgentOrder { @Resource InitRabbitMQConfig initRabbitMQConfig; - @Resource ObjectMapper objectMapper; @@ -37,7 +36,7 @@ public class ToAgentOrder { * * @param message octopus message */ - public void send(OctopusMessage message){ + public void sendINIT(OctopusMessage message){ // only accept INIT type message if (!OctopusMessageType.INIT.equals(message.getType())) { @@ -51,6 +50,12 @@ public class ToAgentOrder { } + + public void send(OctopusMessage octopusMessage) { + + + } + @SneakyThrows private byte[] writeData(Object data){