diff --git a/agent/src/main/java/io/wdd/agent/initial/beans/ServerInfo.java b/agent/src/main/java/io/wdd/agent/initialization/beans/ServerInfo.java similarity index 96% rename from agent/src/main/java/io/wdd/agent/initial/beans/ServerInfo.java rename to agent/src/main/java/io/wdd/agent/initialization/beans/ServerInfo.java index d3df74a..74fee0e 100644 --- a/agent/src/main/java/io/wdd/agent/initial/beans/ServerInfo.java +++ b/agent/src/main/java/io/wdd/agent/initialization/beans/ServerInfo.java @@ -1,4 +1,4 @@ -package io.wdd.agent.initial.beans; +package io.wdd.agent.initialization.beans; import lombok.AllArgsConstructor; @@ -8,8 +8,6 @@ import lombok.experimental.SuperBuilder; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; -import java.util.Date; - @Data @AllArgsConstructor @NoArgsConstructor diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup.sh b/agent/src/main/java/io/wdd/agent/initialization/bootup.sh similarity index 100% rename from agent/src/main/java/io/wdd/agent/initial/bootup.sh rename to agent/src/main/java/io/wdd/agent/initialization/bootup.sh diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/AutoDeployOctopusAgent.sh b/agent/src/main/java/io/wdd/agent/initialization/bootup/AutoDeployOctopusAgent.sh similarity index 97% rename from agent/src/main/java/io/wdd/agent/initial/bootup/AutoDeployOctopusAgent.sh rename to agent/src/main/java/io/wdd/agent/initialization/bootup/AutoDeployOctopusAgent.sh index 7305449..01c3877 100644 --- a/agent/src/main/java/io/wdd/agent/initial/bootup/AutoDeployOctopusAgent.sh +++ b/agent/src/main/java/io/wdd/agent/initialization/bootup/AutoDeployOctopusAgent.sh @@ -791,6 +791,41 @@ GetIpv4Info() { public_ipv4="$(wget -q -T10 -O- ipinfo.io/ip)" } +OracleShutdownAgents(){ + # oracle 主机可以使用下面的额命令进行清除 + snap info oracle-cloud-agent + snap stop oracle-cloud-agent + snap remove oracle-cloud-agent + + systemctl status snapd.service + + for i in $(ls /lib/systemd/system/ | grep snapd | awk '{print$1}') ; do + echo $i + systemctl stop $i + systemctl disable $i + done + + rm -rf /root/snap + + systemctl stop ufw + systemctl disable ufw + #停止firewall + systemctl stop firewalld.service + #禁止firewall开机启动 + + systemctl disable firewalld.service + #关闭iptables + service iptables stop + #去掉iptables开机启动 + chkconfig iptables off + + systemctl stop ip6tables.service + systemctl disable ip6tables.service + + crontab -e + @reboot "iptables -F" +} + generateSystemInfo() { FunctionStart colorEcho $BLUE "start to collect system info !" diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/BootUpAgent.sh b/agent/src/main/java/io/wdd/agent/initialization/bootup/BootUpAgent.sh similarity index 100% rename from agent/src/main/java/io/wdd/agent/initial/bootup/BootUpAgent.sh rename to agent/src/main/java/io/wdd/agent/initialization/bootup/BootUpAgent.sh diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/CollectSystemInfo.java b/agent/src/main/java/io/wdd/agent/initialization/bootup/CollectSystemInfo.java similarity index 96% rename from agent/src/main/java/io/wdd/agent/initial/bootup/CollectSystemInfo.java rename to agent/src/main/java/io/wdd/agent/initialization/bootup/CollectSystemInfo.java index e1b545d..d0ab6c9 100644 --- a/agent/src/main/java/io/wdd/agent/initial/bootup/CollectSystemInfo.java +++ b/agent/src/main/java/io/wdd/agent/initialization/bootup/CollectSystemInfo.java @@ -1,7 +1,7 @@ -package io.wdd.agent.initial.bootup; +package io.wdd.agent.initialization.bootup; -import io.wdd.agent.initial.beans.ServerInfo; +import io.wdd.agent.initialization.beans.ServerInfo; import io.wdd.common.handler.MyRuntimeException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; @@ -15,7 +15,6 @@ import org.springframework.core.env.Environment; import javax.annotation.PostConstruct; import javax.annotation.Resource; -import javax.security.sasl.SaslServer; import java.net.InetAddress; import java.util.Map; import java.util.Properties; diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/InitConfiguration.java b/agent/src/main/java/io/wdd/agent/initialization/bootup/InitConfiguration.java similarity index 94% rename from agent/src/main/java/io/wdd/agent/initial/bootup/InitConfiguration.java rename to agent/src/main/java/io/wdd/agent/initialization/bootup/InitConfiguration.java index cbcb658..a86eb29 100644 --- a/agent/src/main/java/io/wdd/agent/initial/bootup/InitConfiguration.java +++ b/agent/src/main/java/io/wdd/agent/initialization/bootup/InitConfiguration.java @@ -1,7 +1,7 @@ -package io.wdd.agent.initial.bootup; +package io.wdd.agent.initialization.bootup; -import io.wdd.agent.initial.beans.ServerInfo; -import io.wdd.agent.initial.rabbitmq.InitialRabbitMqConnector; +import io.wdd.agent.initialization.beans.ServerInfo; +import io.wdd.agent.initialization.rabbitmq.InitialRabbitMqConnector; import org.springframework.amqp.AmqpException; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessagePostProcessor; @@ -9,7 +9,6 @@ import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.annotation.*; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/reference/linux-init-LapPro.sh b/agent/src/main/java/io/wdd/agent/initialization/bootup/reference/linux-init-LapPro.sh similarity index 100% rename from agent/src/main/java/io/wdd/agent/initial/bootup/reference/linux-init-LapPro.sh rename to agent/src/main/java/io/wdd/agent/initialization/bootup/reference/linux-init-LapPro.sh diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/reference/teddysun-benchmark-linux-info.png b/agent/src/main/java/io/wdd/agent/initialization/bootup/reference/teddysun-benchmark-linux-info.png similarity index 100% rename from agent/src/main/java/io/wdd/agent/initial/bootup/reference/teddysun-benchmark-linux-info.png rename to agent/src/main/java/io/wdd/agent/initialization/bootup/reference/teddysun-benchmark-linux-info.png diff --git a/agent/src/main/java/io/wdd/agent/initial/bootup/reference/teddysun-benchmark.sh b/agent/src/main/java/io/wdd/agent/initialization/bootup/reference/teddysun-benchmark.sh similarity index 100% rename from agent/src/main/java/io/wdd/agent/initial/bootup/reference/teddysun-benchmark.sh rename to agent/src/main/java/io/wdd/agent/initialization/bootup/reference/teddysun-benchmark.sh diff --git a/agent/src/main/java/io/wdd/agent/initial/rabbitmq/InitialRabbitMqConnector.java b/agent/src/main/java/io/wdd/agent/initialization/rabbitmq/InitialRabbitMqConnector.java similarity index 94% rename from agent/src/main/java/io/wdd/agent/initial/rabbitmq/InitialRabbitMqConnector.java rename to agent/src/main/java/io/wdd/agent/initialization/rabbitmq/InitialRabbitMqConnector.java index 5d78480..05a96ad 100644 --- a/agent/src/main/java/io/wdd/agent/initial/rabbitmq/InitialRabbitMqConnector.java +++ b/agent/src/main/java/io/wdd/agent/initialization/rabbitmq/InitialRabbitMqConnector.java @@ -1,4 +1,4 @@ -package io.wdd.agent.initial.rabbitmq; +package io.wdd.agent.initialization.rabbitmq; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; @@ -7,7 +7,6 @@ import org.springframework.amqp.core.Queue; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; /** * agent send server init info to octopus server diff --git a/agent/src/test/java/io/wdd/agent/InitRabbitMQTest.java b/agent/src/test/java/io/wdd/agent/InitRabbitMQTest.java index b841e15..e46d75c 100644 --- a/agent/src/test/java/io/wdd/agent/InitRabbitMQTest.java +++ b/agent/src/test/java/io/wdd/agent/InitRabbitMQTest.java @@ -1,6 +1,6 @@ package io.wdd.agent; -import io.wdd.agent.initial.bootup.InitConfiguration; +import io.wdd.agent.initialization.bootup.InitConfiguration; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/common/src/main/java/io/wdd/common/beans/R.java b/common/src/main/java/io/wdd/common/beans/response/R.java similarity index 95% rename from common/src/main/java/io/wdd/common/beans/R.java rename to common/src/main/java/io/wdd/common/beans/response/R.java index 7f9598f..b474d6c 100644 --- a/common/src/main/java/io/wdd/common/beans/R.java +++ b/common/src/main/java/io/wdd/common/beans/response/R.java @@ -1,4 +1,4 @@ -package io.wdd.common.beans; +package io.wdd.common.beans.response; import lombok.Data; diff --git a/common/src/main/java/io/wdd/common/beans/ResultStat.java b/common/src/main/java/io/wdd/common/beans/response/ResultStat.java similarity index 93% rename from common/src/main/java/io/wdd/common/beans/ResultStat.java rename to common/src/main/java/io/wdd/common/beans/response/ResultStat.java index aeeaa6d..6a224ce 100644 --- a/common/src/main/java/io/wdd/common/beans/ResultStat.java +++ b/common/src/main/java/io/wdd/common/beans/response/ResultStat.java @@ -1,4 +1,4 @@ -package io.wdd.common.beans; +package io.wdd.common.beans.response; public enum ResultStat { diff --git a/common/src/main/java/io/wdd/common/handler/GlobalExceptionHandler.java b/common/src/main/java/io/wdd/common/handler/GlobalExceptionHandler.java index 1f9ca82..09c6894 100644 --- a/common/src/main/java/io/wdd/common/handler/GlobalExceptionHandler.java +++ b/common/src/main/java/io/wdd/common/handler/GlobalExceptionHandler.java @@ -1,8 +1,8 @@ package io.wdd.common.handler; import com.google.common.collect.Maps; -import io.wdd.common.beans.R; -import io.wdd.common.beans.ResultStat; +import io.wdd.common.beans.response.R; +import io.wdd.common.beans.response.ResultStat; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/common/src/main/java/io/wdd/common/handler/MyRuntimeException.java b/common/src/main/java/io/wdd/common/handler/MyRuntimeException.java index 977122a..21f0df6 100644 --- a/common/src/main/java/io/wdd/common/handler/MyRuntimeException.java +++ b/common/src/main/java/io/wdd/common/handler/MyRuntimeException.java @@ -1,6 +1,6 @@ package io.wdd.common.handler; -import io.wdd.common.beans.ResultStat; +import io.wdd.common.beans.response.ResultStat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/common/src/main/java/io/wdd/common/utils/MessageUtils.java b/common/src/main/java/io/wdd/common/utils/MessageUtils.java new file mode 100644 index 0000000..c45a05e --- /dev/null +++ b/common/src/main/java/io/wdd/common/utils/MessageUtils.java @@ -0,0 +1,29 @@ +package io.wdd.common.utils; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.wdd.common.beans.rabbitmq.OctopusMessage; +import io.wdd.common.handler.MyRuntimeException; +import org.springframework.amqp.core.Message; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +@Component +public class MessageUtils { + + public static OctopusMessage convert(Message message) { + + ObjectMapper objectMapper = new ObjectMapper(); + + OctopusMessage octopusMessage; + + try { + octopusMessage = objectMapper.readValue(message.getBody(), OctopusMessage.class); + + } catch (IOException e) { + throw new MyRuntimeException(e.getMessage()); + } + + return octopusMessage; + } +} diff --git a/common/src/main/java/io/wdd/common/utils/OctopusRabbitTemplateConfig.java b/common/src/main/java/io/wdd/common/utils/OctopusRabbitTemplateConfig.java new file mode 100644 index 0000000..c5dc6d7 --- /dev/null +++ b/common/src/main/java/io/wdd/common/utils/OctopusRabbitTemplateConfig.java @@ -0,0 +1,37 @@ +package io.wdd.common.utils; + + +import com.fasterxml.jackson.databind.json.JsonMapper; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; + +@Configuration +public class OctopusRabbitTemplateConfig { + + @Resource + RabbitTemplate rabbitTemplate; + + @Bean + public MessageConverter octopusMessageConverter() { + JsonMapper jsonMapper = new JsonMapper(); + jsonMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd")); + + return new Jackson2JsonMessageConverter(jsonMapper, + "io.wdd.common.beans.rabbitmq"); + } + + @Bean + public AmqpTemplate OctopusRabbitTemplate(ConnectionFactory connectionFactory) { + + rabbitTemplate.setMessageConverter(octopusMessageConverter()); + return rabbitTemplate; + } +} diff --git a/server/src/main/java/io/wdd/rpc/init/AcceptBootUpInfoMessage.java b/server/src/main/java/io/wdd/rpc/init/AcceptBootUpInfoMessage.java new file mode 100644 index 0000000..9f47349 --- /dev/null +++ b/server/src/main/java/io/wdd/rpc/init/AcceptBootUpInfoMessage.java @@ -0,0 +1,82 @@ +package io.wdd.rpc.init; + + +import com.fasterxml.jackson.databind.json.JsonMapper; +import io.wdd.common.beans.rabbitmq.OctopusMessage; +import io.wdd.common.handler.MyRuntimeException; +import io.wdd.common.utils.MessageUtils; +import io.wdd.server.beans.po.ServerInfoPO; +import io.wdd.server.beans.vo.ServerInfoVO; +import io.wdd.server.utils.DaemonDatabaseOperator; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.*; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.IOException; + +/** + * The type Accept boot up info message. + */ +@Service +public class AcceptBootUpInfoMessage { + + + @Resource + DaemonDatabaseOperator databaseOperator; + + /** + * Handle octopus agent boot up info. + * + * @param message the message + */ + @RabbitHandler + @RabbitListener( + bindings = + @QueueBinding( + value = @Queue(name = "${octopus.message.init_to_server}"), + exchange = @Exchange(name = "${octopus.message.init_exchange}", type = "direct"), + key = {"${octopus.message.init_to_server_key}"} + ) + , + ackMode = "MANUAL" + ) + public void handleOctopusAgentBootUpInfo(Message message) { + + JsonMapper jsonMapper = new JsonMapper(); + ServerInfoVO serverInfoVO; + + try { + serverInfoVO = jsonMapper.readValue(message.getBody(), ServerInfoVO.class); + } catch (IOException e) { + throw new MyRuntimeException("parse rabbit server info error, please check !"); + } + + + // 1. check if information is correct + if(!validateServerInfo(serverInfoVO)){ + throw new MyRuntimeException("server info validated failed !"); + }; + // 2. generate the unique topic for agent + String agentQueueTopic = generateAgentQueueTopic(serverInfoVO); + // 3. save the agent info into database + // backend fixed thread daemon to operate the database ensuring the operation is correct ! + if(!databaseOperator.saveInitOctopusAgentInfo(serverInfoVO)){ + throw new MyRuntimeException("database save agent info error !"); + } + + // 4. send InitMessage to agent + + } + + private String generateAgentQueueTopic(ServerInfoVO serverInfoVO) { + return null; + } + + private boolean validateServerInfo(ServerInfoVO serverInfoVO) { + + return false; + } + + +} diff --git a/server/src/main/java/io/wdd/rpc/init/FromServerMessageBinding.java b/server/src/main/java/io/wdd/rpc/init/FromServerMessageBinding.java new file mode 100644 index 0000000..949c3ba --- /dev/null +++ b/server/src/main/java/io/wdd/rpc/init/FromServerMessageBinding.java @@ -0,0 +1,53 @@ +package io.wdd.rpc.init; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class FromServerMessageBinding { + + @Value("${octopus.message.init_exchange}") + public String INIT_EXCHANGE; + + @Value("${octopus.message.init_from_server}") + public String INIT_FROM_SERVER; + + @Value("${octopus.message.init_to_server}") + public String INIT_TO_SERVER; + + @Value("${octopus.message.init_from_server_key}") + public String INIT_FROM_SERVER_KEY; + + @Value("${octopus.message.init_to_server_key}") + public String INIT_TO_SERVER_KEY; + + @Bean + public DirectExchange initDirectExchange() { + return new DirectExchange(INIT_EXCHANGE); + } + + @Bean + public Queue initFromServerQueue() { + return new Queue(INIT_FROM_SERVER); + } + + + /** + * 配置一个队列和交换机的绑定 + * + * @param initDirectQueue : 需要绑定的队列对象,参数名必须和某个@Bean的方法名完全相同,这样就会进行自动注入,对应 .bind() + * @param initDirectExchange : 需要绑定的交换机对象,参数名必须和某个@Bean的方法名完全相同,这样就会进行自动注入,对应 .to() + * .with() 方法对应的RoutingKey + * @return + */ + @Bean + public Binding initBinding(DirectExchange initDirectExchange, Queue initFromServerQueue) { + return BindingBuilder.bind(initFromServerQueue).to(initDirectExchange).with(INIT_FROM_SERVER_KEY); + } + +} diff --git a/server/src/main/java/io/wdd/rpc/message/ToAgentOrder.java b/server/src/main/java/io/wdd/rpc/message/ToAgentOrder.java new file mode 100644 index 0000000..e35a0c6 --- /dev/null +++ b/server/src/main/java/io/wdd/rpc/message/ToAgentOrder.java @@ -0,0 +1,55 @@ +package io.wdd.rpc.message; + + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.wdd.common.beans.rabbitmq.OctopusMessage; +import io.wdd.common.beans.rabbitmq.OctopusMessageType; +import io.wdd.common.handler.MyRuntimeException; +import io.wdd.rpc.init.FromServerMessageBinding; +import lombok.SneakyThrows; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.actuate.amqp.RabbitHealthIndicator; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +/** + * adaptor + * provide override method to convert Object and send to rabbitmq + */ +@Component +public class ToAgentOrder { + + @Resource + RabbitTemplate rabbitTemplate; + + @Resource + FromServerMessageBinding fromServerMessageBinding; + + /** + * + * send to Queue -- InitFromServer + * + * @param message octopus message + */ + public void send(OctopusMessage message){ + + // only accept INIT type message + if (!OctopusMessageType.INIT.equals(message.getType())) { + throw new MyRuntimeException("To Agent Order method usage wrong !"); + } + + // send to Queue -- InitFromServer + + rabbitTemplate.convertAndSend(fromServerMessageBinding.INIT_EXCHANGE, fromServerMessageBinding.INIT_FROM_SERVER_KEY, writeData(message)); + + } + + @SneakyThrows + private byte[] writeData(Object data){ + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsBytes(data); + } + +} diff --git a/server/src/main/java/io/wdd/server/controller/AppController.java b/server/src/main/java/io/wdd/server/controller/AppController.java index b445017..a7f4c08 100644 --- a/server/src/main/java/io/wdd/server/controller/AppController.java +++ b/server/src/main/java/io/wdd/server/controller/AppController.java @@ -3,7 +3,7 @@ package io.wdd.server.controller; import io.wdd.server.beans.vo.AppInfoVO; import io.wdd.server.coreService.CoreAppService; -import io.wdd.common.beans.R; +import io.wdd.common.beans.response.R; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/server/src/main/java/io/wdd/server/controller/DomainController.java b/server/src/main/java/io/wdd/server/controller/DomainController.java index 88c7682..cd41c3c 100644 --- a/server/src/main/java/io/wdd/server/controller/DomainController.java +++ b/server/src/main/java/io/wdd/server/controller/DomainController.java @@ -3,7 +3,7 @@ package io.wdd.server.controller; import io.wdd.server.beans.po.DomainInfoPO; import io.wdd.server.beans.vo.DomainInfoVO; import io.wdd.server.coreService.CoreDomainService; -import io.wdd.common.beans.R; +import io.wdd.common.beans.response.R; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; diff --git a/server/src/main/java/io/wdd/server/controller/ServerController.java b/server/src/main/java/io/wdd/server/controller/ServerController.java index c3abe81..a30e852 100644 --- a/server/src/main/java/io/wdd/server/controller/ServerController.java +++ b/server/src/main/java/io/wdd/server/controller/ServerController.java @@ -7,7 +7,7 @@ import io.wdd.server.beans.vo.AppInfoVO; import io.wdd.server.beans.vo.DomainInfoVO; import io.wdd.server.beans.vo.ServerInfoVO; import io.wdd.server.coreService.CoreServerService; -import io.wdd.common.beans.R; +import io.wdd.common.beans.response.R; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.lang.Nullable; diff --git a/server/src/main/java/io/wdd/server/utils/DaemonDatabaseOperator.java b/server/src/main/java/io/wdd/server/utils/DaemonDatabaseOperator.java new file mode 100644 index 0000000..0d8291a --- /dev/null +++ b/server/src/main/java/io/wdd/server/utils/DaemonDatabaseOperator.java @@ -0,0 +1,52 @@ +package io.wdd.server.utils; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import io.wdd.server.beans.vo.ServerInfoVO; +import io.wdd.server.coreService.CoreServerService; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; + +/** + * The type Daemon database operator. + */ +@Component +public class DaemonDatabaseOperator { + + /** + * The Core server service. + */ + @Resource + CoreServerService coreServerService; + + private ThreadFactory threadFactory; + + private ExecutorService fixedThreadPool; + + /** + * Save init octopus agent info boolean. + * + * @param serverInfoVO the server info vo + * @return the result + */ + public boolean saveInitOctopusAgentInfo(ServerInfoVO serverInfoVO) { + + return coreServerService.serverCreate(serverInfoVO); + } + + @PostConstruct + private void buildDaemonDatabaseThread() { + + threadFactory = new ThreadFactoryBuilder() + .setDaemon(true) + .setNameFormat("database-daemon") + .setPriority(10) + .build(); + + fixedThreadPool = Executors.newFixedThreadPool(1, threadFactory); + } +} diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index ebfea12..6603818 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -1,6 +1,21 @@ server: port: 9999 +octopus: + message: + # agent boot up default common exchange + init_exchange: InitExchange + # server will send message to agent using this common queue + init_to_server: InitToServer + # agent boot up default common exchange routing key + init_to_server_key: InitToServerKey + # server will receive message from agent using this common queue + init_from_server: InitFromServer + # agent boot up default common exchange routing key + init_from_server_key: InitFromServerKey + # initialization register time out (unit ms) default is 5 min + init_ttl: "300000" + spring: rabbitmq: host: 127.0.0.1