diff options
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java')
-rw-r--r-- | nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/NokiaSvnfmApplication.java | 61 |
1 files changed, 45 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 23c2e4bf..40abab1a 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,21 +16,26 @@ package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia; +import com.google.common.collect.Sets; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.SelfRegistrationManager; -import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.JobManager; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.SelfRegistrationManagerForSo; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.SelfRegistrationManagerForVfc; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.JobManagerForSo; +import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.JobManagerForVfc; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; +import org.springframework.context.ConfigurableApplicationContext; 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 com.google.common.collect.Sets.newHashSet; import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions.systemFunctions; import static org.slf4j.LoggerFactory.getLogger; @@ -50,6 +55,10 @@ public class NokiaSvnfmApplication { systemFunctions().newSpringApplication(NokiaSvnfmApplication.class).run(args); } + private static boolean isDirect(ConfigurableApplicationContext applicationContext) { + return newHashSet(applicationContext.getEnvironment().getActiveProfiles()).contains("direct"); + } + /** * Responsible for starting the self registration process after the servlet has been started * and is ready to answer REST request @@ -59,17 +68,22 @@ public class NokiaSvnfmApplication { @Component @Profile("!test") public static class SelfRegistrationTrigger implements ApplicationListener<ApplicationReadyEvent> { - private final SelfRegistrationManager selfRegistrationManager; - private final JobManager jobManager; + private final SelfRegistrationManagerForSo selfRegistrationManagerForSo; + private final SelfRegistrationManagerForVfc selfRegistrationManagerForVfc; + private final JobManagerForSo jobManagerForSo; + private final JobManagerForVfc jobManagerForVfc; + /** * Runs the registration process */ private ExecutorService executorService = newCachedThreadPool(); @Autowired - SelfRegistrationTrigger(SelfRegistrationManager selfRegistrationManager, JobManager jobManager) { - this.jobManager = jobManager; - this.selfRegistrationManager = selfRegistrationManager; + SelfRegistrationTrigger(SelfRegistrationManagerForVfc selfRegistrationManagerForVfc, SelfRegistrationManagerForSo selfRegistrationManagerForSo, JobManagerForSo jobManagerForSo, JobManagerForVfc jobManagerForVfc) { + this.jobManagerForSo = jobManagerForSo; + this.jobManagerForVfc = jobManagerForVfc; + this.selfRegistrationManagerForVfc = selfRegistrationManagerForVfc; + this.selfRegistrationManagerForSo = selfRegistrationManagerForSo; } @Override @@ -77,7 +91,11 @@ public class NokiaSvnfmApplication { Callable<Boolean> singleRegistration = () -> { logger.info("Self registration started"); try { - selfRegistrationManager.register(); + if (isDirect(contextRefreshedEvent.getApplicationContext())) { + selfRegistrationManagerForSo.register(); + } else { + selfRegistrationManagerForVfc.register(); + } logger.info("Self registration finished"); } catch (RuntimeException e) { logger.error("Self registration failed", e); @@ -86,7 +104,7 @@ public class NokiaSvnfmApplication { return true; }; executorService.submit(() -> { - while (!jobManager.isPreparingForShutDown()) { + while (!jobManagerForVfc.isPreparingForShutDown() && !jobManagerForSo.isPreparingForShutDown()) { try { executorService.submit(singleRegistration).get(); //registration successful @@ -98,6 +116,7 @@ public class NokiaSvnfmApplication { } }); } + } /** @@ -108,21 +127,31 @@ public class NokiaSvnfmApplication { @Component @Profile("!test") public static class SelfDeRegistrationTrigger implements ApplicationListener<ContextClosedEvent> { - private final SelfRegistrationManager selfRegistrationManager; - private final JobManager jobManager; + private final JobManagerForSo jobManagerForSo; + private final JobManagerForVfc jobManagerForVfc; + private final SelfRegistrationManagerForVfc selfRegistrationManagerForVfc; + private final SelfRegistrationManagerForSo selfRegistrationManagerForSo; + @Autowired - SelfDeRegistrationTrigger(SelfRegistrationManager selfRegistrationManager, JobManager jobManager) { - this.jobManager = jobManager; - this.selfRegistrationManager = selfRegistrationManager; + SelfDeRegistrationTrigger(SelfRegistrationManagerForVfc selfRegistrationManager, SelfRegistrationManagerForSo selfRegistrationManagerForSo, JobManagerForSo jobManager, JobManagerForVfc jobManagerForVfc) { + this.jobManagerForSo = jobManager; + this.jobManagerForVfc = jobManagerForVfc; + this.selfRegistrationManagerForVfc = selfRegistrationManager; + this.selfRegistrationManagerForSo = selfRegistrationManagerForSo; } @Override public void onApplicationEvent(ContextClosedEvent contextClosedEvent) { logger.info("Self de-registration started"); try { - jobManager.prepareForShutdown(); - selfRegistrationManager.deRegister(); + jobManagerForVfc.prepareForShutdown(); + jobManagerForSo.prepareForShutdown(); + if (Sets.newHashSet(contextClosedEvent.getApplicationContext().getEnvironment().getActiveProfiles()).contains("direct")) { + selfRegistrationManagerForSo.deRegister(); + } else { + selfRegistrationManagerForVfc.deRegister(); + } } catch (RuntimeException e) { logger.error("Self de-registration failed", e); throw e; |