Fix Sdc controller 29/47229/1
authorDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Fri, 11 May 2018 16:26:57 +0000 (18:26 +0200)
committerDeterme, Sebastien (sd378r) <sd378r@intl.att.com>
Fri, 11 May 2018 16:26:57 +0000 (18:26 +0200)
Add a check every 2 mins to ensure Sdc controllers are well running

Issue-ID: CLAMP-151
Change-Id: I3c9b10ecc4ce88f60a50484b5e86746ad09a8fc9
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
src/main/java/org/onap/clamp/clds/Application.java
src/main/java/org/onap/clamp/clds/config/spring/CldsSdcControllerConfiguration.java

index d9989d4..5975b9d 100644 (file)
@@ -48,6 +48,7 @@ import org.springframework.boot.web.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 @SpringBootApplication
 @ComponentScan(basePackages = {
@@ -59,6 +60,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
 })
 @EnableConfigurationProperties
 @EnableAsync
+@EnableScheduling
 public class Application extends SpringBootServletInitializer {
 
     protected static final EELFLogger EELF_LOGGER = EELFManager.getInstance().getLogger(Application.class);
index 7cca263..46c483f 100644 (file)
@@ -36,12 +36,14 @@ import org.onap.clamp.clds.config.ClampProperties;
 import org.onap.clamp.clds.config.sdc.SdcControllersConfiguration;
 import org.onap.clamp.clds.exception.sdc.controller.SdcControllerException;
 import org.onap.clamp.clds.sdc.controller.SdcSingleController;
+import org.onap.clamp.clds.sdc.controller.SdcSingleControllerStatus;
 import org.onap.clamp.clds.sdc.controller.installer.CsarInstaller;
 import org.onap.clamp.clds.sdc.controller.installer.CsarInstallerImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
+import org.springframework.scheduling.annotation.Scheduled;
 
 @Configuration
 @Profile("clamp-sdc-controller")
@@ -63,19 +65,34 @@ public class CldsSdcControllerConfiguration {
             try {
                 sdcController.initSdc();
             } catch (SdcControllerException e) {
-                logger.error("Exception caught during initialization of sdc controller", e);
+                logger.error("Exception caught when starting sdc controller", e);
             }
             sdcControllersList.add(sdcController);
         });
     }
 
+    @Scheduled(fixedRate = 120000)
+    public void checkAllSdcControllers() {
+        logger.info("Checking that all SDC Controllers defined are up and running");
+        for (SdcSingleController controller : sdcControllersList) {
+            try {
+                if (SdcSingleControllerStatus.STOPPED.equals(controller.getControllerStatus())) {
+                    controller.initSdc();
+                }
+            } catch (SdcControllerException e) {
+                logger.error("Exception caught when rebooting sdc controller", e);
+            }
+        }
+        logger.info("SDC Controllers check completed");
+    }
+
     @PreDestroy
     public void killSdcControllers() {
         sdcControllersList.forEach(e -> {
             try {
                 e.closeSdc();
             } catch (SdcControllerException e1) {
-                logger.error("Exception caught during initialization of sdc controller", e1);
+                logger.error("Exception caught when stopping sdc controller", e1);
             }
         });
     }