[AETHER-457] Load initial routes from netcfg
Change-Id: I338316ba8836cd4fbd567d25a7e71ff27f27e8e4
(cherry picked from commit bfc5e553c627af546ad519c133722404125af87a)
diff --git a/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java b/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java
index bad5b92..0e7dd90 100644
--- a/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java
+++ b/apps/route-service/app/src/main/java/org/onosproject/routeservice/impl/ConfigurationRouteSource.java
@@ -30,7 +30,10 @@
import org.onosproject.net.config.NetworkConfigListener;
import org.onosproject.net.config.NetworkConfigRegistry;
import org.onosproject.net.config.basics.SubjectFactories;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -40,6 +43,8 @@
@Component(immediate = true)
public class ConfigurationRouteSource {
+ private static final Logger log = LoggerFactory.getLogger(ConfigurationRouteSource.class);
+
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected NetworkConfigRegistry netcfgRegistry;
@@ -62,6 +67,17 @@
protected void activate() {
netcfgRegistry.addListener(netcfgListener);
netcfgRegistry.registerConfigFactory(routeConfigFactory);
+
+ // Read initial routes in netcfg
+ netcfgRegistry.getSubjects(ApplicationId.class, RouteConfig.class).forEach(subject -> {
+ Optional.ofNullable(netcfgRegistry.getConfig(subject, RouteConfig.class))
+ .map(RouteConfig::getRoutes)
+ .ifPresent(routes -> {
+ log.info("Load initial routes from netcfg: {}", routes);
+ routeService.update(routes);
+ });
+ });
+
}
@Deactivate