summaryrefslogtreecommitdiffstats
path: root/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm
diff options
context:
space:
mode:
authorDenes Nemeth <denes.nemeth@nokia.com>2018-04-09 15:04:03 +0200
committerDenes Nemeth <denes.nemeth@nokia.com>2018-04-09 18:09:33 +0200
commita995e82e01a3315940051ca55133c9cb14eccc6b (patch)
tree60cfaba3195e70eee199c8ce78533397b18a1ca3 /nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm
parent21e822781382c89f125b030c6fe96eea2a5ad087 (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/onap/vfc/nfvo/driver/vnfm')
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java64
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/onap/core/SelfRegistrationManager.java3
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/util/SystemFunctions.java9
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java7
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
*