Merge "Bug 4957 Wiring new TxChainManager lifecycle"
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / session / SessionManagerOFImpl.java
index be2982195ddba55029832e745234a0a632ab0472..1a5f53857a5b3e3fd93dbb334c06621b9dcab36d 100644 (file)
@@ -25,7 +25,7 @@ import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionConte
 import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionListener;
 import org.opendaylight.openflowplugin.api.openflow.md.core.session.SwitchSessionKeyOF;
 import org.opendaylight.openflowplugin.api.openflow.md.queue.PopListener;
-import org.opendaylight.openflowplugin.api.statistics.MessageSpy;
+import org.opendaylight.openflowplugin.api.openflow.statistics.MessageSpy;
 import org.opendaylight.openflowplugin.extension.api.core.extension.ExtensionConverterProvider;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -96,7 +96,7 @@ public class SessionManagerOFImpl implements ConjunctSessionManager {
     public void invalidateSessionContext(SwitchSessionKeyOF sessionKey) {
         SessionContext context = getSessionContext(sessionKey);
         if (context == null) {
-            LOG.warn("context for invalidation not found");
+            LOG.info("context for invalidation not found");
         } else {
             synchronized (context) {
                 for (Entry<SwitchConnectionDistinguisher, ConnectionConductor> auxEntry : context.getAuxiliaryConductors()) {
@@ -112,7 +112,7 @@ public class SessionManagerOFImpl implements ConjunctSessionManager {
 
     private void invalidateDeadSessionContext(SessionContext sessionContext) {
         if (sessionContext == null) {
-            LOG.warn("context for invalidation not found");
+            LOG.info("context for invalidation not found");
         } else {
             synchronized (sessionContext) {
                 for (Entry<SwitchConnectionDistinguisher, ConnectionConductor> auxEntry : sessionContext
@@ -143,6 +143,10 @@ public class SessionManagerOFImpl implements ConjunctSessionManager {
         }
     }
 
+    @Override
+    public void setRole(SessionContext context) {
+       sessionNotifier.setRole(context);
+    }
     @Override
     public void invalidateAuxiliary(SwitchSessionKeyOF sessionKey,
                                     SwitchConnectionDistinguisher connectionCookie) {
@@ -158,7 +162,7 @@ public class SessionManagerOFImpl implements ConjunctSessionManager {
     private static void invalidateAuxiliary(SessionContext context, SwitchConnectionDistinguisher connectionCookie,
                                             boolean disconnect) {
         if (context == null) {
-            LOG.warn("context for invalidation not found");
+            LOG.info("context for invalidation not found");
         } else {
             ConnectionConductor auxiliaryConductor = context.removeAuxiliaryConductor(connectionCookie);
             if (auxiliaryConductor == null) {
@@ -205,6 +209,17 @@ public class SessionManagerOFImpl implements ConjunctSessionManager {
             }
         }
 
+        @Override
+        public void setRole(SessionContext context) {
+            for (ListenerRegistration<SessionListener> listener : sessionListeners) {
+                try {
+                    listener.getInstance().setRole(context);
+                } catch (Exception e) {
+                    LOG.error("Unhandled exeption occured while invoking setRole on listener", e);
+                }
+            }
+        }
+
         @Override
         public void onSessionRemoved(SessionContext context) {
             for (ListenerRegistration<SessionListener> listener : sessionListeners) {