From: Alex Fan Date: Tue, 30 Sep 2014 19:06:27 +0000 (-0700) Subject: Bug2121 -- Add configuration parameter for TopologyId. X-Git-Tag: release/helium-sr1~6 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=3d85baa4d39e7ae731cd593968b57b2366c5c7a5;p=l2switch.git Bug2121 -- Add configuration parameter for TopologyId. Change-Id: I3a5f486c7fa32f10451098fcfdf6fff0d87d104d Signed-off-by: Alex Fan --- diff --git a/loopremover/config/src/main/resources/initial/52-loopremover.xml b/loopremover/config/src/main/resources/initial/52-loopremover.xml index 10e41d34..eb57ddb7 100644 --- a/loopremover/config/src/main/resources/initial/52-loopremover.xml +++ b/loopremover/config/src/main/resources/initial/52-loopremover.xml @@ -22,6 +22,7 @@ 0 0 1000 + flow:1 diff --git a/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/TopologyLinkDataChangeHandler.java b/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/TopologyLinkDataChangeHandler.java index 95459077..4756c36a 100644 --- a/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/TopologyLinkDataChangeHandler.java +++ b/loopremover/implementation/src/main/java/org/opendaylight/l2switch/loopremover/topology/TopologyLinkDataChangeHandler.java @@ -56,6 +56,7 @@ import java.util.concurrent.TimeUnit; public class TopologyLinkDataChangeHandler implements DataChangeListener { private static final Logger _logger = LoggerFactory.getLogger(TopologyLinkDataChangeHandler.class); private static final String DEFAULT_TOPOLOGY_ID = "flow:1"; + private static final long DEFAULT_GRAPH_REFRESH_DELAY = 1000; private final ScheduledExecutorService topologyDataChangeEventProcessor = Executors.newScheduledThreadPool(1); @@ -63,6 +64,7 @@ public class TopologyLinkDataChangeHandler implements DataChangeListener { private boolean networkGraphRefreshScheduled = false; private boolean threadReschedule = false; private long graphRefreshDelay; + private String topologyId; private final DataBroker dataBroker; @@ -74,7 +76,17 @@ public class TopologyLinkDataChangeHandler implements DataChangeListener { } public void setGraphRefreshDelay(long graphRefreshDelay) { - this.graphRefreshDelay = graphRefreshDelay; + if (graphRefreshDelay < 0) { + this.graphRefreshDelay = DEFAULT_GRAPH_REFRESH_DELAY; + } + else this.graphRefreshDelay = graphRefreshDelay; + } + + public void setTopologyId(String topologyId) { + if (topologyId == null || topologyId.isEmpty()) { + this.topologyId = DEFAULT_TOPOLOGY_ID; + } + else this.topologyId = topologyId; } /** @@ -85,7 +97,7 @@ public class TopologyLinkDataChangeHandler implements DataChangeListener { */ public ListenerRegistration registerAsDataChangeListener() { InstanceIdentifier linkInstance = InstanceIdentifier.builder(NetworkTopology.class) - .child(Topology.class, new TopologyKey(new TopologyId(DEFAULT_TOPOLOGY_ID))).child(Link.class).toInstance(); + .child(Topology.class, new TopologyKey(new TopologyId(topologyId))).child(Link.class).toInstance(); return dataBroker.registerDataChangeListener(LogicalDatastoreType.OPERATIONAL, linkInstance, this, AsyncDataBroker.DataChangeScope.BASE); } @@ -186,7 +198,7 @@ public class TopologyLinkDataChangeHandler implements DataChangeListener { } private List getLinksFromTopology() { - InstanceIdentifier topologyInstanceIdentifier = InstanceIdentifierUtils.generateTopologyInstanceIdentifier(DEFAULT_TOPOLOGY_ID); + InstanceIdentifier topologyInstanceIdentifier = InstanceIdentifierUtils.generateTopologyInstanceIdentifier(topologyId); Topology topology = null; ReadOnlyTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction(); try { diff --git a/loopremover/implementation/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/packet/loop/remover/impl/rev140528/LoopRemoverModule.java b/loopremover/implementation/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/packet/loop/remover/impl/rev140528/LoopRemoverModule.java index 484109cc..edafe181 100644 --- a/loopremover/implementation/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/packet/loop/remover/impl/rev140528/LoopRemoverModule.java +++ b/loopremover/implementation/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/packet/loop/remover/impl/rev140528/LoopRemoverModule.java @@ -53,6 +53,7 @@ public class LoopRemoverModule extends org.opendaylight.yang.gen.v1.urn.opendayl NetworkGraphService networkGraphService = new NetworkGraphImpl(); this.topologyLinkDataChangeHandler = new TopologyLinkDataChangeHandler(dataService, networkGraphService); topologyLinkDataChangeHandler.setGraphRefreshDelay(getGraphRefreshDelay()); + topologyLinkDataChangeHandler.setTopologyId(getTopologyId()); listenerRegistration = topologyLinkDataChangeHandler.registerAsDataChangeListener(); final class CloseResources implements AutoCloseable { diff --git a/loopremover/implementation/src/main/yang/loop-remover-impl.yang b/loopremover/implementation/src/main/yang/loop-remover-impl.yang index 26ab0c0b..2490f218 100644 --- a/loopremover/implementation/src/main/yang/loop-remover-impl.yang +++ b/loopremover/implementation/src/main/yang/loop-remover-impl.yang @@ -46,6 +46,9 @@ module loop-remover-impl { leaf graph-refresh-delay { type uint32; } + leaf topology-id { + type string; + } container notification-service { uses config:service-ref { refine type {