diff --git a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtn.java b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtn.java index d56b3b67b2..fe196e15ed 100644 --- a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtn.java +++ b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtn.java @@ -264,13 +264,7 @@ public class CordVtn implements CordVtnService { return; } - NodeState state = getNodeState(node); - if (state == null) { - return; - } else if (state.equals(NodeState.INCOMPLETE)) { - state = checkNodeState(node); - } - + NodeState state = checkNodeState(node); state.process(this, node); } diff --git a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnConfigManager.java b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnConfigManager.java index f79b44607b..525135d76e 100644 --- a/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnConfigManager.java +++ b/apps/cordvtn/src/main/java/org/onosproject/cordvtn/CordVtnConfigManager.java @@ -30,6 +30,10 @@ import org.onosproject.net.config.NetworkConfigService; import org.onosproject.net.config.basics.SubjectFactories; import org.slf4j.Logger; +import java.util.concurrent.ExecutorService; + +import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; +import static org.onlab.util.Tools.groupedThreads; import static org.slf4j.LoggerFactory.getLogger; /** @@ -63,13 +67,15 @@ public class CordVtnConfigManager { }; private final NetworkConfigListener configListener = new InternalConfigListener(); - private ApplicationId appId; + protected ExecutorService eventExecutor; + @Activate protected void active() { appId = coreService.getAppId(CordVtnService.CORDVTN_APP_ID); + eventExecutor = newSingleThreadScheduledExecutor(groupedThreads("onos/cordvtncfg", "event-handler")); configService.addListener(configListener); configRegistry.registerConfigFactory(configFactory); } @@ -78,6 +84,7 @@ public class CordVtnConfigManager { protected void deactivate() { configRegistry.unregisterConfigFactory(configFactory); configService.removeListener(configListener); + eventExecutor.shutdown(); } private void readConfiguration() { @@ -106,11 +113,11 @@ public class CordVtnConfigManager { switch (event.type()) { case CONFIG_ADDED: log.info("Network configuration added"); - readConfiguration(); + eventExecutor.execute(CordVtnConfigManager.this::readConfiguration); break; case CONFIG_UPDATED: log.info("Network configuration updated"); - readConfiguration(); + eventExecutor.execute(CordVtnConfigManager.this::readConfiguration); break; default: break;