VES Heartbeat and Software Management Feature
[oam/tr069-adapter.git] / netconf-server / src / main / java / org / commscope / tr069adapter / netconf / server / RestartNetconfServerHandler.java
index 57e3602..6f7f9f2 100644 (file)
 \r
 package org.commscope.tr069adapter.netconf.server;\r
 \r
-import java.util.List;\r
-\r
 import org.commscope.tr069adapter.netconf.entity.NetConfServerDetailsEntity;\r
 import org.commscope.tr069adapter.netconf.error.RetryFailedException;\r
+import org.commscope.tr069adapter.netconf.server.helper.ServerPortAllocationHelper;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
@@ -38,32 +37,33 @@ public class RestartNetconfServerHandler {
   @Autowired\r
   NetConfServerManagerImpl manager;\r
 \r
+  @Autowired\r
+  ServerPortAllocationHelper serverPortAllocator;\r
+\r
   @Retryable(value = {RetryFailedException.class}, maxAttempts = 100,\r
       backoff = @Backoff(delay = 15000))\r
-  public void restart(List<NetConfServerDetailsEntity> serverDetailsList)\r
-      throws RetryFailedException {\r
+  public void restart(NetConfServerDetailsEntity entity) throws RetryFailedException {\r
+    boolean isSucess = false;\r
     try {\r
       // restart netconf servers\r
-      manager.restartServersOnStartup(serverDetailsList);\r
+      serverPortAllocator.checkAndReserveServerPort(entity.getListenPort());\r
+      isSucess = manager.restartServersOnStartup(entity);\r
     } catch (Exception e) {\r
       logger.error("Retry to netconf servers has  is failed. {}", e.toString());\r
       throw new RetryFailedException(e);\r
     }\r
-\r
-    if (!serverDetailsList.isEmpty()) {\r
-      logger.error("Failed to start some of netconf servers. Retrying starting servers : {}",\r
-          serverDetailsList);\r
+    if (!isSucess) {\r
       throw new RetryFailedException(\r
-          "Failed to start some of netconf servers. server list : " + serverDetailsList);\r
+          "Failed to start some of netconf servers. server list : " + entity);\r
     }\r
     logger.debug("Successfully started all failed netconf servers.");\r
   }\r
 \r
   @Recover\r
-  public void recover(List<NetConfServerDetailsEntity> serverDetailsList) {\r
+  public void recover(NetConfServerDetailsEntity entity) {\r
     logger.debug("Retrying starting failed netconf servers.");\r
     try {\r
-      restart(serverDetailsList);\r
+      restart(entity);\r
     } catch (RetryFailedException e) {\r
       logger.error("Failed to start failed netconf servers. {}", e.toString());\r
     }\r