diff options
author | Denes Nemeth <denes.nemeth@nokia.com> | 2018-04-09 15:04:03 +0200 |
---|---|---|
committer | Denes Nemeth <denes.nemeth@nokia.com> | 2018-04-09 18:09:33 +0200 |
commit | a995e82e01a3315940051ca55133c9cb14eccc6b (patch) | |
tree | 60cfaba3195e70eee199c8ce78533397b18a1ca3 /nokiav2/driver/src/main/java/org | |
parent | 21e822781382c89f125b030c6fe96eea2a5ad087 (diff) |
Fix container startup
Change-Id: I5e7f9fb4bc83b113b5d27c5cd26e19cdc42e2c57
Issue-ID: VFC-728
Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com>
Diffstat (limited to 'nokiav2/driver/src/main/java/org')
4 files changed, 67 insertions, 16 deletions
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java index 6296d4b2..ceb0335d 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java @@ -16,7 +16,12 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.SelfRegistrationManager; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.JobManager; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +33,9 @@ import org.springframework.context.annotation.Profile; import org.springframework.context.event.ContextClosedEvent; import org.springframework.stereotype.Component; +import static java.util.concurrent.Executors.newCachedThreadPool; + +import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions.systemFunctions; import static org.slf4j.LoggerFactory.getLogger; /** @@ -43,7 +51,7 @@ public class NokiaSvnfmApplication { * @param args arguments for the application (not used) */ public static void main(String[] args) { - SpringApplication.run(NokiaSvnfmApplication.class, args); + systemFunctions().newSpringApplication(NokiaSvnfmApplication.class).run(args); } /** @@ -55,19 +63,45 @@ public class NokiaSvnfmApplication { @Component @Profile("!test") public static class SelfRegistrationTrigger implements ApplicationListener<ApplicationReadyEvent> { + private final SelfRegistrationManager selfRegistrationManager; + private final JobManager jobManager; + /** + * Runs the registration process + */ + private ExecutorService executorService = newCachedThreadPool(); + @Autowired - private SelfRegistrationManager selfRegistrationManager; + SelfRegistrationTrigger(SelfRegistrationManager selfRegistrationManager, JobManager jobManager){ + this.jobManager = jobManager; + this.selfRegistrationManager = selfRegistrationManager; + } @Override public void onApplicationEvent(ApplicationReadyEvent contextRefreshedEvent) { - logger.info("Self registration started"); - try { - selfRegistrationManager.register(); - logger.info("Self registration finished"); - } catch (RuntimeException e) { - logger.error("Self registration failed", e); - throw e; - } + Callable<Boolean> singleRegistration = () -> { + logger.info("Self registration started"); + try { + selfRegistrationManager.register(); + logger.info("Self registration finished"); + } catch (RuntimeException e) { + logger.error("Self registration failed", e); + throw e; + } + return true; + }; + executorService.submit(() -> { + while(!jobManager.isPreparingForShutDown()){ + try{ + executorService.submit(singleRegistration).get(); + //registration successful + return; + } + catch (Exception e){ + logger.warn("Unable to execute self registration process", e); + } + systemFunctions().sleep(5000); + } + }); } } @@ -79,10 +113,14 @@ public class NokiaSvnfmApplication { @Component @Profile("!test") public static class SelfDeRegistrationTrigger implements ApplicationListener<ContextClosedEvent> { + private final SelfRegistrationManager selfRegistrationManager; + private final JobManager jobManager; + @Autowired - private SelfRegistrationManager selfRegistrationManager; - @Autowired - private JobManager jobManager; + SelfDeRegistrationTrigger(SelfRegistrationManager selfRegistrationManager, JobManager jobManager){ + this.jobManager = jobManager; + this.selfRegistrationManager = selfRegistrationManager; + } @Override public void onApplicationEvent(ContextClosedEvent contextClosedEvent) { diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java index 172dd338..1dc32209 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java @@ -42,14 +42,11 @@ import static org.slf4j.LoggerFactory.getLogger; public class SelfRegistrationManager { public static final String DRIVER_VERSION = "v1"; public static final String SERVICE_NAME = "NokiaSVNFM"; - // 1 means internal 0 means core :) - public static final String INTERNAL_SERVICE = "1"; public static final String SWAGGER_API_DEFINITION = "self.swagger.json"; private static Logger logger = getLogger(SelfRegistrationManager.class); private final DriverProperties driverProperties; private final MsbApiProvider msbApiProvider; private final CbamRestApiProvider cbamRestApiProvider; - @Value("${driverMsbExternalIp}") private String driverMsbExternalIp; @Value("${driverVnfmExternalIp}") diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/util/SystemFunctions.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/util/SystemFunctions.java index 22d4c20d..87a4d56d 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/util/SystemFunctions.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/util/SystemFunctions.java @@ -20,6 +20,7 @@ import java.io.InputStream; import java.io.PrintStream; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; +import org.springframework.boot.SpringApplication; /** * Wrapper class for static method calls to core or core libraries. @@ -160,4 +161,12 @@ public class SystemFunctions { public CloseableHttpClient getHttpClient() { return HttpClients.createDefault(); } + + /** + * @param clazz the main source of the Spring application + * @return a new Spring application + */ + public SpringApplication newSpringApplication(Class clazz){ + return new SpringApplication(clazz); + } }
\ No newline at end of file diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java index 277be9c4..e97f634d 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java @@ -98,6 +98,13 @@ public class JobManager { } /** + * @return is the component preparing for shutdown + */ + public boolean isPreparingForShutDown(){ + return preparingForShutDown; + } + + /** * Throws an exception in case the service is not ready to serve requests due to * not being able to register to MSB or to subscribe to CBAM LCNs * |