Fix context chain closing 14/57814/38
authorTomas Slusny <tomas.slusny@pantheon.tech>
Thu, 25 May 2017 13:26:44 +0000 (15:26 +0200)
committerTomas Slusny <tomas.slusny@pantheon.tech>
Fri, 23 Jun 2017 15:03:27 +0000 (17:03 +0200)
commita12f9f020650faad66c9390b566c3a3275afebc3
tree112856aae6479e027b9434e5a94fd8bac035648f
parent7216a8f4985eb4f2bcdb603bdeaac84e399d1742
Fix context chain closing

- Close and create EOS registration correctly when closing context
chain holder and creating context chain holder.
- Cancel running scheduled task on context chain holder termination
- Always remove device from DS when we was not able to propagate roles,
not only when we have this device already in context chain map
- Add toleration for adding context chains to queue
- Wait for registration of RPC services before fully granting mastership
for context chain
- Close transaction chain manager on device context close
- Remove unnecessary auxiliary connection gathering in device context
(because this was moved to context chain)
- Fix closing of TxChain when DeviceContext is closed when activating tx
chain manager but not enabling submit transaction (do not try to submit
data)
- Unregister RPC registrations on RpcContext close
- Do not close ClusterSingletonServiceRegistration during
ClusterSingletonService initialization, to prevent freeze of
ClusterSingletonServiceGroup, send it to separate thread
- Prevent propagating of connection closed event twice (add checks for
RIP connection state)
- Fix ignored tests
- Remove getter for table statistics boolean from DeviceContext and just
send it to DeviceInitializer
- Close all RPC contexts when RPC manager is closed
- Do not reschedule statistics one more time when context chain is
closed

Resolves: bug 8668

Change-Id: Ifa8c492486c17a73eccd760fc610a435ef6a42ed
Signed-off-by: Tomas Slusny <tomas.slusny@pantheon.tech>
33 files changed:
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/OFPContext.java
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/ContextChain.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChainHolder.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChainMastershipState.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionContextImpl.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/device/TransactionChainManager.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/AbstractDeviceInitializer.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/DeviceInitializerProvider.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/OF10DeviceInitializer.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/initialization/OF13DeviceInitializer.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/lifecycle/LifecycleServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/registry/group/DeviceGroupRegistryImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/registry/meter/DeviceMeterRegistryImpl.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/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/ItemScheduler.java [new file with mode: 0644]
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistrationUtils.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainHolderImplTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/ContextChainImplTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/lifecycle/LifecycleServiceImplTest.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java