From: Jozef Bacigal Date: Wed, 17 May 2017 07:51:46 +0000 (+0200) Subject: Remove lifecycle service from tx chain manager X-Git-Tag: release/nitrogen~84 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=36340acc64c3dea32ee5fe1ea1943f843b8572f2;p=openflowplugin.git Remove lifecycle service from tx chain manager Change-Id: I6e9f1d7dbdfbdcca5cd52c368985ba7d37310a74 Signed-off-by: Jozef Bacigal --- diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java index ef833ea90c..b4fd0469b2 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceContext.java @@ -19,7 +19,6 @@ import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceReplyProcessor; import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector; import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainStateListener; -import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleService; import org.opendaylight.openflowplugin.api.openflow.registry.ItemLifeCycleRegistry; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader; @@ -134,8 +133,6 @@ public interface DeviceContext extends void setSwitchFeaturesMandatory(boolean switchFeaturesMandatory); - void putLifecycleServiceIntoTxChainManager(LifecycleService lifecycleService); - boolean isSkipTableFeatures(); /** diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java index 1a7614a2cb..34a59a0b4a 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImpl.java @@ -8,7 +8,6 @@ package org.opendaylight.openflowplugin.impl.device; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Verify; import com.google.common.util.concurrent.FutureCallback; @@ -36,12 +35,10 @@ import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; -import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandlerRegistration; import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey; import org.opendaylight.openflowplugin.api.ConnectionException; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; -import org.opendaylight.openflowplugin.api.openflow.connection.OutboundQueueProvider; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager; @@ -54,7 +51,6 @@ import org.opendaylight.openflowplugin.api.openflow.device.handlers.ClusterIniti import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector; import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainMastershipState; import org.opendaylight.openflowplugin.api.openflow.lifecycle.ContextChainState; -import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleService; import org.opendaylight.openflowplugin.api.openflow.lifecycle.MastershipChangeListener; import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher; import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey; @@ -79,7 +75,6 @@ import org.opendaylight.openflowplugin.impl.datastore.MultipartWriterProviderFac import org.opendaylight.openflowplugin.impl.device.initialization.AbstractDeviceInitializer; import org.opendaylight.openflowplugin.impl.device.initialization.DeviceInitializerProvider; import org.opendaylight.openflowplugin.impl.device.listener.MultiMsgCollectorImpl; -import org.opendaylight.openflowplugin.impl.device.listener.OpenflowProtocolListenerFullImpl; import org.opendaylight.openflowplugin.impl.registry.flow.DeviceFlowRegistryImpl; import org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory; import org.opendaylight.openflowplugin.impl.registry.group.DeviceGroupRegistryImpl; @@ -178,7 +173,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi private final DeviceManager myManager; private final DeviceInitializerProvider deviceInitializerProvider; private final boolean useSingleLayerSerialization; - private OutboundQueueProvider outboundQueueProvider; private boolean hasState; DeviceContextImpl( @@ -194,7 +188,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi final DeviceInitializerProvider deviceInitializerProvider) { this.primaryConnectionContext = primaryConnectionContext; - this.outboundQueueProvider = (OutboundQueueProvider) primaryConnectionContext.getOutboundQueueProvider(); this.deviceInfo = primaryConnectionContext.getDeviceInfo(); this.hashedWheelTimer = hashedWheelTimer; this.deviceInitializerProvider = deviceInitializerProvider; @@ -616,13 +609,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi //NOOP } - @Override - public void putLifecycleServiceIntoTxChainManager(final LifecycleService lifecycleService){ - if (initialized) { - this.transactionChainManager.setLifecycleService(lifecycleService); - } - } - @Override public boolean canUseSingleLayerSerialization() { return useSingleLayerSerialization && getDeviceInfo().getVersion() >= OFConstants.OFP_VERSION_1_3; diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java index 04b212f085..e0f1027273 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java @@ -21,7 +21,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import javax.annotation.concurrent.GuardedBy; import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain; import org.opendaylight.controller.md.sal.binding.api.DataBroker; @@ -33,7 +32,6 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosed import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; -import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleService; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -56,7 +54,6 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable private final Object txLock = new Object(); private final DataBroker dataBroker; private final String nodeId; - private LifecycleService lifecycleService; @GuardedBy("txLock") private WriteTransaction wTx; @@ -75,7 +72,7 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable TransactionChainManager(@Nonnull final DataBroker dataBroker, @Nonnull final DeviceInfo deviceInfo) { this.dataBroker = dataBroker; - this.nodeId = deviceInfo.getNodeInstanceIdentifier().getKey().getId().getValue(); + this.nodeId = deviceInfo.getLOGValue(); this.lastSubmittedFuture = Futures.immediateFuture(null); } @@ -86,10 +83,6 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable Optional.ofNullable(txChainFactoryTemp).ifPresent(TransactionChain::close); } - public void setLifecycleService(final LifecycleService lifecycleService) { - this.lifecycleService = lifecycleService; - } - boolean initialSubmitWriteTransaction() { enableSubmit(); return submitWriteTransaction(); @@ -102,12 +95,15 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable */ void activateTransactionManager() { if (LOG.isDebugEnabled()) { - LOG.debug("activateTransactionManager for node {} transaction submit is set to {}", this.nodeId, submitIsEnabled); + LOG.debug("activateTransactionManager for node {} transaction submit is set to {}", + this.nodeId, submitIsEnabled); } synchronized (txLock) { if (TransactionChainManagerStatus.SLEEPING == transactionChainManagerStatus) { - Preconditions.checkState(txChainFactory == null, "TxChainFactory survive last close."); - Preconditions.checkState(wTx == null, "We have some unexpected WriteTransaction."); + Preconditions.checkState(txChainFactory == null, + "TxChainFactory survive last close."); + Preconditions.checkState(wTx == null, + "We have some unexpected WriteTransaction."); this.transactionChainManagerStatus = TransactionChainManagerStatus.WORKING; this.submitIsEnabled = false; this.initCommit = true; @@ -131,7 +127,8 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable if (TransactionChainManagerStatus.WORKING == transactionChainManagerStatus) { transactionChainManagerStatus = TransactionChainManagerStatus.SLEEPING; future = txChainShuttingDown(); - Preconditions.checkState(wTx == null, "We have some unexpected WriteTransaction."); + Preconditions.checkState(wTx == null, + "We have some unexpected WriteTransaction."); Futures.addCallback(future, new FutureCallback() { @Override public void onSuccess(final Void result) { @@ -144,7 +141,7 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable } }); } else { - // TODO : ignoring redundant deactivate invocation + // ignoring redundant deactivate invocation future = Futures.immediateCheckedFuture(null); } } @@ -171,7 +168,8 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable return true; } Preconditions.checkState(TransactionChainManagerStatus.WORKING == transactionChainManagerStatus, - "we have here Uncompleted Transaction for node {} and we are not MASTER", this.nodeId); + "we have here Uncompleted Transaction for node {} and we are not MASTER", + this.nodeId); final CheckedFuture submitFuture = wTx.submit(); lastSubmittedFuture = submitFuture; wTx = null; @@ -257,7 +255,6 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable } @GuardedBy("txLock") - @Nullable private void ensureTransaction() { if (wTx == null && TransactionChainManagerStatus.WORKING == transactionChainManagerStatus && txChainFactory != null) {