Remove ServerSessionManager.bind()/unbind() 45/101945/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 2 Aug 2022 18:23:44 +0000 (20:23 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 2 Aug 2022 18:49:03 +0000 (20:49 +0200)
This is a useless indirection through dependencies, let's remove it.

Change-Id: I5b2c320030f8457011700552acbbc296328a487d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/AbstractTopologySessionListener.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologySessionListener.java
pcep/topology/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/ServerSessionManager.java
pcep/topology/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologyProgrammingTest.java

index 3d9d1438aba761039dcf4ceeef7ce8e0153ae9c9..ebebc3c3515328adde3fc8d1fe5916efc98c7fa0 100644 (file)
@@ -98,7 +98,9 @@ public abstract class AbstractTopologySessionListener implements TopologySession
     private final Map<SrpIdNumber, PCEPRequest> requests = new HashMap<>();
     @GuardedBy("this")
     private final Map<String, ReportedLsp> lspData = new ConcurrentHashMap<>();
+    private final TopologySessionStatsRegistry statsProvider;
     private final ServerSessionManager serverSessionManager;
+
     private InstanceIdentifier<PathComputationClient> pccIdentifier;
     @GuardedBy("this")
     private TopologyNodeState nodeState;
@@ -110,7 +112,9 @@ public abstract class AbstractTopologySessionListener implements TopologySession
     @GuardedBy("this")
     private boolean triggeredResyncInProcess;
 
-    AbstractTopologySessionListener(final ServerSessionManager serverSessionManager) {
+    AbstractTopologySessionListener(final TopologySessionStatsRegistry statsProvider,
+            final ServerSessionManager serverSessionManager) {
+        this.statsProvider = requireNonNull(statsProvider);
         this.serverSessionManager = requireNonNull(serverSessionManager);
     }
 
@@ -174,8 +178,10 @@ public abstract class AbstractTopologySessionListener implements TopologySession
                 state.storeNode(topologyAugment,
                         new Node1Builder().setPathComputationClient(pccBuilder.build()).build(), psession);
 
-                listenerState = new SessionStateImpl(this, psession);
-                serverSessionManager.bind(state.getNodeId(), listenerState);
+                // TODO: collapse assignment? needs to be verified through bytecode
+                final var sessionState = new SessionStateImpl(this, psession);
+                listenerState = sessionState;
+                statsProvider.bind(state.getNodeId(), sessionState);
                 LOG.info("Session with {} attached to topology node {}", peerAddress, state.getNodeId());
             }
         }
@@ -366,7 +372,7 @@ public abstract class AbstractTopologySessionListener implements TopologySession
     @Holding({"this.serverSessionManager", "this"})
     private void clearNodeState() {
         if (nodeState != null) {
-            serverSessionManager.unbind(nodeState.getNodeId());
+            statsProvider.unbind(nodeState.getNodeId());
             LOG.debug("Clear Node state: {}", nodeState.getNodeId());
             nodeState = null;
         }
index 61f8ad684e89d48afccad6636a328328c90b1bd4..cf15a3e1d357c69feab01e24e9720bb153ab8228 100644 (file)
@@ -134,9 +134,11 @@ class PCEPTopologySessionListener extends AbstractTopologySessionListener {
     /**
      * Creates a new stateful topology session listener for given server session manager.
      */
-    PCEPTopologySessionListener(final ServerSessionManager serverSessionManager) {
-        super(serverSessionManager);
-        pceServerProvider = serverSessionManager.getPCEPTopologyProviderDependencies().getPceServerProvider();
+    PCEPTopologySessionListener(final TopologySessionStatsRegistry statsProvider,
+            final ServerSessionManager serverSessionManager, final PceServerProvider pceServerProvider) {
+        super(statsProvider, serverSessionManager);
+        // FIXME: requireNonNull(), except tests need to be updated
+        this.pceServerProvider = pceServerProvider;
     }
 
     private static LspDbVersion geLspDbVersionTlv(final Lsp lsp) {
index 72831756be332c3393685f3df8b16d04f5e3a977..949ae033adc7c4094ac653900e2b2cee08e4f0a6 100644 (file)
@@ -32,7 +32,6 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.protocol.pcep.PCEPSessionListenerFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.graph.rev220720.graph.topology.GraphKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.SrpIdNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.stats.rev171113.PcepSessionState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.AddLspArgs;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.EnsureLspOperationalInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev220730.OperationResult;
@@ -47,8 +46,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.TopologyTypesBuilder;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.ErrorType;
@@ -215,7 +212,8 @@ class ServerSessionManager implements PCEPSessionListenerFactory, TopologySessio
     // Non-final for testing
     @Override
     public PCEPTopologySessionListener getSessionListener() {
-        return new PCEPTopologySessionListener(this);
+        return new PCEPTopologySessionListener(dependencies.getStateRegistry(), this,
+            dependencies.getPceServerProvider());
     }
 
     private synchronized TopologySessionListener checkSessionPresence(final NodeId nodeId) {
@@ -288,14 +286,6 @@ class ServerSessionManager implements PCEPSessionListenerFactory, TopologySessio
         }
     }
 
-    final void bind(final KeyedInstanceIdentifier<Node, NodeKey> nodeId, final PcepSessionState sessionState) {
-        dependencies.getStateRegistry().bind(nodeId, sessionState);
-    }
-
-    final void unbind(final KeyedInstanceIdentifier<Node, NodeKey> nodeId) {
-        dependencies.getStateRegistry().unbind(nodeId);
-    }
-
     final PCEPTopologyProviderDependencies getPCEPTopologyProviderDependencies() {
         return dependencies;
     }
index 61d1d7f34467f11525f331ba041dad9f97b973ed..d0131bf4a52549bcbd507e31c58ae2e510cfa111 100644 (file)
@@ -157,7 +157,9 @@ public class TopologyProgrammingTest extends AbstractPCEPSessionTest {
     @Override
     ServerSessionManager customizeSessionManager(final ServerSessionManager original) {
         final var customized = spy(original);
-        listener = spy(new PCEPTopologySessionListener(original));
+        final var deps = original.getPCEPTopologyProviderDependencies();
+        listener = spy(new PCEPTopologySessionListener(deps.getStateRegistry(), original,
+            deps.getPceServerProvider()));
         doReturn(listener).when(customized).getSessionListener();
         return customized;
     }