This is an automated email from the ASF dual-hosted git repository.

jiafengzheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris-manager.git


The following commit(s) were added to refs/heads/master by this push:
     new cea4820  Fix the bug that the agent installation is inconsistent with 
the heartbeat reporting transaction data (#27)
cea4820 is described below

commit cea482088f88ce8d8457583e2e1a3960628c3800
Author: songchuanyuan <[email protected]>
AuthorDate: Thu Mar 31 17:24:00 2022 +0800

    Fix the bug that the agent installation is inconsistent with the heartbeat 
reporting transaction data (#27)
    
    Fix the bug that the agent installation is inconsistent with the heartbeat 
reporting transaction data (#27)
---
 .../manager/DorisClusterInstanceManager.java       | 15 ++++++++++--
 .../stack/control/manager/DorisClusterManager.java | 27 ++++++++++++++++++++++
 .../control/manager/DorisClusterModuleManager.java | 11 ++++++++-
 .../control/manager/ResourceClusterManager.java    | 10 ++++++++
 .../manager/ResourceNodeAndAgentManager.java       |  5 ++++
 .../DorisClusterTakeOverRequestHandler.java        | 18 ++++++++++++++-
 .../stack/service/control/DorisClusterService.java |  3 ---
 7 files changed, 82 insertions(+), 7 deletions(-)

diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
index 2cf00f4..1452681 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
@@ -51,6 +51,7 @@ public class DorisClusterInstanceManager {
 
     public long initOperation(long clusterId, ClusterModuleEntity moudle, long 
nodeId) {
         // TODO:Judge whether node can deploy this instance
+        log.info("create a new instance for cluster {} moudle {} on node {}", 
clusterId, moudle.getId(), nodeId);
         ResourceNodeEntity nodeEntity = nodeRepository.findById(nodeId).get();
 
         ClusterInstanceEntity instanceEntity = new 
ClusterInstanceEntity(clusterId, moudle.getId(), nodeId,
@@ -63,10 +64,11 @@ public class DorisClusterInstanceManager {
                                 long requestId) {
         // TODO:Judge whether instance can be deploy
         // TODO: Step fallback operation
-
+        log.info("deploy instance {}", instance.getId());
         long eventId = instance.getCurrentEventId();
         if (eventId < 1L) {
             // First install instance operation
+            log.debug("first deploy instance {}", instance.getId());
             HeartBeatEventEntity eventEntity = new 
HeartBeatEventEntity(HeartBeatEventType.INSTANCE_INSTALL.name(),
                     HeartBeatEventResultType.INIT.name(), 
JSON.toJSONString(configInfo), requestId);
 
@@ -75,6 +77,7 @@ public class DorisClusterInstanceManager {
             instance.setCurrentEventId(newEventEntity.getId());
             clusterInstanceRepository.save(instance);
         } else {
+            log.debug("deploy instance {} heart beat event {} exist", 
instance.getId(), eventId);
             HeartBeatEventEntity eventEntity = 
heartBeatEventRepository.findById(eventId).get();
             // TODO:exception
             if 
(!eventEntity.getType().equals(HeartBeatEventType.INSTANCE_INSTALL.name())) {
@@ -95,9 +98,11 @@ public class DorisClusterInstanceManager {
 
     public void checkDeployOperation(ClusterInstanceEntity instance, 
InstanceDeployCheckEventConfigInfo configInfo,
                                      long requestId) {
+        log.info("check instance {} deploy", instance.getId());
         long eventId = instance.getCurrentEventId();
         if (eventId < 1L) {
-            // First install instance operation
+            // First check instance install operation
+            log.debug("first check instance {} deploy", instance.getId());
             HeartBeatEventEntity eventEntity = new 
HeartBeatEventEntity(HeartBeatEventType.INSTANCE_DEPLOY_CHECK.name(),
                     HeartBeatEventResultType.INIT.name(), 
JSON.toJSONString(configInfo), requestId);
 
@@ -106,6 +111,7 @@ public class DorisClusterInstanceManager {
             instance.setCurrentEventId(newEventEntity.getId());
             clusterInstanceRepository.save(instance);
         } else {
+            log.debug("check instance {} deploy heart beat event {} exist", 
instance.getId(), eventId);
             HeartBeatEventEntity eventEntity = 
heartBeatEventRepository.findById(eventId).get();
             // TODO:exception
             if 
(!eventEntity.getType().equals(HeartBeatEventType.INSTANCE_DEPLOY_CHECK.name()))
 {
@@ -126,6 +132,7 @@ public class DorisClusterInstanceManager {
 
     // Check whether instance is installed successfully
     public boolean checkInstanceOperation(ClusterInstanceEntity instance) {
+        log.info("check instance {} has been deployed", instance.getId());
         long eventId = instance.getCurrentEventId();
         if (eventId < 1L) {
             return false;
@@ -146,23 +153,27 @@ public class DorisClusterInstanceManager {
 
     public void startOperation(ClusterInstanceEntity instance, 
InstanceStartEventConfigInfo configInfo,
                                long requestId) {
+        log.info("start instance {} for request {}", instance.getId(), 
requestId);
         saveInstanceNewHeartBeat(instance, JSON.toJSONString(configInfo),
                 HeartBeatEventType.INSTANCE_START, requestId);
     }
 
     public void stopOperation(ClusterInstanceEntity instance, 
InstanceStopEventConfigInfo configInfo,
                                long requestId) {
+        log.info("stop instance {} for request {}", instance.getId(), 
requestId);
         saveInstanceNewHeartBeat(instance, JSON.toJSONString(configInfo),
                 HeartBeatEventType.INSTANCE_STOP, requestId);
     }
 
     public void restartOperation(ClusterInstanceEntity instance, 
InstanceRestartEventConfigInfo configInfo,
                                  long requestId) {
+        log.info("restart instance {} for request {}", instance.getId(), 
requestId);
         saveInstanceNewHeartBeat(instance, JSON.toJSONString(configInfo),
                 HeartBeatEventType.INSTANCE_RESTART, requestId);
     }
 
     public void deleteOperation(ClusterInstanceEntity instance) {
+        log.info("delete instance {}", instance.getId());
         clusterInstanceRepository.delete(instance);
     }
 
diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
index 40bc6bf..de5c816 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
@@ -40,6 +40,7 @@ import org.apache.doris.stack.model.request.space.ClusterType;
 import org.apache.doris.stack.model.request.space.NewUserSpaceCreateReq;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.sql.Statement;
 import java.util.ArrayList;
@@ -78,10 +79,14 @@ public class DorisClusterManager {
     @Autowired
     private JdbcSampleClient jdbcClient;
 
+    // Ensure the data atomicity of creating user space, so add transactions
+    @Transactional
     public long initOperation(NewUserSpaceCreateReq spaceInfo, String creator) 
throws Exception {
         return userSpaceComponent.create(spaceInfo, creator);
     }
 
+    // Ensure the atomicity of data in user space, so add transactions
+    @Transactional
     public void updateClusterOperation(CoreUserEntity user, long clusterId,
                                        NewUserSpaceCreateReq spaceInfo) throws 
Exception {
         userSpaceComponent.update(user, clusterId, spaceInfo);
@@ -90,17 +95,22 @@ public class DorisClusterManager {
     public void createClusterResourceOperation(CoreUserEntity user, 
ClusterInfoEntity clusterInfoEntity,
                                                PMResourceClusterAccessInfo 
authInfo,
                                                List<String> hosts) {
+        log.info("Create cluster {} resource cluster operation.", 
clusterInfoEntity.getId());
         long resourceClusterId = clusterInfoEntity.getResourceClusterId();
         if (resourceClusterId < 1L) {
+            log.debug("Cluster {} resource cluster not exist, add a new one.", 
clusterInfoEntity.getId());
             resourceClusterId = 
resourceClusterManager.initOperation(user.getId(), authInfo, hosts);
             clusterInfoEntity.setResourceClusterId(resourceClusterId);
             clusterRepository.save(clusterInfoEntity);
         } else {
+            log.debug("Cluster {} resource cluster {} already exist, update 
it.",
+                    clusterInfoEntity.getId(), resourceClusterId);
             resourceClusterManager.updateOperation(resourceClusterId, 
user.getId(), authInfo, hosts);
         }
     }
 
     public void configClusterResourceOperation(ClusterInfoEntity 
clusterInfoEntity, String packageInfo, String installInfo) {
+        log.info("Config cluster {} resource info operation.", 
clusterInfoEntity.getId());
         clusterInfoEntity.setInstallInfo(installInfo);
         clusterRepository.save(clusterInfoEntity);
 
@@ -108,6 +118,7 @@ public class DorisClusterManager {
     }
 
     public void startClusterResourceOperation(ClusterInfoEntity 
clusterInfoEntity, long requestId) {
+        log.info("Start cluster {} resource cluster operation.", 
clusterInfoEntity.getId());
         
resourceClusterManager.startOperation(clusterInfoEntity.getResourceClusterId(), 
requestId);
     }
 
@@ -115,6 +126,7 @@ public class DorisClusterManager {
         // Step fallback operation
         // If you have done scheduling and allocation before, you need to 
delete the created data.
         // If not, do nothing directly
+        log.info("Schedule cluster {} operation.", clusterId);
         deleteClusterOperation(clusterId);
 
         // Add broker node installation information, which is available for 
each node by default
@@ -138,6 +150,7 @@ public class DorisClusterManager {
     }
 
     public void configClusterOperation(ClusterInfoEntity clusterInfoEntity, 
List<DorisClusterModuleDeployConfig> deployConfigs) {
+        log.info("Config cluster {} operation.", clusterInfoEntity.getId());
 
         ResourceClusterEntity resourceClusterEntity =
                 
resourceClusterRepository.findById(clusterInfoEntity.getResourceClusterId()).get();
@@ -150,6 +163,7 @@ public class DorisClusterManager {
 
     public void deployClusterOperation(long clusterId, long requestId) {
         // TODO:Step fallback operation
+        log.info("Deploy cluster {} operation.", clusterId);
 
         List<ClusterModuleEntity> moduleEntities = 
moduleRepository.getByClusterId(clusterId);
 
@@ -166,6 +180,7 @@ public class DorisClusterManager {
      * @throws Exception
      */
     public ClusterCreateReq deployClusterAfterOperation(long clusterId, String 
newPassword) throws Exception {
+        log.info("Deploy cluster {} after operation.", clusterId);
         List<ClusterModuleServiceEntity> serviceEntities = 
serviceRepository.getByClusterId(clusterId);
 
         int feJdbcPort = 0;
@@ -199,10 +214,12 @@ public class DorisClusterManager {
             }
         }
 
+        log.debug("Get doris jdbc connection");
         // get doris jdbc connection
         String feHost = feAccessInfo.get(0);
         Statement stmt = jdbcClient.getStatement(feHost, feJdbcPort, 
ServerAndAgentConstant.USER_ROOT, "");
         // add fe Observer
+        log.debug("Add fe Observers {}", feObserverInfo);
         List<String> feObserverHostsPorts = new ArrayList<>();
         for (String feObserverHost : feObserverInfo) {
             String feObserverHostsPort = feObserverHost + ":" + feEditPort;
@@ -211,6 +228,7 @@ public class DorisClusterManager {
         jdbcClient.addFeObserver(feObserverHostsPorts, stmt);
 
         // add be
+        log.debug("Add be {}", beAccessInfo);
         List<String> beHostsPorts = new ArrayList<>();
         for (String beHost : beAccessInfo) {
             String beHostsPort = beHost + ":" + beHeartPort;
@@ -219,6 +237,7 @@ public class DorisClusterManager {
         jdbcClient.addBe(beHostsPorts, stmt);
 
         // add broker
+        log.debug("Add broker {}", brokerAccessInfo);
         List<String> brokerHostsPorts = new ArrayList<>();
         for (String brokerHost : brokerAccessInfo) {
             String brokerHostsPort = brokerHost + ":" + brokerRpcPort;
@@ -227,6 +246,7 @@ public class DorisClusterManager {
         jdbcClient.addBrokerName(brokerHostsPorts, stmt);
 
         // update password
+        log.debug("Update doris root and admin user default password.");
         jdbcClient.updateUserPassword(ServerAndAgentConstant.USER_ADMIN, 
newPassword, stmt);
         jdbcClient.updateUserPassword(ServerAndAgentConstant.USER_ROOT, 
newPassword, stmt);
 
@@ -245,11 +265,13 @@ public class DorisClusterManager {
     }
 
     public void clusterAccessOperation(long clusterId, ClusterCreateReq 
clusterAccessInfo) throws Exception {
+        log.info("Access cluster {} operation.", clusterId);
         ClusterInfoEntity clusterInfo = 
clusterRepository.findById(clusterId).get();
         userSpaceComponent.clusterAccess(clusterAccessInfo, clusterInfo);
     }
 
     public void checkClusterDeployOperation(long clusterId, long requestId) 
throws Exception {
+        log.info("Check cluster {} deploy operation.", clusterId);
         List<ClusterModuleEntity> moduleEntities = 
moduleRepository.getByClusterId(clusterId);
 
         for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -258,6 +280,7 @@ public class DorisClusterManager {
     }
 
     public void checkClusterInstancesOperation(long clusterId) throws 
Exception {
+        log.info("Check cluster {} instances operation.", clusterId);
         List<ClusterModuleEntity> moduleEntities = 
moduleRepository.getByClusterId(clusterId);
 
         for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -266,6 +289,7 @@ public class DorisClusterManager {
     }
 
     public void stopClusterOperation(long clusterId, long requestId) throws 
Exception {
+        log.info("Stop cluster {} instances operation.", clusterId);
         List<ClusterModuleEntity> moduleEntities = 
moduleRepository.getByClusterId(clusterId);
 
         for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -274,6 +298,7 @@ public class DorisClusterManager {
     }
 
     public void startClusterOperation(long clusterId, long requestId) throws 
Exception {
+        log.info("Start cluster {} instances operation.", clusterId);
         List<ClusterModuleEntity> moduleEntities = 
moduleRepository.getByClusterId(clusterId);
 
         for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -282,6 +307,7 @@ public class DorisClusterManager {
     }
 
     public void reStartClusterOperation(long clusterId, long requestId) throws 
Exception {
+        log.info("Restart cluster {} instances operation.", clusterId);
         List<ClusterModuleEntity> moduleEntities = 
moduleRepository.getByClusterId(clusterId);
 
         for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -291,6 +317,7 @@ public class DorisClusterManager {
 
     public void deleteClusterOperation(ClusterInfoEntity clusterInfo)throws 
Exception {
         long clusterId = clusterInfo.getId();
+        log.info("Delete cluster {} instances operation.", clusterId);
         deleteClusterOperation(clusterId);
     }
 
diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
index 30205de..b68fdeb 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
@@ -59,6 +59,7 @@ public class DorisClusterModuleManager {
     private DorisClusterInstanceManager instanceManager;
 
     public long initOperation(long clusterId, DorisClusterModuleResourceConfig 
resourceConfig) {
+        log.info("create module for cluster {}", clusterId);
         ClusterModuleEntity moduleEntity = new ClusterModuleEntity(clusterId, 
resourceConfig.getModuleName());
 
         ClusterModuleEntity newModuleEntity = 
clusterModuleRepository.save(moduleEntity);
@@ -70,8 +71,8 @@ public class DorisClusterModuleManager {
     }
 
     public void configOperation(long clusterId, DorisClusterModuleDeployConfig 
deployConfig) {
-
         String moduleName = deployConfig.getModuleName();
+        log.info("config module name {} for cluster {}", moduleName, 
clusterId);
         List<ClusterModuleEntity> moduleEntities = 
clusterModuleRepository.getByClusterIdAndModuleName(clusterId, moduleName);
 
         // Step fallback operation
@@ -154,6 +155,7 @@ public class DorisClusterModuleManager {
 
     private void serviceCreateOperation(ClusterModuleEntity module, 
Map<String, Integer> serviceNamePorts,
                                        List<String> accessInfo) {
+        log.info("create module {} service", module.getId());
         for (String name : serviceNamePorts.keySet()) {
             int port = serviceNamePorts.get(name);
             ClusterModuleServiceEntity serviceEntity = new 
ClusterModuleServiceEntity(name, module.getClusterId(),
@@ -164,6 +166,7 @@ public class DorisClusterModuleManager {
 
     public void deployOperation(ClusterModuleEntity module, long requestId) {
         // TODO:Step fallback operation
+        log.info("deploy module {}", module.getId());
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
         DorisClusterModuleDeployConfig deployConfig = 
JSON.parseObject(module.getConfig(),
                 DorisClusterModuleDeployConfig.class);
@@ -186,6 +189,7 @@ public class DorisClusterModuleManager {
 
     public void checkDeployOperation(ClusterModuleEntity module, long 
requestId) {
         // TODO:Step fallback operation
+        log.info("check module {} deploy for request {}", module.getId(), 
requestId);
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
 
         InstanceDeployCheckEventConfigInfo configInfo = new 
InstanceDeployCheckEventConfigInfo();
@@ -198,6 +202,7 @@ public class DorisClusterModuleManager {
     }
 
     public void checkInstancesOperation(ClusterModuleEntity module) throws 
Exception {
+        log.info("check module {} instances", module.getId());
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
 
         for (ClusterInstanceEntity instanceEntity : instanceEntities) {
@@ -208,6 +213,7 @@ public class DorisClusterModuleManager {
     }
 
     public void stopOperation(ClusterModuleEntity module, long requestId) {
+        log.info("stop module {} for request {}", module.getId(), requestId);
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
 
         InstanceStopEventConfigInfo configInfo = new 
InstanceStopEventConfigInfo();
@@ -220,6 +226,7 @@ public class DorisClusterModuleManager {
     }
 
     public void startOperation(ClusterModuleEntity module, long requestId) {
+        log.info("start module {} for request {}", module.getId(), requestId);
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
 
         InstanceStartEventConfigInfo configInfo = new 
InstanceStartEventConfigInfo();
@@ -232,6 +239,7 @@ public class DorisClusterModuleManager {
     }
 
     public void restartOperation(ClusterModuleEntity module, long requestId) {
+        log.info("restart module {} for request {}", module.getId(), 
requestId);
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
 
         InstanceRestartEventConfigInfo configInfo = new 
InstanceRestartEventConfigInfo();
@@ -244,6 +252,7 @@ public class DorisClusterModuleManager {
     }
 
     public void deleteOperation(ClusterModuleEntity module) {
+        log.info("delete module {}", module.getId());
         List<ClusterInstanceEntity> instanceEntities = 
instanceRepository.getByModuleId(module.getId());
 
         // delete all instances
diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
index 4fd1126..9faf551 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
@@ -44,12 +44,14 @@ public class ResourceClusterManager {
     private ResourceNodeAndAgentManager nodeAndAgentManager;
 
     public long initOperation(int userId, PMResourceClusterAccessInfo 
authInfo, List<String> hosts) {
+        log.info("create resource cluster");
         ResourceClusterEntity clusterEntity = new 
ResourceClusterEntity(String.valueOf(userId),
                 JSON.toJSONString(authInfo));
 
         ResourceClusterEntity newClusterEntity = 
resourceClusterRepository.save(clusterEntity);
         long resourceClusterId = newClusterEntity.getId();
 
+        log.debug("create resource cluster nodes is {}", hosts);
         for (String host : hosts) {
             nodeAndAgentManager.initOperation(resourceClusterId, host);
         }
@@ -59,6 +61,7 @@ public class ResourceClusterManager {
     public void updateOperation(long resourceClusterId, int userId,
                                 PMResourceClusterAccessInfo authInfo,
                                 List<String> hosts) {
+        log.info("update resource cluster {} info", resourceClusterId);
         ResourceClusterEntity clusterEntity = 
resourceClusterRepository.findById(resourceClusterId).get();
 
         clusterEntity.setAccessInfo(JSON.toJSONString(authInfo));
@@ -66,13 +69,16 @@ public class ResourceClusterManager {
         resourceClusterRepository.save(clusterEntity);
 
         List<String> existHosts = 
nodeRepository.getHostsByResourceClusterId(resourceClusterId);
+        log.debug("resource cluster {} exist nodes", existHosts);
 
         List<String> reduceList = ListUtil.getReduceList(hosts, existHosts);
+        log.debug("resource cluster {} reduce nodes", reduceList);
         for (String host : reduceList) {
             nodeAndAgentManager.deleteOperation(resourceClusterId, host);
         }
 
         List<String> addList = ListUtil.getAddList(hosts, existHosts);
+        log.debug("resource cluster {} add nodes", addList);
         for (String host : addList) {
             nodeAndAgentManager.initOperation(resourceClusterId, host);
         }
@@ -80,6 +86,7 @@ public class ResourceClusterManager {
 
     public void configOperation(long resourceClusterId, String packageInfo, 
String installInfo) {
         // TODO:The path can be set separately for each machine later
+        log.info("config resource cluster {}", resourceClusterId);
         ResourceClusterEntity resourceClusterEntity = 
resourceClusterRepository.findById(resourceClusterId).get();
         resourceClusterEntity.setRegistryInfo(packageInfo);
 
@@ -91,6 +98,7 @@ public class ResourceClusterManager {
     }
 
     public void startOperation(long resourceClusterId, long requestId) {
+        log.info("start resource cluster {} all nodes agent", 
resourceClusterId);
         ResourceClusterEntity clusterEntity = 
resourceClusterRepository.findById(resourceClusterId).get();
         PMResourceClusterAccessInfo accessInfo = 
JSON.parseObject(clusterEntity.getAccessInfo(),
                 PMResourceClusterAccessInfo.class);
@@ -101,12 +109,14 @@ public class ResourceClusterManager {
         configInfo.setSshPort(accessInfo.getSshPort());
         configInfo.setSshKey(accessInfo.getSshKey());
 
+        log.debug("install agent for resource cluster {} all nodes");
         for (ResourceNodeEntity nodeEntity : nodeEntities) {
             nodeAndAgentManager.installAgentOperation(nodeEntity, configInfo, 
requestId);
         }
     }
 
     public void checkNodesAgentOperation(long resourceClusterId) throws 
Exception {
+        log.info("check resource cluster {} all nodes agent", 
resourceClusterId);
         List<ResourceNodeEntity> nodeEntities = 
nodeRepository.getByResourceClusterId(resourceClusterId);
 
         for (ResourceNodeEntity nodeEntity : nodeEntities) {
diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
index 2d76ce9..69cf5b6 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
@@ -55,6 +55,7 @@ public class ResourceNodeAndAgentManager {
     private HeartBeatEventRepository heartBeatEventRepository;
 
     public long initOperation(long resourceClusterId, String host) {
+        log.info("create a new node {} for resource cluster {}", host, 
resourceClusterId);
         ResourceNodeEntity nodeEntity = new 
ResourceNodeEntity(resourceClusterId, host);
         ResourceNodeEntity newNodeEntity = nodeRepository.save(nodeEntity);
         return newNodeEntity.getId();
@@ -62,10 +63,12 @@ public class ResourceNodeAndAgentManager {
 
     // TODO:Uninstall agent
     public void deleteOperation(long resourceClusterId, String host) {
+        log.info("delete node {} for resource cluster {}", host, 
resourceClusterId);
         nodeRepository.deleteByResourceClusterIdAndHost(resourceClusterId, 
host);
     }
 
     public void installAgentOperation(ResourceNodeEntity node, 
AgentInstallEventConfigInfo configInfo, long requestId) {
+        log.info("install node {} agent for request {}", node.getId(), 
requestId);
         configInfo.setAgentNodeId(node.getId());
         configInfo.setInstallDir(node.getAgentInstallDir());
         configInfo.setHost(node.getHost());
@@ -75,6 +78,7 @@ public class ResourceNodeAndAgentManager {
         // Check whether the current node is already installing agent or agent 
installation has failed
         HeartBeatEventEntity agentInstallAgentEntity;
         if (eventId < 1L) {
+            log.debug("first install agent for node {}", node.getId());
             // fisrt time install agent
             // create HeartBeatEvent
             HeartBeatEventEntity eventEntity = new 
HeartBeatEventEntity(HeartBeatEventType.AGENT_INSTALL.name(),
@@ -86,6 +90,7 @@ public class ResourceNodeAndAgentManager {
             node.setCurrentEventId(eventId);
             nodeRepository.save(node);
         } else {
+            log.debug("install agent for node {} heart beat event {} exist", 
node.getId(), eventId);
             HeartBeatEventEntity eventEntity = 
heartBeatEventRepository.findById(eventId).get();
             // If the agent has been successfully installed and a new agent 
request operation has been performed,
             // the installation cannot be performed again
diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
index 646bc67..29ac117 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
@@ -85,6 +85,7 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
 
     @Override
     public long initRequestModel(DorisClusterRequest request, String creator) 
throws Exception {
+        log.info("init doris cluster, create cluster user space");
         DorisClusterTakeOverRequest takeOverRequest = 
(DorisClusterTakeOverRequest) request;
         return 
dorisClusterManager.initOperation(takeOverRequest.getReqInfo().getSpaceInfo(), 
creator);
     }
@@ -94,7 +95,9 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
                                                                
DorisClusterTakeOverRequest request,
                                                                boolean isInit) 
throws Exception {
         long clusterId = request.getClusterId();
+        log.info("handle take over cluster {} CREATE_CLUSTER_SPACE request {} 
event", clusterId, request.getRequestId());
         if (!isInit) {
+            log.info("The cluster user space already exist, update info.");
             dorisClusterManager.updateClusterOperation(user, clusterId,
                     request.getReqInfo().getSpaceInfo());
         }
@@ -106,6 +109,7 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
     private ModelControlResponse handleAccessDorisClusterEvent(CoreUserEntity 
user,
                                                                
DorisClusterTakeOverRequest request) throws Exception {
         long clusterId = request.getClusterId();
+        log.info("handle take over cluster {} ACCESS_DORIS_CLUSTER request {} 
event", clusterId, request.getRequestId());
 
         dorisClusterManager.clusterAccessOperation(clusterId, 
request.getReqInfo().getClusterAccessInfo());
 
@@ -116,23 +120,31 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
     private ModelControlResponse 
handleCreateAndStartResourceClusterEvent(CoreUserEntity user,
                                                                
DorisClusterTakeOverRequest request) throws Exception {
         long clusterId = request.getClusterId();
+        log.info("handle take over cluster {} 
CREATE_AND_START_RESOURCE_CLUSTER request {} event",
+                clusterId, request.getRequestId());
 
         ClusterInfoEntity clusterInfo = 
clusterInfoRepository.findById(clusterId).get();
 
         // TODO:get cluster nodes ip info
         List<String> nodeIps = new ArrayList<>();
 
-        Statement stmt = jdbcClient.getStatement(clusterInfo.getAddress(), 
clusterInfo.getQueryPort(), clusterInfo.getUser(), clusterInfo.getPasswd());
+        Statement stmt = jdbcClient.getStatement(clusterInfo.getAddress(), 
clusterInfo.getQueryPort(),
+                clusterInfo.getUser(), clusterInfo.getPasswd());
         Set<String> feNodeIps = jdbcClient.getFeOrBeIps(stmt, "'/frontends';");
+        log.debug("The node list IP of Doris cluster Fe is {}", feNodeIps);
 
         Set<String> beNodeIps = jdbcClient.getFeOrBeIps(stmt, "'/backends';");
+        log.debug("The node list IP of Doris cluster Be is {}", beNodeIps);
         jdbcClient.closeStatement(stmt);
 
         Set<String> allNodeDistinct = new HashSet<>();
         allNodeDistinct.addAll(feNodeIps);
         allNodeDistinct.addAll(beNodeIps);
 
+        log.debug("The node list distinct IP of Doris cluster is {}", 
allNodeDistinct);
+
         nodeIps.addAll(allNodeDistinct);
+        log.debug("The node list IP of Doris cluster is {}", nodeIps);
 
         dorisClusterManager.createClusterResourceOperation(user, clusterInfo, 
request.getReqInfo().getAuthInfo(), nodeIps);
         dorisClusterManager.configClusterResourceOperation(clusterInfo, "", 
request.getReqInfo().getInstallInfo());
@@ -150,6 +162,8 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
                 beNodeIds.add(nodeEntity.getId());
             }
         }
+        log.debug("The node list ID of Doris cluster fe is {}", feNodeIds);
+        log.debug("The node list ID of Doris cluster be is {}", beNodeIds);
 
         DorisClusterModuleResourceConfig feConfig = new 
DorisClusterModuleResourceConfig();
         feConfig.setModuleName(ServerAndAgentConstant.FE_NAME);
@@ -171,6 +185,7 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
     private ModelControlResponse handleCheckClusterDeployEvent(CoreUserEntity 
user,
                                                                
DorisClusterTakeOverRequest request) throws Exception {
         long clusterId = request.getClusterId();
+        log.info("handle take over cluster {} CHECK_CLUSTER_DEPLOY request {} 
event", clusterId, request.getRequestId());
 
         // Check whether the cluster node agent is installed successfully
         ClusterInfoEntity clusterInfoEntity = 
clusterInfoRepository.findById(clusterId).get();
@@ -185,6 +200,7 @@ public class DorisClusterTakeOverRequestHandler extends 
DorisClusterRequestHandl
     private ModelControlResponse handleCompletedEvent(CoreUserEntity user,
                                                       
DorisClusterTakeOverRequest request) throws Exception {
         long clusterId = request.getClusterId();
+        log.info("handle take over cluster {} COMPLETED_TAKEOVER request {} 
event", clusterId, request.getRequestId());
         dorisClusterManager.checkClusterInstancesOperation(clusterId);
         return getResponse(request, true);
     }
diff --git 
a/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
 
b/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
index e265e62..e145b54 100644
--- 
a/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
+++ 
b/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
@@ -55,7 +55,6 @@ import 
org.apache.doris.stack.model.response.control.ClusterModuleInfo;
 import org.apache.doris.stack.model.response.control.ResourceNodeInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -103,7 +102,6 @@ public class DorisClusterService {
     @Autowired
     private ClusterUserComponent userComponent;
 
-    @Transactional
     public ModelControlResponse creation(CoreUserEntity user, 
DorisClusterCreationReq creationReq) throws Exception {
         log.info("Rquest info is {}", JSON.toJSON(creationReq));
 
@@ -118,7 +116,6 @@ public class DorisClusterService {
         return response;
     }
 
-    @Transactional
     public ModelControlResponse takeOver(CoreUserEntity user, 
DorisClusterTakeOverReq takeOverReq) throws Exception {
         log.info("Rquest info is {}", JSON.toJSON(takeOverReq));
         DorisClusterTakeOverRequest request = new 
DorisClusterTakeOverRequest();

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to