RPCEnabled flag moved from DeviceCtx 12/40112/7
authorJozef Bacigal <jbacigal@cisco.com>
Thu, 9 Jun 2016 14:25:37 +0000 (16:25 +0200)
committerJozef Bacigal <jbacigal@cisco.com>
Fri, 17 Jun 2016 11:32:57 +0000 (13:32 +0200)
Change-Id: I00003764f524a550858d85226da7cacd95ded5f1
Signed-off-by: Jozef Bacigal <jbacigal@cisco.com>
12 files changed:
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceManager.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/LifecycleConductor.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/rpc/RpcContext.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/rpc/RpcManager.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImpl.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImplTest.java

index 79b84011b4c720689439c52e73c03cdd65952b36..5b2892ce43803f2bcc044c934f8c6540c1712462 100644 (file)
@@ -52,8 +52,6 @@ public interface DeviceContext extends AutoCloseable,
         XidSequencer,
         OFPContext{
 
-    void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
-
     /**
      * distinguished device context states
      */
index 4e4d1d11eb10cc386c0db5bf71aa37d78fd56802..337f06142d2846f46daee588b932098f0dbc0758 100644 (file)
@@ -21,17 +21,10 @@ import org.opendaylight.openflowplugin.api.openflow.translator.TranslatorLibrari
  * This interface is responsible for instantiating DeviceContext and
  * registering transaction chain for each DeviceContext. Each device
  * has its own device context managed by this manager.
- * Created by Martin Bobak &lt;mbobak@cisco.com&gt; on 25.2.2015.
  */
 public interface DeviceManager extends DeviceConnectedHandler, DeviceDisconnectedHandler, DeviceLifecycleSupervisor,
         DeviceInitializationPhaseHandler, DeviceTerminationPhaseHandler, TranslatorLibrarian, AutoCloseable, OFPManager {
 
-    /**
-     * Sets notification publish service
-     *
-     * @param notificationPublishService
-     */
-    void setNotificationPublishService(NotificationPublishService notificationPublishService);
 
     /**
      * invoked after all services injected
@@ -47,6 +40,5 @@ public interface DeviceManager extends DeviceConnectedHandler, DeviceDisconnecte
      */
     DeviceContext getDeviceContextFromNodeId(DeviceInfo deviceInfo);
 
-    void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
 }
 
index ef87fbfa9d713775d811b4334345ca0d9a6aa5b1..d544c2c791a53d08fee5e10ec5dad711f5b2d9c1 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.openflowplugin.api.openflow.lifecycle;
 
 import io.netty.util.Timeout;
 import io.netty.util.TimerTask;
+import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
 import org.opendaylight.openflowplugin.api.openflow.OFPManager;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
@@ -48,13 +49,6 @@ public interface LifecycleConductor {
      */
     void addOneTimeListenerWhenServicesChangesDone(final ServiceChangeListener manager, final DeviceInfo deviceInfo);
 
-    /**
-     * Returns device of version
-     * @param deviceInfo node identification
-     * @return null if device context doesn't exists
-     */
-    Short gainVersionSafely(final DeviceInfo deviceInfo);
-
     /**
      * Set new timeout for {@link io.netty.util.HashedWheelTimer}
      * @param task timer task
@@ -82,4 +76,8 @@ public interface LifecycleConductor {
      * @return
      */
     Long reserveXidForDeviceMessage(final DeviceInfo deviceInfo);
+
+    NotificationPublishService getNotificationPublishService();
+
+    void setNotificationPublishService(NotificationPublishService notificationPublishService);
 }
index 5d9c6066fb4058af449f75cb6192accfbc27de92..36965c38eeb119b96beb5398e582c7bfec62bcc9 100644 (file)
@@ -25,4 +25,8 @@ public interface RpcContext extends RequestContextStack, AutoCloseable, OFPConte
 
     @Override
     void close();
+
+    void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled);
+
+    boolean isStatisticsRpcEnabled();
 }
index 8952240320db5dfcf9fac262e0c7b2121d773d6e..d208ed248261b7813599022b1595b2c977f992b4 100644 (file)
@@ -23,4 +23,5 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
  */
 public interface RpcManager extends DeviceLifecycleSupervisor, DeviceInitializationPhaseHandler, AutoCloseable, DeviceTerminationPhaseHandler, OFPManager {
 
+    void setStatisticsRpcEnabled(boolean statisticsRpcEnabled);
 }
index 942f1527fee6e2f37e22bc896cbdafaedb04d510..59470c47ab83e89a16748cf0228650b40451ae04 100644 (file)
@@ -19,9 +19,11 @@ import io.netty.util.TimerTask;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
 import org.opendaylight.openflowplugin.api.openflow.OFPManager;
 import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
@@ -31,6 +33,7 @@ import org.opendaylight.openflowplugin.api.openflow.lifecycle.DeviceContextChang
 import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleConductor;
 import org.opendaylight.openflowplugin.api.openflow.lifecycle.RoleChangeListener;
 import org.opendaylight.openflowplugin.api.openflow.lifecycle.ServiceChangeListener;
+import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext;
 import org.opendaylight.openflowplugin.api.openflow.rpc.RpcManager;
 import org.opendaylight.openflowplugin.api.openflow.statistics.StatisticsManager;
 import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency;
@@ -53,6 +56,7 @@ final class LifecycleConductorImpl implements LifecycleConductor, RoleChangeList
     private RpcManager rpcManager;
     private final MessageIntelligenceAgency messageIntelligenceAgency;
     private ConcurrentHashMap<DeviceInfo, ServiceChangeListener> serviceChangeListeners = new ConcurrentHashMap<>();
+    private NotificationPublishService notificationPublishService;
 
     LifecycleConductorImpl(final MessageIntelligenceAgency messageIntelligenceAgency) {
         Preconditions.checkNotNull(messageIntelligenceAgency);
@@ -134,7 +138,7 @@ final class LifecycleConductorImpl implements LifecycleConductor, RoleChangeList
                 return;
             }
 
-            LOG.info("Role change to {} in role context for node {} was successful, starting/stopping services.", newRole, deviceInfo);
+            LOG.info("Role change to {} in role context for node {} was successful.", newRole, deviceInfo);
 
             final String logText;
 
@@ -145,6 +149,13 @@ final class LifecycleConductorImpl implements LifecycleConductor, RoleChangeList
                         rpcManager.gainContext(deviceInfo),
                         deviceContext,
                         OfpRole.BECOMEMASTER);
+                if (((RpcContext)rpcManager.gainContext(deviceInfo)).isStatisticsRpcEnabled()) {
+                    MdSalRegistrationUtils.registerStatCompatibilityServices(
+                            rpcManager.gainContext(deviceInfo),
+                            deviceManager.gainContext(deviceInfo),
+                            notificationPublishService,
+                            new AtomicLong());
+                }
             } else {
                 logText = "Stopp";
                 statisticsManager.stopScheduling(deviceInfo);
@@ -176,12 +187,7 @@ final class LifecycleConductorImpl implements LifecycleConductor, RoleChangeList
 
     @Override
     public DeviceContext getDeviceContext(DeviceInfo deviceInfo){
-         return deviceManager.getDeviceContextFromNodeId(deviceInfo);
-    }
-
-    @Override
-    public Short gainVersionSafely(final DeviceInfo deviceInfo) {
-        return (null != getDeviceContext(deviceInfo)) ? getDeviceContext(deviceInfo).getPrimaryConnectionContext().getFeatures().getVersion() : null;
+         return deviceManager.gainContext(deviceInfo);
     }
 
     public Timeout newTimeout(@Nonnull TimerTask task, long delay, @Nonnull TimeUnit unit) {
@@ -222,4 +228,13 @@ final class LifecycleConductorImpl implements LifecycleConductor, RoleChangeList
         return this.serviceChangeListeners.isEmpty();
     }
 
+    @Override
+    public NotificationPublishService getNotificationPublishService() {
+        return notificationPublishService;
+    }
+
+    @Override
+    public void setNotificationPublishService(NotificationPublishService notificationPublishService) {
+        this.notificationPublishService = notificationPublishService;
+    }
 }
index 1a667e0a499853b11d809c6384c72d0e00f3dbe7..6495f683e5cb922006e0e30097f2fbed791b6c18 100644 (file)
@@ -201,6 +201,7 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider, OpenF
         ((ExtensionConverterProviderKeeper) deviceManager).setExtensionConverterProvider(extensionConverterManager);
 
         conductor.setSafelyManager(deviceManager);
+        conductor.setNotificationPublishService(notificationPublishService);
 
         roleManager = new RoleManagerImpl(entityOwnershipService, dataBroker, conductor);
         statisticsManager = new StatisticsManagerImpl(rpcProviderRegistry, isStatisticsPollingOff, conductor);
@@ -223,8 +224,7 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider, OpenF
         statisticsManager.setDeviceTerminationPhaseHandler(roleManager);
         roleManager.setDeviceTerminationPhaseHandler(deviceManager);
 
-        deviceManager.setStatisticsRpcEnabled(isStatisticsRpcEnabled);
-        deviceManager.setNotificationPublishService(notificationPublishService);
+        rpcManager.setStatisticsRpcEnabled(isStatisticsRpcEnabled);
 
         TranslatorLibraryUtil.setBasicTranslatorLibrary(deviceManager);
         deviceManager.initialize();
index 46186ad3c0a76bd99e8fcb565dbe4d99ac37d778..faf48017a81c7a1612e008881c78822e1e06dd38 100644 (file)
@@ -148,8 +148,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi
     private final DeviceInfo deviceInfo;
 
     private volatile DEVICE_CONTEXT_STATE deviceCtxState;
-    private boolean isStatisticsRpcEnabled;
-
 
     @VisibleForTesting
     DeviceContextImpl(@Nonnull final ConnectionContext primaryConnectionContext,
@@ -264,11 +262,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi
             return Futures.immediateFailedFuture(new IllegalStateException(errMsg));
         }
 
-        if (isStatisticsRpcEnabled) {
-            MdSalRegistrationUtils.registerStatCompatibilityServices(getRpcContext(), this,
-                    notificationPublishService, new AtomicLong());
-        }
-
         /* Prepare init info collecting */
         getDeviceState().setDeviceSynchronized(false);
         transactionChainManager.activateTransactionManager();
@@ -634,11 +627,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi
         deviceMeterRegistry.close();
     }
 
-    @Override
-    public void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled) {
-        this.isStatisticsRpcEnabled = isStatisticsRpcEnabled;
-    }
-
     @Override
     public DEVICE_CONTEXT_STATE getDeviceContextState() {
         return deviceCtxState;
index 2eb7884989da497dbd1fb59e0deeb1ccb5578157..57e5096432038d03fd1c7da6968cb38233925a44 100644 (file)
@@ -68,7 +68,6 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi
     private TranslatorLibrary translatorLibrary;
     private DeviceInitializationPhaseHandler deviceInitPhaseHandler;
     private DeviceTerminationPhaseHandler deviceTerminPhaseHandler;
-    private NotificationPublishService notificationPublishService;
 
     private final ConcurrentMap<DeviceInfo, DeviceContext> deviceContexts = new ConcurrentHashMap<>();
 
@@ -78,7 +77,6 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi
     private ScheduledThreadPoolExecutor spyPool;
 
     private final LifecycleConductor conductor;
-    private boolean isStatisticsRpcEnabled;
 
     public DeviceManagerImpl(@Nonnull final DataBroker dataBroker,
                              final long globalNotificationQuota, final boolean switchFeaturesMandatory,
@@ -168,8 +166,7 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi
         Verify.verify(deviceContexts.putIfAbsent(deviceInfo, deviceContext) == null, "DeviceCtx still not closed.");
 
         ((ExtensionConverterProviderKeeper) deviceContext).setExtensionConverterProvider(extensionConverterProvider);
-        deviceContext.setStatisticsRpcEnabled(isStatisticsRpcEnabled);
-        deviceContext.setNotificationPublishService(notificationPublishService);
+        deviceContext.setNotificationPublishService(conductor.getNotificationPublishService());
 
         updatePacketInRateLimiters();
 
@@ -209,11 +206,6 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi
         this.translatorLibrary = translatorLibrary;
     }
 
-    @Override
-    public void setNotificationPublishService(final NotificationPublishService notificationService) {
-        notificationPublishService = notificationService;
-    }
-
     @Override
     public void close() {
         for (final Iterator<DeviceContext> iterator = Iterators.consumingIterator(deviceContexts.values().iterator());
@@ -246,11 +238,6 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi
         return deviceContexts.get(deviceInfo);
     }
 
-    @Override
-    public void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled) {
-        this.isStatisticsRpcEnabled = isStatisticsRpcEnabled;
-    }
-
     @Override
     public void setExtensionConverterProvider(final ExtensionConverterProvider extensionConverterProvider) {
         this.extensionConverterProvider = extensionConverterProvider;
index ad07d4678d7ac757336dee2236072d38b83f43be..dfbe5fbb745e0363d471961847c822945090e0c1 100644 (file)
@@ -35,6 +35,7 @@ class RpcContextImpl implements RpcContext {
     private final MessageSpy messageSpy;
     private final Semaphore tracker;
     private final XidSequencer xidSequencer;
+    private boolean isStatisticsRpcEnabled;
 
     // TODO: add private Sal salBroker
     private final ConcurrentMap<Class<?>, RoutedRpcRegistration<?>> rpcRegistrations = new ConcurrentHashMap<>();
@@ -136,5 +137,13 @@ class RpcContextImpl implements RpcContext {
         return this.rpcRegistrations.isEmpty();
     }
 
+    @Override
+    public void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled) {
+        this.isStatisticsRpcEnabled = isStatisticsRpcEnabled;
+    }
 
+    @Override
+    public boolean isStatisticsRpcEnabled() {
+        return isStatisticsRpcEnabled;
+    }
 }
index 8857ed9e067f91e0eaf86daa9eb43674459e3a8f..c373cac3abd6fc76ffed354c16df5d7426e7013d 100644 (file)
@@ -34,6 +34,7 @@ public class RpcManagerImpl implements RpcManager {
     private DeviceTerminationPhaseHandler deviceTerminPhaseHandler;
     private final int maxRequestsQuota;
     private final ConcurrentMap<DeviceInfo, RpcContext> contexts = new ConcurrentHashMap<>();
+    private boolean isStatisticsRpcEnabled;
 
     private final LifecycleConductor conductor;
 
@@ -66,6 +67,8 @@ public class RpcManagerImpl implements RpcManager {
 
         Verify.verify(contexts.putIfAbsent(deviceInfo, rpcContext) == null, "RpcCtx still not closed for node {}", deviceInfo.getNodeId());
 
+        rpcContext.setStatisticsRpcEnabled(isStatisticsRpcEnabled);
+
         // finish device initialization cycle back to DeviceManager
         deviceInitPhaseHandler.onDeviceContextLevelUp(deviceInfo);
     }
@@ -107,4 +110,10 @@ public class RpcManagerImpl implements RpcManager {
     public <T extends OFPContext> T gainContext(DeviceInfo deviceInfo) {
         return (T) contexts.get(deviceInfo);
     }
+
+
+    @Override
+    public void setStatisticsRpcEnabled(boolean statisticsRpcEnabled) {
+        isStatisticsRpcEnabled = statisticsRpcEnabled;
+    }
 }
index d044c5d5f9a123a71acd64b3cb1551ecb97b3589..e1d0201f08710779121766ac60e658679c636d7b 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.openflowplugin.impl;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -36,6 +37,7 @@ import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext;
 import org.opendaylight.openflowplugin.api.openflow.rpc.RpcManager;
 import org.opendaylight.openflowplugin.api.openflow.statistics.StatisticsManager;
 import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency;
+import org.opendaylight.openflowplugin.impl.util.MdSalRegistrationUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.role.service.rev150727.OfpRole;
@@ -84,15 +86,16 @@ public class LifecycleConductorImplTest {
 
     @Before
     public void setUp() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext);
-        when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext);
 
         lifecycleConductor = new LifecycleConductorImpl(messageIntelligenceAgency);
         lifecycleConductor.setSafelyManager(deviceManager);
         lifecycleConductor.setSafelyManager(statisticsManager);
         lifecycleConductor.setSafelyManager(rpcManager);
 
-        when(connectionContext.getFeatures()).thenReturn(featuresReply);
+        when(deviceManager.gainContext(Mockito.<DeviceInfo>any())).thenReturn(deviceContext);
+        when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext);
+        when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo);
+        when(rpcManager.gainContext(Mockito.<DeviceInfo>any())).thenReturn(rpcContext);
         when(deviceInfo.getNodeId()).thenReturn(nodeId);
         when(deviceInfo.getDatapathId()).thenReturn(BigInteger.TEN);
         when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo);
@@ -155,7 +158,7 @@ public class LifecycleConductorImplTest {
      */
     @Test
     public void roleChangeOnDeviceTest1() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(null);
         lifecycleConductor.roleChangeOnDevice(deviceInfo,true,ofpRole,false);
         verify(deviceContext,times(0)).shutdownConnection();
         lifecycleConductor.roleChangeOnDevice(deviceInfo,false,ofpRole,false);
@@ -167,7 +170,7 @@ public class LifecycleConductorImplTest {
      */
     @Test
     public void roleChangeOnDeviceTest2() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(deviceContext);
         lifecycleConductor.roleChangeOnDevice(deviceInfo,false,ofpRole,false);
         verify(deviceContext,times(1)).shutdownConnection();
     }
@@ -178,7 +181,7 @@ public class LifecycleConductorImplTest {
      */
     @Test
     public void roleChangeOnDeviceTest3() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(deviceContext);
         lifecycleConductor.roleChangeOnDevice(deviceInfo,true,ofpRole,true);
         verify(deviceContext,times(0)).shutdownConnection();
     }
@@ -189,7 +192,7 @@ public class LifecycleConductorImplTest {
     @Test
     public void roleChangeOnDeviceTest4() {
         when(deviceContext.getDeviceState()).thenReturn(deviceState);
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(deviceContext);
         when(deviceContext.onClusterRoleChange(OfpRole.BECOMEMASTER)).thenReturn(listenableFuture);
         lifecycleConductor.roleChangeOnDevice(deviceInfo,true,OfpRole.BECOMEMASTER,false);
         verify(statisticsManager).startScheduling(Mockito.<DeviceInfo>any());
@@ -201,37 +204,18 @@ public class LifecycleConductorImplTest {
     @Test
     public void roleChangeOnDeviceTest5() {
         when(deviceContext.getDeviceState()).thenReturn(deviceState);
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(deviceContext);
         when(deviceContext.onClusterRoleChange(OfpRole.BECOMESLAVE)).thenReturn(listenableFuture);
         lifecycleConductor.roleChangeOnDevice(deviceInfo,true,OfpRole.BECOMESLAVE,false);
         verify(statisticsManager).stopScheduling(Mockito.<DeviceInfo>any());
     }
 
-    /**
-     * If getDeviceContext returns null nothing should happen
-     */
-    @Test
-    public void gainVersionSafelyTest1() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null);
-        assertNull(lifecycleConductor.gainVersionSafely(deviceInfo));
-    }
-
-    /**
-     * If getDeviceContext returns deviceContext getPrimaryConnectionContext() should be called
-     */
-    @Test
-    public void gainVersionSafelyTest2() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext);
-        lifecycleConductor.gainVersionSafely(deviceInfo);
-        verify(deviceContext,times(1)).getPrimaryConnectionContext();
-    }
-
     /**
      * If getDeviceContext return null then null should be returned
      */
     @Test
     public void gainConnectionStateSafelyTest1() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(null);
         assertNull(lifecycleConductor.gainConnectionStateSafely(deviceInfo));
     }
 
@@ -250,7 +234,7 @@ public class LifecycleConductorImplTest {
      */
     @Test
     public void reserveXidForDeviceMessageTest1() {
-        when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null);
+        when(deviceManager.gainContext(deviceInfo)).thenReturn(null);
         assertNull(lifecycleConductor.reserveXidForDeviceMessage(deviceInfo));
     }