import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- *
- */
public class DeviceContextImpl implements DeviceContext, ExtensionConverterProviderKeeper{
private static final Logger LOG = LoggerFactory.getLogger(DeviceContextImpl.class);
@Override
public void initialSubmitTransaction() {
- transactionChainManager.initialSubmitWriteTransaction();
+ if (initialized) {
+ transactionChainManager.initialSubmitWriteTransaction();
+ }
}
@Override
public <T extends DataObject> void writeToTransaction(final LogicalDatastoreType store,
final InstanceIdentifier<T> path,
final T data){
- if (Objects.nonNull(transactionChainManager)) {
+ if (initialized) {
transactionChainManager.writeToTransaction(store, path, data, false);
}
}
public <T extends DataObject> void writeToTransactionWithParentsSlow(final LogicalDatastoreType store,
final InstanceIdentifier<T> path,
final T data){
- if (Objects.nonNull(transactionChainManager)) {
+ if (initialized) {
transactionChainManager.writeToTransaction(store, path, data, true);
}
}
@Override
- public <T extends DataObject> void addDeleteToTxChain(final LogicalDatastoreType store, final InstanceIdentifier<T> path) {
- if (Objects.nonNull(transactionChainManager)) {
+ public <T extends DataObject> void addDeleteToTxChain(final LogicalDatastoreType store, final InstanceIdentifier<T> path) throws TransactionChainClosedException {
+ if (initialized) {
transactionChainManager.addDeleteOperationTotTxChain(store, path);
}
}
@Override
public boolean submitTransaction() {
- return Objects.nonNull(transactionChainManager) && transactionChainManager.submitWriteTransaction();
+ return initialized && transactionChainManager.submitWriteTransaction();
}
@Override
LOG.debug("ConnectionCtx for Node {} is in RIP state.", getDeviceInfo().getLOGValue());
return;
}
- /* Terminate Auxiliary Connection */
+
+ // Terminate Auxiliary Connection
for (final ConnectionContext connectionContext : auxiliaryConnectionContexts.values()) {
LOG.debug("Closing auxiliary connection {}", connectionContext.getNodeId());
connectionContext.closeConnection(false);
}
- /* Terminate Primary Connection */
+
+ // Terminate Primary Connection
getPrimaryConnectionContext().closeConnection(true);
- /* Close all Group Registry */
- deviceGroupRegistry.close();
- deviceFlowRegistry.close();
- deviceMeterRegistry.close();
+
+ // Close all datastore registries
+ if (initialized) {
+ deviceGroupRegistry.close();
+ deviceFlowRegistry.close();
+ deviceMeterRegistry.close();
+ }
}
@Override
public ListenableFuture<Void> shuttingDownDataStoreTransactions() {
- ListenableFuture<Void> future = Futures.immediateFuture(null);
- if (Objects.nonNull(this.transactionChainManager)) {
- future = this.transactionChainManager.shuttingDown();
- }
- return future;
+ return initialized
+ ? this.transactionChainManager.shuttingDown()
+ : Futures.immediateFuture(null);
}
@VisibleForTesting
@Override
public ListenableFuture<Void> stopClusterServices(boolean deviceDisconnected) {
- ListenableFuture<Void> future = Futures.immediateFuture(null);
- if (Objects.nonNull(this.transactionChainManager)) {
- future = this.transactionChainManager.deactivateTransactionManager();
- }
- return future;
+ return initialized
+ ? this.transactionChainManager.deactivateTransactionManager()
+ : Futures.immediateFuture(null);
}
@Override
@Override
public void putLifecycleServiceIntoTxChainManager(final LifecycleService lifecycleService){
- if (Objects.nonNull(this.transactionChainManager)) {
+ if (initialized) {
this.transactionChainManager.setLifecycleService(lifecycleService);
}
}
@Before
public void setUp() {
- lifecycleService = new LifecycleServiceImpl();
- lifecycleService.setDeviceContext(deviceContext);
- lifecycleService.setRpcContext(rpcContext);
- lifecycleService.setRoleContext(roleContext);
- lifecycleService.setStatContext(statContext);
- lifecycleService.registerService(clusterSingletonServiceProvider);
Mockito.when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo);
Mockito.when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext);
Mockito.when(deviceContext.getDeviceFlowRegistry()).thenReturn(deviceFlowRegistry);
Mockito.when(deviceFlowRegistry.fill()).thenReturn(Futures.immediateFuture(null));
Mockito.when(connectionContext.getConnectionState()).thenReturn(ConnectionContext.CONNECTION_STATE.WORKING);
Mockito.when(deviceInfo.getLOGValue()).thenReturn(TEST_NODE);
+
+ lifecycleService = new LifecycleServiceImpl();
+ lifecycleService.setDeviceContext(deviceContext);
+ lifecycleService.setRpcContext(rpcContext);
+ lifecycleService.setRoleContext(roleContext);
+ lifecycleService.setStatContext(statContext);
+ lifecycleService.registerService(clusterSingletonServiceProvider);
}
@Test