From 6e2627630ebabb37526133a13deeb62adcc85d35 Mon Sep 17 00:00:00 2001 From: Jozef Bacigal Date: Wed, 8 Jun 2016 14:01:50 +0200 Subject: [PATCH] DeviceState changes - basic device info removed from device state - in device context added method to return device info - jeopardy flag added to tests Change-Id: I466f87c595033c72cb588ca3f00d2c222b46070d Signed-off-by: Jozef Bacigal --- .../api/openflow/device/DeviceContext.java | 2 + .../api/openflow/device/DeviceManager.java | 7 +- .../api/openflow/device/DeviceState.java | 24 +---- .../openflow/device/MessageTranslator.java | 4 +- .../DeviceContextChangeListener.java | 10 +-- .../lifecycle/LifecycleConductor.java | 23 ++--- .../lifecycle/RoleChangeListener.java | 10 +-- .../lifecycle/ServiceChangeListener.java | 6 +- .../impl/LifecycleConductorImpl.java | 87 ++++++++++--------- .../impl/device/DeviceContextImpl.java | 44 ++++++---- .../impl/device/DeviceManagerImpl.java | 13 +-- .../impl/device/DeviceStateImpl.java | 34 +------- .../impl/device/TransactionChainManager.java | 12 +-- .../impl/role/RoleContextImpl.java | 2 +- .../impl/role/RoleManagerImpl.java | 48 +++++----- .../impl/rpc/RpcManagerImpl.java | 4 +- .../AbstractMultipartOnTheFlyService.java | 4 +- .../impl/services/AbstractService.java | 10 +-- .../MultipartRequestOnTheFlyCallback.java | 20 +++-- .../impl/services/SalFlowServiceImpl.java | 8 +- .../impl/services/SalGroupServiceImpl.java | 4 +- .../impl/services/SalMeterServiceImpl.java | 4 +- .../statistics/StatisticsContextImpl.java | 10 +-- .../statistics/StatisticsGatheringUtils.java | 53 +++++------ .../statistics/StatisticsManagerImpl.java | 10 +-- .../AggregateFlowsInTableService.java | 4 +- .../services/AllFlowsInAllTablesService.java | 2 +- .../services/AllFlowsInTableService.java | 2 +- .../services/AllGroupsStatsService.java | 2 +- .../services/AllMeterConfigStatsService.java | 2 +- .../services/AllMeterStatsService.java | 2 +- .../services/AllQueuesAllPortsService.java | 2 +- .../services/AllQueuesOnePortService.java | 2 +- .../services/FlowsInTableService.java | 2 +- .../services/GroupDescriptionService.java | 2 +- .../services/GroupFeaturesService.java | 2 +- .../services/GroupStatsService.java | 2 +- .../services/MeterFeaturesService.java | 2 +- .../services/MeterStatsService.java | 2 +- .../services/OneQueueOnePortService.java | 2 +- ...OpendaylightFlowStatisticsServiceImpl.java | 2 +- ...aylightFlowTableStatisticsServiceImpl.java | 2 +- ...owStatisticsToNotificationTransformer.java | 11 +-- ...upStatisticsToNotificationTransformer.java | 12 ++- ...erStatisticsToNotificationTransformer.java | 9 +- ...orStatisticsToNotificationTransformer.java | 4 +- ...ueStatisticsToNotificationTransformer.java | 11 +-- .../direct/FlowDirectStatisticsService.java | 2 +- .../direct/GroupDirectStatisticsService.java | 2 +- .../direct/MeterDirectStatisticsService.java | 2 +- .../NodeConnectorDirectStatisticsService.java | 2 +- .../direct/QueueDirectStatisticsService.java | 2 +- .../AggregatedFlowStatisticsTranslator.java | 4 +- .../translator/FlowRemovedTranslator.java | 12 +-- .../translator/FlowRemovedV10Translator.java | 6 +- .../translator/PacketReceivedTranslator.java | 9 +- .../impl/translator/PortUpdateTranslator.java | 8 +- .../impl/util/DeviceInitializationUtils.java | 70 +++++++-------- .../impl/LifecycleConductorImplTest.java | 72 +++++++-------- .../impl/device/DeviceContextImplTest.java | 21 ++--- .../impl/device/DeviceManagerImplTest.java | 4 +- .../impl/device/DeviceStateImplTest.java | 46 +--------- .../device/TransactionChainManagerTest.java | 9 +- .../flow/FlowRegistryKeyFactoryTest.java | 5 +- .../impl/role/RoleContextImplTest.java | 2 +- .../impl/role/RoleManagerImplTest.java | 40 ++++----- .../impl/rpc/RpcContextImplTest.java | 5 +- .../impl/rpc/RpcManagerImplTest.java | 10 +-- ...FlowCapableTransactionServiceImplTest.java | 2 +- .../MultipartRequestOnTheFlyCallbackTest.java | 18 ++-- .../PacketProcessingServiceImplTest.java | 2 +- ...SalExperimenterMessageServiceImplTest.java | 2 +- .../impl/services/SalFlowServiceImplTest.java | 9 +- .../impl/services/SalRoleServiceImplTest.java | 9 +- .../impl/services/ServiceMocking.java | 9 +- .../StatisticsContextImpMockInitiation.java | 12 +-- .../statistics/StatisticsContextImplTest.java | 6 +- .../StatisticsGatheringUtilsTest.java | 27 +++--- .../statistics/StatisticsManagerImplTest.java | 11 ++- .../services/AbstractStatsServiceTest.java | 10 ++- ...aylightFlowStatisticsServiceImpl2Test.java | 2 +- .../AbstractCompatibleStatServiceTest.java | 11 ++- ...FlowStatisticsServiceDelegateImplTest.java | 2 +- ...tatisticsGatheringOnTheFlyServiceTest.java | 2 +- .../AbstractDirectStatisticsServiceTest.java | 15 ++-- ...ggregatedFlowStatisticsTranslatorTest.java | 5 +- .../translator/FlowRemovedTranslatorTest.java | 11 ++- .../PacketReceivedTranslatorTest.java | 11 ++- .../translator/PortUpdateTranslatorTest.java | 13 +-- .../util/DeviceInitializationUtilsTest.java | 15 ++-- .../impl/util/MdSalRegistrationUtilsTest.java | 6 +- 91 files changed, 525 insertions(+), 554 deletions(-) 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 81c2ce6f45..0a38e6e9c6 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 @@ -103,6 +103,8 @@ public interface DeviceContext extends AutoCloseable, */ DeviceState getDeviceState(); + DeviceInfo getDeviceInfo(); + /** * Method has to activate (MASTER) or deactivate (SLAVE) TransactionChainManager. * TransactionChainManager represents possibility to write or delete Node subtree data diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceManager.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceManager.java index 15d59383eb..0e199c26f8 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceManager.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceManager.java @@ -15,7 +15,6 @@ import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceInitia import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceLifecycleSupervisor; import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceTerminationPhaseHandler; import org.opendaylight.openflowplugin.api.openflow.translator.TranslatorLibrarian; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; /** * This interface is responsible for instantiating DeviceContext and @@ -42,10 +41,10 @@ public interface DeviceManager extends DeviceConnectedHandler, DeviceDisconnecte * Returning device context from map maintained in device manager * This prevent to send whole device context to another context * If device context not exists for nodeId it will return null - * @param nodeId - * @return device context or null + * + * @param deviceInfo@return device context or null */ - DeviceContext getDeviceContextFromNodeId(NodeId nodeId); + DeviceContext getDeviceContextFromNodeId(DeviceInfo deviceInfo); void setStatisticsRpcEnabled(boolean isStatisticsRpcEnabled); } diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceState.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceState.java index 36161c386a..118ec6684b 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceState.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/DeviceState.java @@ -15,25 +15,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; /** - * Created by Martin Bobak <mbobak@cisco.com> on 25.2.2015. + * Holder of device's structure */ public interface DeviceState { - /** - * @return id of encapsulated node - */ - NodeId getNodeId(); - - /** - * @return {@link Node} instance identifier - */ - KeyedInstanceIdentifier getNodeInstanceIdentifier(); - - /** - * @return the features of corresponding switch - */ - GetFeaturesOutput getFeatures(); - /** * @return true if this session is valid */ @@ -44,13 +29,6 @@ public interface DeviceState { */ void setValid(boolean valid); - /** - * Return node current OF protocol version - * - * @return - */ - short getVersion(); - /** * Return true if we have relevant meter information * from device diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/MessageTranslator.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/MessageTranslator.java index 4738218827..2dea3a85ee 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/MessageTranslator.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/MessageTranslator.java @@ -18,10 +18,10 @@ public interface MessageTranslator { /** * Translates from input to output * @param input - * @param deviceState + * @param deviceInfo * @param connectionDistinguisher * @return message of output type */ - O translate(I input, DeviceState deviceState, Object connectionDistinguisher); + O translate(I input, DeviceInfo deviceInfo, Object connectionDistinguisher); } diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/DeviceContextChangeListener.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/DeviceContextChangeListener.java index 19854c7913..33d63b7861 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/DeviceContextChangeListener.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/DeviceContextChangeListener.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.api.openflow.lifecycle; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; /** * This API is for all listeners who wish to know about device context in cluster @@ -17,16 +17,16 @@ public interface DeviceContextChangeListener { /** * Notification about start phase in device context, right after successful handshake - * @param nodeId + * @param deviceInfo * @param success or failure */ - void deviceStartInitializationDone(final NodeId nodeId, final boolean success); + void deviceStartInitializationDone(final DeviceInfo deviceInfo, final boolean success); /** * Notification about start phase in device context, after all other contexts initialized properly - * @param nodeId + * @param deviceInfo * @param success */ - void deviceInitializationDone(final NodeId nodeId, final boolean success); + void deviceInitializationDone(final DeviceInfo deviceInfo, final boolean success); } diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/LifecycleConductor.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/LifecycleConductor.java index 879bd63acd..05e67d86a8 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/LifecycleConductor.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/LifecycleConductor.java @@ -11,6 +11,7 @@ package org.opendaylight.openflowplugin.api.openflow.lifecycle; import io.netty.util.Timeout; import io.netty.util.TimerTask; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager; import org.opendaylight.openflowplugin.api.openflow.statistics.StatisticsManager; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency; @@ -27,24 +28,24 @@ public interface LifecycleConductor { /** * Returns device context from device manager device contexts maps - * @param nodeId node identification - * @return null if context doesn't exists + * + * @param deviceInfo@return null if context doesn't exists */ - DeviceContext getDeviceContext(final NodeId nodeId); + DeviceContext getDeviceContext(DeviceInfo deviceInfo); /** * Registers ont time listener for notify when services rpc, statistics are done stop or start * @param manager service change listener - * @param nodeId node identification + * @param deviceInfo node identification */ - void addOneTimeListenerWhenServicesChangesDone(final ServiceChangeListener manager, final NodeId nodeId); + void addOneTimeListenerWhenServicesChangesDone(final ServiceChangeListener manager, final DeviceInfo deviceInfo); /** * Returns device of version - * @param nodeId node identification + * @param deviceInfo node identification * @return null if device context doesn't exists */ - Short gainVersionSafely(final NodeId nodeId); + Short gainVersionSafely(final DeviceInfo deviceInfo); /** * Set new timeout for {@link io.netty.util.HashedWheelTimer} @@ -63,9 +64,9 @@ public interface LifecycleConductor { /** * Interrupt connection for the node - * @param nodeId node identification + * @param deviceInfo node identification */ - void closeConnection(final NodeId nodeId); + void closeConnection(final DeviceInfo deviceInfo); /** * Setter for device manager once set it cant be unset or overwritten @@ -81,8 +82,8 @@ public interface LifecycleConductor { /** * Xid from outboundqueue - * @param nodeId + * @param deviceInfo * @return */ - Long reserveXidForDeviceMessage(final NodeId nodeId); + Long reserveXidForDeviceMessage(final DeviceInfo deviceInfo); } diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/RoleChangeListener.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/RoleChangeListener.java index f830966234..77ad9fa3e6 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/RoleChangeListener.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/RoleChangeListener.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.api.openflow.lifecycle; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.yang.gen.v1.urn.opendaylight.role.service.rev150727.OfpRole; /** @@ -18,18 +18,18 @@ public interface RoleChangeListener { /** * Notification when initialization for role context is done - * @param nodeId + * @param deviceInfo * @param success or failure */ - void roleInitializationDone(final NodeId nodeId, final boolean success); + void roleInitializationDone(final DeviceInfo deviceInfo, final boolean success); /** * Notification when the role change on device is done - * @param nodeId + * @param deviceInfo * @param success * @param newRole * @param initializationPhase */ - void roleChangeOnDevice(final NodeId nodeId, final boolean success, final OfpRole newRole, final boolean initializationPhase); + void roleChangeOnDevice(final DeviceInfo deviceInfo, final boolean success, final OfpRole newRole, final boolean initializationPhase); } diff --git a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ServiceChangeListener.java b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ServiceChangeListener.java index 5afe5bba90..ae94d4be7c 100644 --- a/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ServiceChangeListener.java +++ b/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ServiceChangeListener.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.api.openflow.lifecycle; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; /** * This API is defined for listening when services (Statistics and RPCs) are fully stopped @@ -18,9 +18,9 @@ public interface ServiceChangeListener { /** * Notification when services (rpc, statistics) are started or stopped working - * @param nodeId + * @param deviceInfo * @param success */ - void servicesChangeDone(NodeId nodeId, boolean success); + void servicesChangeDone(DeviceInfo deviceInfo, boolean success); } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImpl.java index d3ce2b7590..dfcf5c7327 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImpl.java @@ -23,6 +23,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager; import org.opendaylight.openflowplugin.api.openflow.lifecycle.DeviceContextChangeListener; import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleConductor; @@ -46,7 +47,7 @@ public final class LifecycleConductorImpl implements LifecycleConductor, RoleCha private final HashedWheelTimer hashedWheelTimer = new HashedWheelTimer(TICK_DURATION, TimeUnit.MILLISECONDS, TICKS_PER_WHEEL); private DeviceManager deviceManager; private final MessageIntelligenceAgency messageIntelligenceAgency; - private ConcurrentHashMap serviceChangeListeners = new ConcurrentHashMap<>(); + private ConcurrentHashMap serviceChangeListeners = new ConcurrentHashMap<>(); private StatisticsManager statisticsManager; public LifecycleConductorImpl(final MessageIntelligenceAgency messageIntelligenceAgency) { @@ -66,63 +67,63 @@ public final class LifecycleConductorImpl implements LifecycleConductor, RoleCha } } - public void addOneTimeListenerWhenServicesChangesDone(final ServiceChangeListener manager, final NodeId nodeId){ - LOG.debug("Listener {} for service change for node {} registered.", manager, nodeId); - serviceChangeListeners.put(nodeId, manager); + public void addOneTimeListenerWhenServicesChangesDone(final ServiceChangeListener manager, final DeviceInfo deviceInfo){ + LOG.debug("Listener {} for service change for node {} registered.", manager, deviceInfo.getNodeId()); + serviceChangeListeners.put(deviceInfo, manager); } @VisibleForTesting - void notifyServiceChangeListeners(final NodeId nodeId, final boolean success){ + void notifyServiceChangeListeners(final DeviceInfo deviceInfo, final boolean success){ if (serviceChangeListeners.size() == 0) { return; } LOG.debug("Notifying registered listeners for service change, no. of listeners {}", serviceChangeListeners.size()); - for (final Map.Entry nodeIdServiceChangeListenerEntry : serviceChangeListeners.entrySet()) { - if (nodeIdServiceChangeListenerEntry.getKey().equals(nodeId)) { - LOG.debug("Listener {} for service change for node {} was notified. Success was set on {}", nodeIdServiceChangeListenerEntry.getValue(), nodeId, success); - nodeIdServiceChangeListenerEntry.getValue().servicesChangeDone(nodeId, success); - serviceChangeListeners.remove(nodeId); + for (final Map.Entry nodeIdServiceChangeListenerEntry : serviceChangeListeners.entrySet()) { + if (nodeIdServiceChangeListenerEntry.getKey().equals(deviceInfo)) { + LOG.debug("Listener {} for service change for node {} was notified. Success was set on {}", nodeIdServiceChangeListenerEntry.getValue(), deviceInfo, success); + nodeIdServiceChangeListenerEntry.getValue().servicesChangeDone(deviceInfo, success); + serviceChangeListeners.remove(deviceInfo); } } } @Override - public void roleInitializationDone(final NodeId nodeId, final boolean success) { + public void roleInitializationDone(final DeviceInfo deviceInfo, final boolean success) { if (!success) { - LOG.warn("Initialization phase for node {} in role context was NOT successful, closing connection.", nodeId); - closeConnection(nodeId); + LOG.warn("Initialization phase for node {} in role context was NOT successful, closing connection.", deviceInfo); + closeConnection(deviceInfo); } else { - LOG.info("initialization phase for node {} in role context was successful, continuing to next context.", nodeId); + LOG.info("initialization phase for node {} in role context was successful, continuing to next context.", deviceInfo); } } - public void closeConnection(final NodeId nodeId) { - LOG.debug("Close connection called for node {}", nodeId); - final DeviceContext deviceContext = getDeviceContext(nodeId); + public void closeConnection(final DeviceInfo deviceInfo) { + LOG.debug("Close connection called for node {}", deviceInfo); + final DeviceContext deviceContext = getDeviceContext(deviceInfo); if (null != deviceContext) { deviceContext.shutdownConnection(); } } @Override - public void roleChangeOnDevice(final NodeId nodeId, final boolean success, final OfpRole newRole, final boolean initializationPhase) { + public void roleChangeOnDevice(final DeviceInfo deviceInfo, final boolean success, final OfpRole newRole, final boolean initializationPhase) { - final DeviceContext deviceContext = getDeviceContext(nodeId); + final DeviceContext deviceContext = getDeviceContext(deviceInfo); if (null == deviceContext) { LOG.warn("Something went wrong, device context for nodeId: {} doesn't exists"); return; } if (!success) { - LOG.warn("Role change to {} in role context for node {} was NOT successful, closing connection", newRole, nodeId); - closeConnection(nodeId); + LOG.warn("Role change to {} in role context for node {} was NOT successful, closing connection", newRole, deviceInfo); + closeConnection(deviceInfo); } else { if (initializationPhase) { LOG.debug("Initialization phase skipping starting services."); return; } - LOG.info("Role change to {} in role context for node {} was successful, starting/stopping services.", newRole, nodeId); + LOG.info("Role change to {} in role context for node {} was successful, starting/stopping services.", newRole, deviceInfo); if (OfpRole.BECOMEMASTER.equals(newRole)) { statisticsManager.startScheduling(deviceContext.getPrimaryConnectionContext().getDeviceInfo()); @@ -134,14 +135,14 @@ public final class LifecycleConductorImpl implements LifecycleConductor, RoleCha Futures.addCallback(onClusterRoleChange, new FutureCallback() { @Override public void onSuccess(@Nullable final Void aVoid) { - LOG.info("Starting/Stopping services for node {} was successful", nodeId); - if (newRole.equals(OfpRole.BECOMESLAVE)) notifyServiceChangeListeners(nodeId, true); + LOG.info("Starting/Stopping services for node {} was successful", deviceInfo); + if (newRole.equals(OfpRole.BECOMESLAVE)) notifyServiceChangeListeners(deviceInfo, true); } @Override public void onFailure(final Throwable throwable) { - LOG.warn("Starting/Stopping services for node {} was NOT successful, closing connection", nodeId); - closeConnection(nodeId); + LOG.warn("Starting/Stopping services for node {} was NOT successful, closing connection", deviceInfo); + closeConnection(deviceInfo); } }); } @@ -152,43 +153,45 @@ public final class LifecycleConductorImpl implements LifecycleConductor, RoleCha } @Override - public DeviceContext getDeviceContext(final NodeId nodeId){ - return deviceManager.getDeviceContextFromNodeId(nodeId); + public DeviceContext getDeviceContext(DeviceInfo deviceInfo){ + return deviceManager.getDeviceContextFromNodeId(deviceInfo); } - public Short gainVersionSafely(final NodeId nodeId) { - return (null != getDeviceContext(nodeId)) ? getDeviceContext(nodeId).getPrimaryConnectionContext().getFeatures().getVersion() : null; + @Override + public Short gainVersionSafely(final DeviceInfo deviceInfo) { + return (null != getDeviceContext(deviceInfo)) ? getDeviceContext(deviceInfo).getPrimaryConnectionContext().getFeatures().getVersion() : null; } public Timeout newTimeout(@Nonnull TimerTask task, long delay, @Nonnull TimeUnit unit) { return hashedWheelTimer.newTimeout(task, delay, unit); } - public ConnectionContext.CONNECTION_STATE gainConnectionStateSafely(final NodeId nodeId){ - return (null != getDeviceContext(nodeId)) ? getDeviceContext(nodeId).getPrimaryConnectionContext().getConnectionState() : null; + ConnectionContext.CONNECTION_STATE gainConnectionStateSafely(final DeviceInfo deviceInfo){ + return (null != getDeviceContext(deviceInfo)) ? getDeviceContext(deviceInfo).getPrimaryConnectionContext().getConnectionState() : null; } - public Long reserveXidForDeviceMessage(final NodeId nodeId){ - return null != getDeviceContext(nodeId) ? getDeviceContext(nodeId).reserveXidForDeviceMessage() : null; + @Override + public Long reserveXidForDeviceMessage(final DeviceInfo deviceInfo){ + return null != getDeviceContext(deviceInfo) ? getDeviceContext(deviceInfo).reserveXidForDeviceMessage() : null; } @Override - public void deviceStartInitializationDone(final NodeId nodeId, final boolean success) { + public void deviceStartInitializationDone(final DeviceInfo deviceInfo, final boolean success) { if (!success) { - LOG.warn("Initialization phase for node {} in device context was NOT successful, closing connection.", nodeId); - closeConnection(nodeId); + LOG.warn("Initialization phase for node {} in device context was NOT successful, closing connection.", deviceInfo); + closeConnection(deviceInfo); } else { - LOG.info("initialization phase for node {} in device context was successful. Continuing to next context.", nodeId); + LOG.info("initialization phase for node {} in device context was successful. Continuing to next context.", deviceInfo); } } @Override - public void deviceInitializationDone(final NodeId nodeId, final boolean success) { + public void deviceInitializationDone(final DeviceInfo deviceInfo, final boolean success) { if (!success) { - LOG.warn("Initialization phase for node {} in device context was NOT successful, closing connection.", nodeId); - closeConnection(nodeId); + LOG.warn("Initialization phase for node {} in device context was NOT successful, closing connection.", deviceInfo); + closeConnection(deviceInfo); } else { - LOG.info("initialization phase for node {} in device context was successful. All phases initialized OK.", nodeId); + LOG.info("initialization phase for node {} in device context was successful. All phases initialized OK.", deviceInfo); } } 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 28f0bf1499..7b0851c789 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 @@ -165,23 +165,25 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi this.dataBroker = Preconditions.checkNotNull(dataBroker); Preconditions.checkNotNull(conductor); this.outboundQueueProvider = Preconditions.checkNotNull(outboundQueueProvider); - this.transactionChainManager = new TransactionChainManager(dataBroker, deviceState, conductor); + deviceInfo = primaryConnectionContext.getDeviceInfo(); + this.transactionChainManager = new TransactionChainManager(dataBroker, deviceInfo, conductor); auxiliaryConnectionContexts = new HashMap<>(); deviceFlowRegistry = new DeviceFlowRegistryImpl(); deviceGroupRegistry = new DeviceGroupRegistryImpl(); deviceMeterRegistry = new DeviceMeterRegistryImpl(); messageSpy = conductor.getMessageIntelligenceAgency(); + packetInLimiter = new PacketInRateLimiter(primaryConnectionContext.getConnectionAdapter(), /*initial*/ 1000, /*initial*/2000, messageSpy, REJECTED_DRAIN_FACTOR); this.translatorLibrary = translatorLibrary; portStatusTranslator = translatorLibrary.lookupTranslator( - new TranslatorKey(deviceState.getVersion(), PortGrouping.class.getName())); + new TranslatorKey(deviceInfo.getVersion(), PortGrouping.class.getName())); packetInTranslator = translatorLibrary.lookupTranslator( - new TranslatorKey(deviceState.getVersion(), PacketIn.class.getName())); + new TranslatorKey(deviceInfo.getVersion(), PacketIn.class.getName())); flowRemovedTranslator = translatorLibrary.lookupTranslator( - new TranslatorKey(deviceState.getVersion(), FlowRemoved.class.getName())); + new TranslatorKey(deviceInfo.getVersion(), FlowRemoved.class.getName())); nodeConnectorCache = new ConcurrentHashMap<>(); @@ -190,7 +192,6 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi flowLifeCycleKeeper = new ItemLifeCycleSourceImpl(); itemLifeCycleSourceRegistry.registerLifeCycleSource(flowLifeCycleKeeper); deviceCtxState = DEVICE_CONTEXT_STATE.INITIALIZATION; - deviceInfo = primaryConnectionContext.getDeviceInfo(); } /** @@ -229,6 +230,11 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi return deviceState; } + @Override + public DeviceInfo getDeviceInfo() { + return this.deviceInfo; + } + @Override public ReadOnlyTransaction getReadTransaction() { return dataBroker.newReadOnlyTransaction(); @@ -309,13 +315,13 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi public Void apply(final Boolean input) { if (ConnectionContext.CONNECTION_STATE.RIP.equals(getPrimaryConnectionContext().getConnectionState())) { final String errMsg = String.format("We lost connection for Device %s, context has to be closed.", - getDeviceState().getNodeId()); + getDeviceInfo().getNodeId()); LOG.warn(errMsg); throw new IllegalStateException(errMsg); } if (!input) { final String errMsg = String.format("Get Initial Device %s information fails", - getDeviceState().getNodeId()); + getDeviceInfo().getNodeId()); LOG.warn(errMsg); throw new IllegalStateException(errMsg); } @@ -396,7 +402,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi if (itemLifecycleListener != null) { //1. translate to general flow (table, priority, match, cookie) final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowRemoved flowRemovedNotification = - flowRemovedTranslator.translate(flowRemoved, this.getDeviceState(), null); + flowRemovedTranslator.translate(flowRemoved, deviceInfo, null); //2. create registry key final FlowRegistryKey flowRegKey = FlowRegistryKeyFactory.create(flowRemovedNotification); //3. lookup flowId @@ -404,7 +410,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi //4. if flowId present: if (flowDescriptor != null) { // a) construct flow path - final KeyedInstanceIdentifier flowPath = getDeviceState().getNodeInstanceIdentifier() + final KeyedInstanceIdentifier flowPath = getDeviceInfo().getNodeInstanceIdentifier() .augmentation(FlowCapableNode.class) .child(Table.class, flowDescriptor.getTableKey()) .child(Flow.class, new FlowKey(flowDescriptor.getFlowId())); @@ -414,7 +420,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi notificationPublishService.offerNotification(flowRemovedNotification); } else { LOG.debug("flow id not found: nodeId={} tableId={}, priority={}", - getDeviceState().getNodeId(), flowRegKey.getTableId(), flowRemovedNotification.getPriority()); + getDeviceInfo().getNodeId(), flowRegKey.getTableId(), flowRemovedNotification.getPriority()); } } } @@ -422,7 +428,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi @Override public void processPortStatusMessage(final PortStatusMessage portStatus) { messageSpy.spyMessage(portStatus.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH_PUBLISHED_SUCCESS); - final FlowCapableNodeConnector flowCapableNodeConnector = portStatusTranslator.translate(portStatus, this.getDeviceState(), null); + final FlowCapableNodeConnector flowCapableNodeConnector = portStatusTranslator.translate(portStatus, deviceInfo, null); final KeyedInstanceIdentifier iiToNodeConnector = provideIIToNodeConnector(portStatus.getPortNo(), portStatus.getVersion()); try { @@ -442,8 +448,8 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi } private KeyedInstanceIdentifier provideIIToNodeConnector(final long portNo, final short version) { - final InstanceIdentifier iiToNodes = deviceState.getNodeInstanceIdentifier(); - final BigInteger dataPathId = deviceState.getFeatures().getDatapathId(); + final InstanceIdentifier iiToNodes = deviceInfo.getNodeInstanceIdentifier(); + final BigInteger dataPathId = deviceInfo.getDatapathId(); final NodeConnectorId nodeConnectorId = NodeStaticReplyTranslatorUtil.nodeConnectorId(dataPathId.toString(), portNo, version); return iiToNodes.child(NodeConnector.class, new NodeConnectorKey(nodeConnectorId)); } @@ -452,7 +458,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi public void processPacketInMessage(final PacketInMessage packetInMessage) { messageSpy.spyMessage(packetInMessage.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.FROM_SWITCH); final ConnectionAdapter connectionAdapter = getPrimaryConnectionContext().getConnectionAdapter(); - final PacketReceived packetReceived = packetInTranslator.translate(packetInMessage, this.getDeviceState(), null); + final PacketReceived packetReceived = packetInTranslator.translate(packetInMessage, deviceInfo, null); if (packetReceived == null) { LOG.debug("Received a null packet from switch {}", connectionAdapter.getRemoteAddress()); @@ -500,13 +506,13 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi // lookup converter final ExperimenterDataOfChoice vendorData = notification.getExperimenterDataOfChoice(); final MessageTypeKey key = new MessageTypeKey<>( - deviceState.getVersion(), + deviceInfo.getVersion(), (Class) vendorData.getImplementedInterface()); final ConvertorMessageFromOFJava messageConverter = extensionConverterProvider.getMessageConverter(key); if (messageConverter == null) { LOG.warn("custom converter for {}[OF:{}] not found", notification.getExperimenterDataOfChoice().getImplementedInterface(), - deviceState.getVersion()); + deviceInfo.getVersion()); return; } // build notification @@ -514,7 +520,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi try { messageOfChoice = messageConverter.convert(vendorData, MessagePath.MESSAGE_NOTIFICATION); final ExperimenterMessageFromDevBuilder experimenterMessageFromDevBld = new ExperimenterMessageFromDevBuilder() - .setNode(new NodeRef(deviceState.getNodeInstanceIdentifier())) + .setNode(new NodeRef(deviceInfo.getNodeInstanceIdentifier())) .setExperimenterMessageOfChoice(messageOfChoice); // publish notificationPublishService.offerNotification(experimenterMessageFromDevBld.build()); @@ -532,7 +538,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi public synchronized void close() { LOG.debug("closing deviceContext: {}, nodeId:{}", getPrimaryConnectionContext().getConnectionAdapter().getRemoteAddress(), - getDeviceState().getNodeId()); + getDeviceInfo().getNodeId()); // NOOP throw new UnsupportedOperationException("Autocloseble.close will be removed soon"); } @@ -635,7 +641,7 @@ public class DeviceContextImpl implements DeviceContext, ExtensionConverterProvi deviceCtxState = DEVICE_CONTEXT_STATE.TERMINATION; if (ConnectionContext.CONNECTION_STATE.RIP.equals(getPrimaryConnectionContext().getConnectionState())) { - LOG.debug("ConnectionCtx for Node {} is in RIP state.", deviceState.getNodeId()); + LOG.debug("ConnectionCtx for Node {} is in RIP state.", deviceInfo.getNodeId()); return; } /* Terminate Auxiliary Connection */ diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImpl.java index f10cedc181..988007a475 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImpl.java @@ -44,7 +44,6 @@ import org.opendaylight.openflowplugin.extension.api.ExtensionConverterProviderK import org.opendaylight.openflowplugin.extension.api.core.extension.ExtensionConverterProvider; import org.opendaylight.openflowplugin.impl.connection.OutboundQueueProviderImpl; import org.opendaylight.openflowplugin.impl.device.listener.OpenflowProtocolListenerFullImpl; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; @@ -156,7 +155,7 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi connectionAdapter.registerOutboundQueueHandler(outboundQueueProvider, barrierCountLimit, barrierIntervalNanos); connectionContext.setOutboundQueueHandleRegistration(outboundQueueHandlerRegistration); - final DeviceState deviceState = createDeviceState(connectionContext); + final DeviceState deviceState = new DeviceStateImpl(); final DeviceContext deviceContext = new DeviceContextImpl(connectionContext, deviceState, dataBroker, @@ -183,10 +182,6 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi return true; } - private static DeviceStateImpl createDeviceState(final @Nonnull ConnectionContext connectionContext) { - return new DeviceStateImpl(connectionContext.getFeatures(), connectionContext.getNodeId()); - } - private void updatePacketInRateLimiters() { synchronized (deviceContexts) { final int deviceContextsSize = deviceContexts.size(); @@ -236,7 +231,7 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi @Override public void onDeviceContextLevelDown(final DeviceInfo deviceInfo) { LOG.debug("onDeviceContextClosed for Node {}", deviceInfo.getNodeId()); - deviceContexts.remove(deviceInfo.getNodeId()); + deviceContexts.remove(deviceInfo); updatePacketInRateLimiters(); } @@ -246,8 +241,8 @@ public class DeviceManagerImpl implements DeviceManager, ExtensionConverterProvi } @Override - public DeviceContext getDeviceContextFromNodeId(final NodeId nodeId) { - return deviceContexts.get(nodeId); + public DeviceContext getDeviceContextFromNodeId(DeviceInfo deviceInfo) { + return deviceContexts.get(deviceInfo); } @Override diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImpl.java index 37768bc5e9..5372cc0db9 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImpl.java @@ -28,16 +28,9 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; * DeviceState is builded from {@link FeaturesReply} and {@link NodeId}. Both values are inside * {@link org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext} * - * @author Vaclav Demcak - *

- * Created: Mar 29, 2015 */ class DeviceStateImpl implements DeviceState { - private final GetFeaturesOutput featuresOutput; - private final NodeId nodeId; - private final KeyedInstanceIdentifier nodeII; - private final short version; private boolean valid; private boolean meterIsAvailable; private boolean groupIsAvailable; @@ -48,31 +41,11 @@ class DeviceStateImpl implements DeviceState { private boolean statPollEnabled; private boolean queueStatisticsAvailable; - public DeviceStateImpl(@CheckForNull final FeaturesReply featuresReply, @Nonnull final NodeId nodeId) { - Preconditions.checkArgument(featuresReply != null); - featuresOutput = new GetFeaturesOutputBuilder(featuresReply).build(); - this.nodeId = Preconditions.checkNotNull(nodeId); - nodeII = DeviceStateUtil.createNodeInstanceIdentifier(nodeId); - version = featuresReply.getVersion(); + DeviceStateImpl() { statPollEnabled = false; deviceSynchronized = false; } - @Override - public NodeId getNodeId() { - return nodeId; - } - - @Override - public KeyedInstanceIdentifier getNodeInstanceIdentifier() { - return nodeII; - } - - @Override - public GetFeaturesOutput getFeatures() { - return featuresOutput; - } - @Override public boolean isValid() { return valid; @@ -83,11 +56,6 @@ class DeviceStateImpl implements DeviceState { this.valid = valid; } - @Override - public short getVersion() { - return version; - } - @Override public boolean isMetersAvailable() { return meterIsAvailable; 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 d85dab8f59..99f7fd31de 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 @@ -25,7 +25,7 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionChain; 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.DeviceState; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleConductor; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; @@ -55,6 +55,7 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable private final Object txLock = new Object(); private final KeyedInstanceIdentifier nodeII; + private final DeviceInfo deviceInfo; private final DataBroker dataBroker; private final LifecycleConductor conductor; @@ -77,14 +78,15 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable private TransactionChainManagerStatus transactionChainManagerStatus = TransactionChainManagerStatus.SLEEPING; TransactionChainManager(@Nonnull final DataBroker dataBroker, - @Nonnull final DeviceState deviceState, + @Nonnull final DeviceInfo deviceInfo, @Nonnull final LifecycleConductor conductor) { this.dataBroker = Preconditions.checkNotNull(dataBroker); this.conductor = Preconditions.checkNotNull(conductor); - this.nodeII = Preconditions.checkNotNull(deviceState.getNodeInstanceIdentifier()); + this.deviceInfo = deviceInfo; + this.nodeII = deviceInfo.getNodeInstanceIdentifier(); this.transactionChainManagerStatus = TransactionChainManagerStatus.SLEEPING; lastSubmittedFuture = Futures.immediateFuture(null); - LOG.debug("created txChainManager for {}", nodeII); + LOG.debug("created txChainManager for {}", this.nodeII); } private NodeId nodeId() { @@ -192,7 +194,7 @@ class TransactionChainManager implements TransactionChainListener, AutoCloseable } if (initCommit) { LOG.error("Initial commit failed. {}", t); - conductor.closeConnection(nodeId()); + conductor.closeConnection(deviceInfo); } } }); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java index 9950a30492..e0392a7cc9 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleContextImpl.java @@ -76,7 +76,7 @@ class RoleContextImpl implements RoleContext { @Nullable @Override public RequestContext createRequestContext() { - return new AbstractRequestContext(conductor.reserveXidForDeviceMessage(deviceInfo.getNodeId())) { + return new AbstractRequestContext(conductor.reserveXidForDeviceMessage(deviceInfo)) { @Override public void close() { } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImpl.java index d652c1da3e..f9b30b50bb 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImpl.java @@ -16,7 +16,6 @@ import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.JdkFutureAdapters; import com.google.common.util.concurrent.ListenableFuture; -import io.netty.util.Timeout; import io.netty.util.TimerTask; import java.util.ArrayList; @@ -98,13 +97,13 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se @Override public void onDeviceContextLevelUp(@CheckForNull final DeviceInfo deviceInfo) throws Exception { - final DeviceContext deviceContext = Preconditions.checkNotNull(conductor.getDeviceContext(deviceInfo.getNodeId())); + final DeviceContext deviceContext = Preconditions.checkNotNull(conductor.getDeviceContext(deviceInfo)); final RoleContext roleContext = new RoleContextImpl(deviceInfo, entityOwnershipService, makeEntity(deviceInfo.getNodeId()), makeTxEntity(deviceInfo.getNodeId()), conductor); roleContext.setSalRoleService(new SalRoleServiceImpl(roleContext, deviceContext)); Verify.verify(contexts.putIfAbsent(deviceInfo.getNodeId(), roleContext) == null, "Role context for master Node %s is still not closed.", deviceInfo.getNodeId()); makeDeviceRoleChange(OfpRole.BECOMESLAVE, roleContext, true); /* First start to watch entity so we don't miss any notification, and then try to register in EOS */ - notifyListenersRoleInitializationDone(roleContext.getDeviceInfo().getNodeId(), roleContext.initialization()); + notifyListenersRoleInitializationDone(roleContext.getDeviceInfo(), roleContext.initialization()); watchingEntities.put(roleContext.getEntity(), roleContext); deviceInitializationPhaseHandler.onDeviceContextLevelUp(deviceInfo); } @@ -194,7 +193,7 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se } else if ((ownershipChange.wasOwner() && !ownershipChange.isOwner()) || (ownershipChange.inJeopardy())) { // MASTER -> SLAVE LOG.debug("MASTER to SLAVE for node {}", roleContext.getDeviceInfo().getNodeId()); - conductor.addOneTimeListenerWhenServicesChangesDone(this, roleContext.getDeviceInfo().getNodeId()); + conductor.addOneTimeListenerWhenServicesChangesDone(this, roleContext.getDeviceInfo()); makeDeviceRoleChange(OfpRole.BECOMESLAVE, roleContext, false); } } else { @@ -212,7 +211,7 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se final NodeId nodeId = roleContext.getDeviceInfo().getNodeId(); contexts.remove(nodeId, roleContext); roleContext.close(); - conductor.closeConnection(nodeId); + conductor.closeConnection(roleContext.getDeviceInfo()); } } } @@ -250,7 +249,7 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se final NodeId nodeId = roleContext.getDeviceInfo().getNodeId(); contexts.remove(nodeId, roleContext); roleContext.close(); - conductor.closeConnection(nodeId); + conductor.closeConnection(roleContext.getDeviceInfo()); } } } @@ -260,7 +259,7 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se final NodeId nodeId = roleContext.getDeviceInfo().getNodeId(); contexts.remove(nodeId, roleContext); roleContext.close(); - conductor.closeConnection(nodeId); + conductor.closeConnection(roleContext.getDeviceInfo()); } } @@ -271,13 +270,13 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se @Override public void onSuccess(@Nullable final RpcResult setRoleOutputRpcResult) { LOG.info("Role {} successfully set on device {}", role, roleContext.getDeviceInfo().getNodeId()); - notifyListenersRoleChangeOnDevice(roleContext.getDeviceInfo().getNodeId(), true, role, init); + notifyListenersRoleChangeOnDevice(roleContext.getDeviceInfo(), true, role, init); } @Override public void onFailure(@Nonnull final Throwable throwable) { LOG.warn("Unable to set role {} on device {}", role, roleContext.getDeviceInfo().getNodeId()); - notifyListenersRoleChangeOnDevice(roleContext.getDeviceInfo().getNodeId(), false, role, init); + notifyListenersRoleChangeOnDevice(roleContext.getDeviceInfo(), false, role, init); } }); } @@ -286,7 +285,7 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se ListenableFuture> sendRoleChangeToDevice(final OfpRole newRole, final RoleContext roleContext) { LOG.debug("Sending new role {} to device {}", newRole, roleContext.getDeviceInfo().getNodeId()); final Future> setRoleOutputFuture; - final Short version = conductor.gainVersionSafely(roleContext.getDeviceInfo().getNodeId()); + final Short version = conductor.gainVersionSafely(roleContext.getDeviceInfo()); if (null == version) { LOG.debug("Device version is null"); return Futures.immediateFuture(null); @@ -298,14 +297,10 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se final SetRoleInput setRoleInput = (new SetRoleInputBuilder()).setControllerRole(newRole) .setNode(new NodeRef(DeviceStateUtil.createNodeInstanceIdentifier(roleContext.getDeviceInfo().getNodeId()))).build(); setRoleOutputFuture = roleContext.getSalRoleService().setRole(setRoleInput); - final TimerTask timerTask = new TimerTask() { - - @Override - public void run(final Timeout timeout) throws Exception { - if (!setRoleOutputFuture.isDone()) { - LOG.warn("New role {} was not propagated to device {} during 10 sec", newRole, roleContext.getDeviceInfo().getNodeId()); - setRoleOutputFuture.cancel(true); - } + final TimerTask timerTask = timeout -> { + if (!setRoleOutputFuture.isDone()) { + LOG.warn("New role {} was not propagated to device {} during 10 sec", newRole, roleContext.getDeviceInfo().getNodeId()); + setRoleOutputFuture.cancel(true); } }; conductor.newTimeout(timerTask, 10, TimeUnit.SECONDS); @@ -349,9 +344,9 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se } @Override - public void servicesChangeDone(final NodeId nodeId, final boolean success) { - LOG.debug("Services stopping done for node {} as " + (success ? "successful" : "unsuccessful"), nodeId); - final RoleContext roleContext = contexts.get(nodeId); + public void servicesChangeDone(final DeviceInfo deviceInfo, final boolean success) { + LOG.debug("Services stopping done for node {} as " + (success ? "successful" : "unsuccessful"), deviceInfo); + final RoleContext roleContext = contexts.get(deviceInfo.getNodeId()); if (null != roleContext) { /* Services stopped or failure */ roleContext.unregisterCandidate(roleContext.getTxEntity()); @@ -380,29 +375,30 @@ public class RoleManagerImpl implements RoleManager, EntityOwnershipListener, Se /** * Invoked when initialization phase is done - * @param nodeId node identification + * @param deviceInfo node identification * @param success true if initialization done ok, false otherwise */ @VisibleForTesting - void notifyListenersRoleInitializationDone(final NodeId nodeId, final boolean success){ + void notifyListenersRoleInitializationDone(final DeviceInfo deviceInfo, final boolean success){ LOG.debug("Notifying registered listeners for role initialization done, no. of listeners {}", listeners.size()); for (final RoleChangeListener listener : listeners) { - listener.roleInitializationDone(nodeId, success); + listener.roleInitializationDone(deviceInfo, success); } } /** * Notifies registered listener on role change. Role is the new role on device * If initialization phase is true, we may skip service starting + * @param deviceInfo * @param success true if role change on device done ok, false otherwise * @param role new role meant to be set on device * @param initializationPhase if true, then skipp services start */ @VisibleForTesting - void notifyListenersRoleChangeOnDevice(final NodeId nodeId, final boolean success, final OfpRole role, final boolean initializationPhase){ + void notifyListenersRoleChangeOnDevice(final DeviceInfo deviceInfo, final boolean success, final OfpRole role, final boolean initializationPhase){ LOG.debug("Notifying registered listeners for role change, no. of listeners {}", listeners.size()); for (final RoleChangeListener listener : listeners) { - listener.roleChangeOnDevice(nodeId, success, role, initializationPhase); + listener.roleChangeOnDevice(deviceInfo, success, role, initializationPhase); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImpl.java index 81916fc8ed..bab33a358f 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImpl.java @@ -52,14 +52,14 @@ public class RpcManagerImpl implements RpcManager { @Override public void onDeviceContextLevelUp(final DeviceInfo deviceInfo) throws Exception { - final DeviceContext deviceContext = Preconditions.checkNotNull(conductor.getDeviceContext(deviceInfo.getNodeId())); + final DeviceContext deviceContext = Preconditions.checkNotNull(conductor.getDeviceContext(deviceInfo)); final RpcContext rpcContext = new RpcContextImpl( rpcProviderRegistry, deviceContext, deviceContext.getMessageSpy(), maxRequestsQuota, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceInfo.getNodeInstanceIdentifier()); deviceContext.setRpcContext(rpcContext); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractMultipartOnTheFlyService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractMultipartOnTheFlyService.java index 0d70200305..9f6747364a 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractMultipartOnTheFlyService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractMultipartOnTheFlyService.java @@ -24,8 +24,8 @@ public abstract class AbstractMultipartOnTheFlyService extends AbstractServic @Override protected final FutureCallback createCallback(final RequestContext> context, final Class requestType) { return new MultipartRequestOnTheFlyCallback(context, requestType, - getDeviceContext().getMessageSpy(), getEventIdentifier(), getDeviceContext().getDeviceState(), - getDeviceContext().getDeviceFlowRegistry(), getDeviceContext()); + getDeviceContext().getMessageSpy(), getEventIdentifier(), getDeviceContext().getDeviceInfo(), + getDeviceContext().getDeviceFlowRegistry(), getDeviceContext(), getDeviceContext().getDeviceState()); } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java index f1bdbf116d..4f686b4471 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractService.java @@ -16,6 +16,7 @@ import java.math.BigInteger; import javax.annotation.Nonnull; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; @@ -46,15 +47,14 @@ abstract class AbstractService { private EventIdentifier eventIdentifier; public AbstractService(final RequestContextStack requestContextStack, final DeviceContext deviceContext) { - final DeviceState deviceState = deviceContext.getDeviceState(); - final GetFeaturesOutput features = deviceState.getFeatures(); + final DeviceInfo deviceInfo = deviceContext.getDeviceInfo(); this.requestContextStack = requestContextStack; this.deviceContext = deviceContext; - this.datapathId = features.getDatapathId(); - this.version = features.getVersion(); + this.datapathId = deviceInfo.getDatapathId(); + this.version = deviceInfo.getVersion(); this.messageSpy = deviceContext.getMessageSpy(); - this.nodeId = deviceState.getNodeId(); + this.nodeId = deviceInfo.getNodeId(); } public EventIdentifier getEventIdentifier() { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallback.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallback.java index c00d092f96..d3b34ce520 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallback.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallback.java @@ -13,6 +13,7 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; import java.util.List; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.TxFacade; @@ -36,29 +37,32 @@ import org.slf4j.LoggerFactory; final class MultipartRequestOnTheFlyCallback extends AbstractRequestCallback> { private static final Logger LOG = LoggerFactory.getLogger(MultipartRequestOnTheFlyCallback.class); private static final SinglePurposeMultipartReplyTranslator MULTIPART_REPLY_TRANSLATOR = new SinglePurposeMultipartReplyTranslator(); - private final DeviceState deviceState; + private final DeviceInfo deviceInfo; private final DeviceFlowRegistry registry; private boolean virgin = true; private boolean finished = false; private final EventIdentifier doneEventIdentifier; private final TxFacade txFacade; + private final DeviceState deviceState; public MultipartRequestOnTheFlyCallback(final RequestContext> context, final Class requestType, final MessageSpy messageSpy, final EventIdentifier eventIdentifier, - final DeviceState deviceState, + final DeviceInfo deviceInfo, final DeviceFlowRegistry registry, - final TxFacade txFacade) { + final TxFacade txFacade, + final DeviceState deviceState) { super(context, requestType, messageSpy, eventIdentifier); - this.deviceState = deviceState; + this.deviceInfo = deviceInfo; this.registry = registry; this.txFacade = txFacade; + this.deviceState = deviceState; //TODO: this is focused on flow stats only - need more general approach if used for more than flow stats - doneEventIdentifier = new EventIdentifier(MultipartType.OFPMPFLOW.name(), deviceState.getNodeId().toString()); + doneEventIdentifier = new EventIdentifier(MultipartType.OFPMPFLOW.name(), deviceInfo.getNodeId().toString()); } public EventIdentifier getDoneEventIdentifier() { @@ -90,13 +94,13 @@ final class MultipartRequestOnTheFlyCallback extends AbstractRequestCallback multipartDataList = MULTIPART_REPLY_TRANSLATOR.translate( - deviceState.getFeatures().getDatapathId(), deviceState.getFeatures().getVersion(), singleReply); + deviceInfo.getDatapathId(), deviceInfo.getVersion(), singleReply); final Iterable allMultipartData = multipartDataList; //TODO: following part is focused on flow stats only - need more general approach if used for more than flow stats ListenableFuture future; if (virgin) { - future = StatisticsGatheringUtils.deleteAllKnownFlows(deviceState, registry, txFacade); + future = StatisticsGatheringUtils.deleteAllKnownFlows(deviceInfo, registry, txFacade, deviceState); virgin = false; } else { future = Futures.immediateFuture(null); @@ -107,7 +111,7 @@ final class MultipartRequestOnTheFlyCallback extends AbstractRequestCallback) allMultipartData, - deviceState, registry, txFacade); + deviceInfo, registry, txFacade); if (!multipartReply.getFlags().isOFPMPFREQMORE()) { endCollecting(); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImpl.java index d89b59781c..cf2a160998 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImpl.java @@ -97,7 +97,7 @@ public class SalFlowServiceImpl implements SalFlowService, ItemLifeCycleSource { } if (itemLifecycleListener != null) { KeyedInstanceIdentifier flowPath = createFlowPath(flowDescriptor, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); final FlowBuilder flowBuilder = new FlowBuilder(input).setId(flowDescriptor.getFlowId()); itemLifecycleListener.onAdded(flowPath, flowBuilder.build()); } @@ -136,7 +136,7 @@ public class SalFlowServiceImpl implements SalFlowService, ItemLifeCycleSource { deviceContext.getDeviceFlowRegistry().retrieveIdForFlow(flowRegistryKey); if (flowDescriptor != null) { KeyedInstanceIdentifier flowPath = createFlowPath(flowDescriptor, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); itemLifecycleListener.onRemoved(flowPath); } } @@ -203,7 +203,7 @@ public class SalFlowServiceImpl implements SalFlowService, ItemLifeCycleSource { final FlowDescriptor flowDescriptor = deviceContext.getDeviceFlowRegistry().retrieveIdForFlow(flowRegistryKey); if (flowDescriptor != null) { KeyedInstanceIdentifier flowPath = createFlowPath(flowDescriptor, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); itemLifecycleListener.onRemoved(flowPath); } } @@ -215,7 +215,7 @@ public class SalFlowServiceImpl implements SalFlowService, ItemLifeCycleSource { if (itemLifecycleListener != null) { KeyedInstanceIdentifier flowPath = createFlowPath(flowDescriptor, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); final FlowBuilder flowBuilder = new FlowBuilder(input.getUpdatedFlow()).setId(flowDescriptor.getFlowId()); itemLifecycleListener.onAdded(flowPath, flowBuilder.build()); } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalGroupServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalGroupServiceImpl.java index 1ebc5d4b5a..4445754b38 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalGroupServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalGroupServiceImpl.java @@ -144,7 +144,7 @@ public class SalGroupServiceImpl implements SalGroupService, ItemLifeCycleSource if (itemLifecycleListener != null) { KeyedInstanceIdentifier groupPath = createGroupPath(groupId, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); itemLifecycleListener.onRemoved(groupPath); } } @@ -153,7 +153,7 @@ public class SalGroupServiceImpl implements SalGroupService, ItemLifeCycleSource if (itemLifecycleListener != null) { KeyedInstanceIdentifier groupPath = createGroupPath(groupId, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); itemLifecycleListener.onAdded(groupPath, new GroupBuilder(data).build()); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalMeterServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalMeterServiceImpl.java index ced8aa4d36..d3702446a4 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalMeterServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalMeterServiceImpl.java @@ -149,7 +149,7 @@ public class SalMeterServiceImpl implements SalMeterService, ItemLifeCycleSource if (itemLifecycleListener != null) { KeyedInstanceIdentifier meterPath = createMeterPath(meterId, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); itemLifecycleListener.onRemoved(meterPath); } } @@ -158,7 +158,7 @@ public class SalMeterServiceImpl implements SalMeterService, ItemLifeCycleSource if (itemLifecycleListener != null) { KeyedInstanceIdentifier groupPath = createMeterPath(meterId, - deviceContext.getDeviceState().getNodeInstanceIdentifier()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier()); itemLifecycleListener.onAdded(groupPath, new MeterBuilder(data).build()); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java index 6257c93b42..76ae36a485 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java @@ -66,7 +66,7 @@ class StatisticsContextImpl implements StatisticsContext { private volatile boolean schedulingEnabled; StatisticsContextImpl(@CheckForNull final DeviceInfo deviceInfo, final boolean shuttingDownStatisticsPolling, final LifecycleConductor lifecycleConductor) { - this.deviceContext = Preconditions.checkNotNull(lifecycleConductor.getDeviceContext(deviceInfo.getNodeId())); + this.deviceContext = Preconditions.checkNotNull(lifecycleConductor.getDeviceContext(deviceInfo)); this.devState = Preconditions.checkNotNull(deviceContext.getDeviceState()); this.shuttingDownStatisticsPolling = shuttingDownStatisticsPolling; emptyFuture = Futures.immediateFuture(false); @@ -108,7 +108,7 @@ class StatisticsContextImpl implements StatisticsContext { @Override public ListenableFuture gatherDynamicData() { if (shuttingDownStatisticsPolling) { - LOG.debug("Statistics for device {} is not enabled.", deviceContext.getDeviceState().getNodeId()); + LOG.debug("Statistics for device {} is not enabled.", deviceContext.getDeviceInfo().getNodeId()); return Futures.immediateFuture(Boolean.TRUE); } final ListenableFuture errorResultFuture = deviceConnectionCheck(); @@ -211,19 +211,19 @@ class StatisticsContextImpl implements StatisticsContext { private void statChainFuture(final Iterator iterator, final SettableFuture resultFuture) { if (ConnectionContext.CONNECTION_STATE.RIP.equals(deviceContext.getPrimaryConnectionContext().getConnectionState())) { final String errMsg = String.format("Device connection is closed for Node : %s.", - deviceContext.getDeviceState().getNodeId()); + deviceContext.getDeviceInfo().getNodeId()); LOG.debug(errMsg); resultFuture.setException(new IllegalStateException(errMsg)); return; } if ( ! iterator.hasNext()) { resultFuture.set(Boolean.TRUE); - LOG.debug("Stats collection successfully finished for node {}", deviceContext.getDeviceState().getNodeId()); + LOG.debug("Stats collection successfully finished for node {}", deviceContext.getDeviceInfo().getNodeId()); return; } final MultipartType nextType = iterator.next(); - LOG.debug("Stats iterating to next type for node {} of type {}", deviceContext.getDeviceState().getNodeId(), nextType); + LOG.debug("Stats iterating to next type for node {} of type {}", deviceContext.getDeviceInfo().getNodeId(), nextType); final ListenableFuture deviceStatisticsCollectionFuture = chooseStat(nextType); Futures.addCallback(deviceStatisticsCollectionFuture, new FutureCallback() { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtils.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtils.java index 4933f28374..00b824aaf0 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtils.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtils.java @@ -26,6 +26,7 @@ import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.TxFacade; import org.opendaylight.openflowplugin.api.openflow.registry.flow.DeviceFlowRegistry; @@ -149,7 +150,7 @@ public final class StatisticsGatheringUtils { public ListenableFuture apply(final RpcResult> rpcResult) { boolean isMultipartProcessed = Boolean.TRUE; if (rpcResult.isSuccessful()) { - LOG.debug("Stats reply successfully received for node {} of type {}", deviceContext.getDeviceState().getNodeId(), type); + LOG.debug("Stats reply successfully received for node {} of type {}", deviceContext.getDeviceInfo().getNodeId(), type); // TODO: in case the result value is null then multipart data probably got processed on the fly - // TODO: this contract should by clearly stated and enforced - now simple true value is returned @@ -168,7 +169,7 @@ public final class StatisticsGatheringUtils { } } catch (final Exception e) { LOG.warn("stats processing of type {} for node {} failed during transfomation step", - type, deviceContext.getDeviceState().getNodeId(), e); + type, deviceContext.getDeviceInfo().getNodeId(), e); return Futures.immediateFailedFuture(e); } @@ -198,19 +199,19 @@ public final class StatisticsGatheringUtils { } } catch (final Exception e) { LOG.warn("stats processing of type {} for node {} failed during write-to-tx step", - type, deviceContext.getDeviceState().getNodeId(), e); + type, deviceContext.getDeviceInfo().getNodeId(), e); return Futures.immediateFailedFuture(e); } - LOG.debug("Stats reply added to transaction for node {} of type {}", deviceContext.getDeviceState().getNodeId(), type); + LOG.debug("Stats reply added to transaction for node {} of type {}", deviceContext.getDeviceInfo().getNodeId(), type); //TODO : implement experimenter } else { - LOG.debug("Stats reply was empty for node {} of type {}", deviceContext.getDeviceState().getNodeId(), type); + LOG.debug("Stats reply was empty for node {} of type {}", deviceContext.getDeviceInfo().getNodeId(), type); } } else { - LOG.debug("Stats reply FAILED for node {} of type {}: {}", deviceContext.getDeviceState().getNodeId(), type, rpcResult.getErrors()); + LOG.debug("Stats reply FAILED for node {} of type {}: {}", deviceContext.getDeviceInfo().getNodeId(), type, rpcResult.getErrors()); isMultipartProcessed = Boolean.FALSE; } return Futures.immediateFuture(isMultipartProcessed); @@ -219,7 +220,7 @@ public final class StatisticsGatheringUtils { } private static void processMeterConfigStatsUpdated(final Iterable data, final DeviceContext deviceContext) throws Exception { - final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceState()); + final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceInfo()); deleteAllKnownMeters(deviceContext, fNodeIdent); for (final MeterConfigStatsUpdated meterConfigStatsUpdated : data) { for (final MeterConfigStats meterConfigStats : meterConfigStatsUpdated.getMeterConfigStats()) { @@ -238,13 +239,13 @@ public final class StatisticsGatheringUtils { private static ListenableFuture processFlowStatistics(final Iterable data, final DeviceContext deviceContext, final EventIdentifier eventIdentifier) { - final ListenableFuture deleFuture = deleteAllKnownFlows(deviceContext.getDeviceState(), - deviceContext.getDeviceFlowRegistry(), deviceContext); + final ListenableFuture deleFuture = deleteAllKnownFlows(deviceContext.getDeviceInfo(), + deviceContext.getDeviceFlowRegistry(), deviceContext, deviceContext.getDeviceState()); return Futures.transform(deleFuture, new Function() { @Override public Boolean apply(final Void input) { - writeFlowStatistics(data, deviceContext.getDeviceState(), deviceContext.getDeviceFlowRegistry(), + writeFlowStatistics(data, deviceContext.getDeviceInfo(), deviceContext.getDeviceFlowRegistry(), deviceContext); deviceContext.submitTransaction(); EventsTimeCounter.markEnd(eventIdentifier); @@ -254,10 +255,10 @@ public final class StatisticsGatheringUtils { } public static void writeFlowStatistics(final Iterable data, - final DeviceState deviceState, + final DeviceInfo deviceInfo, final DeviceFlowRegistry registry, final TxFacade txFacade) { - final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceState); + final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceInfo); try { for (final FlowsStatisticsUpdate flowsStatistics : data) { for (final FlowAndStatisticsMapList flowStat : flowsStatistics.getFlowAndStatisticsMapList()) { @@ -292,12 +293,14 @@ public final class StatisticsGatheringUtils { return flowStatisticsDataBld; } - public static ListenableFuture deleteAllKnownFlows(final DeviceState deviceState, + public static ListenableFuture deleteAllKnownFlows(final DeviceInfo deviceInfo, final DeviceFlowRegistry registry, - final TxFacade txFacade) { + final TxFacade txFacade, + final DeviceState deviceState) { + //TODO:Make check for phase from enum /* DeviceState.deviceSynchronized is a marker for actual phase - false means initPhase, true means noInitPhase */ if (deviceState.deviceSynchronized()) { - final InstanceIdentifier flowCapableNodePath = assembleFlowCapableNodeInstanceIdentifier(deviceState); + final InstanceIdentifier flowCapableNodePath = assembleFlowCapableNodeInstanceIdentifier(deviceInfo); final ReadOnlyTransaction readTx = txFacade.getReadTransaction(); final CheckedFuture, ReadFailedException> flowCapableNodeFuture = readTx.read( LogicalDatastoreType.OPERATIONAL, flowCapableNodePath); @@ -338,7 +341,7 @@ public final class StatisticsGatheringUtils { private static void processQueueStatistics(final Iterable data, final DeviceContext deviceContext) throws Exception { // TODO: clean all queues of all node-connectors before writing up-to-date stats - final InstanceIdentifier nodeIdent = deviceContext.getDeviceState().getNodeInstanceIdentifier(); + final InstanceIdentifier nodeIdent = deviceContext.getDeviceInfo().getNodeInstanceIdentifier(); for (final QueueStatisticsUpdate queueStatisticsUpdate : data) { for (final QueueIdAndStatisticsMap queueStat : queueStatisticsUpdate.getQueueIdAndStatisticsMap()) { if (queueStat.getQueueId() != null) { @@ -365,7 +368,7 @@ public final class StatisticsGatheringUtils { } private static void processFlowTableStatistics(final Iterable data, final DeviceContext deviceContext) throws Exception { - final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceState()); + final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceInfo()); for (final FlowTableStatisticsUpdate flowTableStatisticsUpdate : data) { for (final FlowTableAndStatisticsMap tableStat : flowTableStatisticsUpdate.getFlowTableAndStatisticsMap()) { @@ -379,7 +382,7 @@ public final class StatisticsGatheringUtils { } private static void processNodeConnectorStatistics(final Iterable data, final DeviceContext deviceContext) throws Exception { - final InstanceIdentifier nodeIdent = deviceContext.getDeviceState().getNodeInstanceIdentifier(); + final InstanceIdentifier nodeIdent = deviceContext.getDeviceInfo().getNodeInstanceIdentifier(); for (final NodeConnectorStatisticsUpdate nodeConnectorStatisticsUpdate : data) { for (final NodeConnectorStatisticsAndPortNumberMap nConnectPort : nodeConnectorStatisticsUpdate.getNodeConnectorStatisticsAndPortNumberMap()) { final FlowCapableNodeConnectorStatistics stats = new FlowCapableNodeConnectorStatisticsBuilder(nConnectPort).build(); @@ -397,7 +400,7 @@ public final class StatisticsGatheringUtils { private static void processMetersStatistics(final Iterable data, final DeviceContext deviceContext) throws Exception { - final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceState()); + final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceInfo()); for (final MeterStatisticsUpdated meterStatisticsUpdated : data) { for (final MeterStats mStat : meterStatisticsUpdated.getMeterStats()) { final MeterStatistics stats = new MeterStatisticsBuilder(mStat).build(); @@ -422,7 +425,7 @@ public final class StatisticsGatheringUtils { private static void processGroupDescStats(final Iterable data, final DeviceContext deviceContext) throws Exception { final InstanceIdentifier fNodeIdent = - deviceContext.getDeviceState().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); deleteAllKnownGroups(deviceContext, fNodeIdent); for (final GroupDescStatsUpdated groupDescStatsUpdated : data) { @@ -451,7 +454,7 @@ public final class StatisticsGatheringUtils { } private static void processGroupStatistics(final Iterable data, final DeviceContext deviceContext) throws Exception { - final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceState()); + final InstanceIdentifier fNodeIdent = assembleFlowCapableNodeInstanceIdentifier(deviceContext.getDeviceInfo()); for (final GroupStatisticsUpdated groupStatistics : data) { for (final GroupStats groupStats : groupStatistics.getGroupStats()) { @@ -467,8 +470,8 @@ public final class StatisticsGatheringUtils { deviceContext.submitTransaction(); } - private static InstanceIdentifier assembleFlowCapableNodeInstanceIdentifier(final DeviceState deviceState) { - return deviceState.getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + private static InstanceIdentifier assembleFlowCapableNodeInstanceIdentifier(final DeviceInfo deviceInfo) { + return deviceInfo.getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); } /** @@ -477,7 +480,7 @@ public final class StatisticsGatheringUtils { * @param deviceContext txManager + node path keeper */ static void markDeviceStateSnapshotStart(final DeviceContext deviceContext) { - final InstanceIdentifier statusPath = deviceContext.getDeviceState() + final InstanceIdentifier statusPath = deviceContext.getDeviceInfo() .getNodeInstanceIdentifier().augmentation(FlowCapableStatisticsGatheringStatus.class); final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_AND_TIME_FORMAT); @@ -503,7 +506,7 @@ public final class StatisticsGatheringUtils { * @param succeeded outcome of currently finished gathering */ static void markDeviceStateSnapshotEnd(final DeviceContext deviceContext, final boolean succeeded) { - final InstanceIdentifier statusEndPath = deviceContext.getDeviceState() + final InstanceIdentifier statusEndPath = deviceContext.getDeviceInfo() .getNodeInstanceIdentifier().augmentation(FlowCapableStatisticsGatheringStatus.class) .child(SnapshotGatheringStatusEnd.class); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImpl.java index 4b1a151676..9d2df471c0 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImpl.java @@ -90,7 +90,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag @Override public void onDeviceContextLevelUp(final DeviceInfo deviceInfo) throws Exception { - final DeviceContext deviceContext = Preconditions.checkNotNull(conductor.getDeviceContext(deviceInfo.getNodeId())); + final DeviceContext deviceContext = Preconditions.checkNotNull(conductor.getDeviceContext(deviceInfo)); final StatisticsContext statisticsContext = new StatisticsContextImpl(deviceInfo, shuttingDownStatisticsPolling, conductor); Verify.verify(contexts.putIfAbsent(deviceInfo, statisticsContext) == null, "StatisticsCtx still not closed for Node {}", deviceInfo.getNodeId()); @@ -104,7 +104,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag final StatisticsContext statisticsContext, final TimeCounter timeCounter) { - final NodeId nodeId = deviceContext.getDeviceState().getNodeId(); + final NodeId nodeId = deviceContext.getDeviceInfo().getNodeId(); if (!statisticsContext.isSchedulingEnabled()) { LOG.debug("Disabling statistics scheduling for device: {}", nodeId); @@ -141,7 +141,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag calculateTimerDelay(timeCounter); if (throwable instanceof CancellationException) { /** This often happens when something wrong with akka or DS, so closing connection will help to restart device **/ - conductor.closeConnection(deviceContext.getDeviceState().getNodeId()); + conductor.closeConnection(deviceContext.getDeviceInfo()); } else { scheduleNextPolling(deviceContext, statisticsContext, timeCounter); } @@ -163,7 +163,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag private void scheduleNextPolling(final DeviceContext deviceContext, final StatisticsContext statisticsContext, final TimeCounter timeCounter) { - LOG.debug("SCHEDULING NEXT STATISTICS POLLING for device: {}", deviceContext.getDeviceState().getNodeId()); + LOG.debug("SCHEDULING NEXT STATISTICS POLLING for device: {}", deviceContext.getDeviceInfo().getNodeId()); if (!shuttingDownStatisticsPolling) { final Timeout pollTimeout = conductor.newTimeout(timeout -> pollStatistics(deviceContext, statisticsContext, timeCounter), currentTimerDelay, TimeUnit.MILLISECONDS); statisticsContext.setPollTimeout(pollTimeout); @@ -272,7 +272,7 @@ public class StatisticsManagerImpl implements StatisticsManager, StatisticsManag } LOG.info("Scheduling statistics poll for device: {}", deviceInfo.getNodeId()); - final DeviceContext deviceContext = conductor.getDeviceContext(deviceInfo.getNodeId()); + final DeviceContext deviceContext = conductor.getDeviceContext(deviceInfo); if (deviceContext == null) { LOG.warn("Device context not found for device: {}", deviceInfo.getNodeId()); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AggregateFlowsInTableService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AggregateFlowsInTableService.java index af49302a77..4c822cd55c 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AggregateFlowsInTableService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AggregateFlowsInTableService.java @@ -91,9 +91,9 @@ public final class AggregateFlowsInTableService extends AbstractCompatibleStatSe final TranslatorKey translatorKey = new TranslatorKey(mpReply.getVersion(), MultipartReplyAggregateCase.class.getName()); final MessageTranslator messageTranslator = translatorLibrary.lookupTranslator(translatorKey); - final AggregatedFlowStatistics flowStatistics = messageTranslator.translate(mpReply, getDeviceContext().getDeviceState(), null); + final AggregatedFlowStatistics flowStatistics = messageTranslator.translate(mpReply, getDeviceContext().getDeviceInfo(), null); final AggregateFlowStatisticsUpdateBuilder notification = new AggregateFlowStatisticsUpdateBuilder(flowStatistics) - .setId(getDeviceContext().getDeviceState().getNodeId()) + .setId(getDeviceContext().getDeviceInfo().getNodeId()) .setMoreReplies(Boolean.FALSE) .setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInAllTablesService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInAllTablesService.java index 5801f43a61..97a83270f2 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInAllTablesService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInAllTablesService.java @@ -67,6 +67,6 @@ public final class AllFlowsInAllTablesService extends AbstractCompatibleStatServ @Override public FlowsStatisticsUpdate transformToNotification(List result, TransactionId emulatedTxId) { - return FlowStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return FlowStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInTableService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInTableService.java index 8c9262f399..ddf18248df 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInTableService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllFlowsInTableService.java @@ -72,6 +72,6 @@ public class AllFlowsInTableService extends AbstractCompatibleStatService mpResult, TransactionId emulatedTxId) { - return FlowStatisticsToNotificationTransformer.transformToNotification(mpResult, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return FlowStatisticsToNotificationTransformer.transformToNotification(mpResult, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllGroupsStatsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllGroupsStatsService.java index e33c210056..3bf75abaec 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllGroupsStatsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllGroupsStatsService.java @@ -71,6 +71,6 @@ final class AllGroupsStatsService extends @Override public GroupStatisticsUpdated transformToNotification(List result, TransactionId emulatedTxId) { - return GroupStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return GroupStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterConfigStatsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterConfigStatsService.java index f7667e8116..7aa717a5b9 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterConfigStatsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterConfigStatsService.java @@ -73,7 +73,7 @@ final class AllMeterConfigStatsService @Override public MeterConfigStatsUpdated transformToNotification(List result, TransactionId emulatedTxId) { MeterConfigStatsUpdatedBuilder message = new MeterConfigStatsUpdatedBuilder(); - message.setId(getDeviceContext().getDeviceState().getNodeId()); + message.setId(getDeviceContext().getDeviceInfo().getNodeId()); message.setMoreReplies(Boolean.FALSE); message.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterStatsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterStatsService.java index fb3b2d90fa..7db050703f 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterStatsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllMeterStatsService.java @@ -65,6 +65,6 @@ final class AllMeterStatsService @Override public MeterStatisticsUpdated transformToNotification(List result, TransactionId emulatedTxId) { - return MeterStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return MeterStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesAllPortsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesAllPortsService.java index b9da4288af..91aed6abbf 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesAllPortsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesAllPortsService.java @@ -66,6 +66,6 @@ final class AllQueuesAllPortsService @Override public QueueStatisticsUpdate transformToNotification(List result, TransactionId emulatedTxId) { - return QueueStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return QueueStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesOnePortService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesOnePortService.java index 1f6f6b3232..fa283bf24f 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesOnePortService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/AllQueuesOnePortService.java @@ -65,6 +65,6 @@ final class AllQueuesOnePortService @Override public QueueStatisticsUpdate transformToNotification(List result, TransactionId emulatedTxId) { - return QueueStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return QueueStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/FlowsInTableService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/FlowsInTableService.java index f063b2ef51..2052d536bf 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/FlowsInTableService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/FlowsInTableService.java @@ -93,6 +93,6 @@ public final class FlowsInTableService extends AbstractCompatibleStatService result, TransactionId emulatedTxId) { - return FlowStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return FlowStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupDescriptionService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupDescriptionService.java index 46e2588be1..cb971d4a27 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupDescriptionService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupDescriptionService.java @@ -58,7 +58,7 @@ final class GroupDescriptionService @Override public GroupDescStatsUpdated transformToNotification(List result, TransactionId emulatedTxId) { GroupDescStatsUpdatedBuilder notification = new GroupDescStatsUpdatedBuilder(); - notification.setId(getDeviceContext().getDeviceState().getNodeId()); + notification.setId(getDeviceContext().getDeviceInfo().getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupFeaturesService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupFeaturesService.java index 22c8d6d465..192208d831 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupFeaturesService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupFeaturesService.java @@ -74,7 +74,7 @@ final class GroupFeaturesService Preconditions.checkArgument(mpSize == 1, "unexpected (!=1) mp-reply size received: {}", mpSize); GroupFeaturesUpdatedBuilder notification = new GroupFeaturesUpdatedBuilder(); - notification.setId(getDeviceContext().getDeviceState().getNodeId()); + notification.setId(getDeviceContext().getDeviceInfo().getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupStatsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupStatsService.java index e0e04f95c9..43d23471d0 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupStatsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/GroupStatsService.java @@ -56,6 +56,6 @@ final class GroupStatsService @Override public GroupStatisticsUpdated transformToNotification(List result, TransactionId emulatedTxId) { - return GroupStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return GroupStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterFeaturesService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterFeaturesService.java index 142b3c0c85..1eb705d62a 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterFeaturesService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterFeaturesService.java @@ -70,7 +70,7 @@ final class MeterFeaturesService Preconditions.checkArgument(mpSize == 1, "unexpected (!=1) mp-reply size received: {}", mpSize); MeterFeaturesUpdatedBuilder notification = new MeterFeaturesUpdatedBuilder(); - notification.setId(getDeviceContext().getDeviceState().getNodeId()); + notification.setId(getDeviceContext().getDeviceInfo().getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterStatsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterStatsService.java index 33d36ffbba..9439b7e5c8 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterStatsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/MeterStatsService.java @@ -57,6 +57,6 @@ final class MeterStatsService @Override public MeterStatisticsUpdated transformToNotification(List result, TransactionId emulatedTxId) { - return MeterStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return MeterStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OneQueueOnePortService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OneQueueOnePortService.java index 867d10b793..cd8bdada26 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OneQueueOnePortService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OneQueueOnePortService.java @@ -62,6 +62,6 @@ final class OneQueueOnePortService @Override public QueueStatisticsUpdate transformToNotification(List result, TransactionId emulatedTxId) { - return QueueStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceState(), getOfVersion(), emulatedTxId); + return QueueStatisticsToNotificationTransformer.transformToNotification(result, getDeviceContext().getDeviceInfo(), getOfVersion(), emulatedTxId); } } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java index cabe1cffa4..15b3f4f60c 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java @@ -58,7 +58,7 @@ public class OpendaylightFlowStatisticsServiceImpl implements OpendaylightFlowSt List aggregStats = new ArrayList(); for (MultipartReply multipartReply : input.getResult()) { - aggregStats.add(messageTranslator.translate(multipartReply, deviceContext.getDeviceState(), null)); + aggregStats.add(messageTranslator.translate(multipartReply, deviceContext.getDeviceInfo(), null)); } GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutputBuilder getAggregateFlowStatisticsFromFlowTableForGivenMatchOutputBuilder = diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java index a6f6b2b197..7d9bc5ed8f 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java @@ -85,7 +85,7 @@ public final class OpendaylightFlowTableStatisticsServiceImpl extends @Override public FlowTableStatisticsUpdate transformToNotification(List mpReplyList, TransactionId emulatedTxId) { FlowTableStatisticsUpdateBuilder notification = new FlowTableStatisticsUpdateBuilder(); - notification.setId(getDeviceContext().getDeviceState().getNodeId()); + notification.setId(getDeviceContext().getDeviceInfo().getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/FlowStatisticsToNotificationTransformer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/FlowStatisticsToNotificationTransformer.java index 6ba60dcbb6..ab85159e5a 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/FlowStatisticsToNotificationTransformer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/FlowStatisticsToNotificationTransformer.java @@ -11,7 +11,8 @@ package org.opendaylight.openflowplugin.impl.statistics.services.compatibility; import com.google.common.base.Preconditions; import java.util.ArrayList; import java.util.List; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; + +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.FlowStatsResponseConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.FlowsStatisticsUpdate; @@ -32,18 +33,18 @@ public class FlowStatisticsToNotificationTransformer { /** * @param mpResult raw multipart response from device - * @param deviceState device state + * @param deviceInfo device state * @param ofVersion device version * @param emulatedTxId * @return notification containing flow stats */ public static FlowsStatisticsUpdate transformToNotification(final List mpResult, - final DeviceState deviceState, + final DeviceInfo deviceInfo, final OpenflowVersion ofVersion, final TransactionId emulatedTxId) { final FlowsStatisticsUpdateBuilder notification = new FlowsStatisticsUpdateBuilder(); final List statsList = new ArrayList<>(); - notification.setId(deviceState.getNodeId()); + notification.setId(deviceInfo.getNodeId()); notification.setFlowAndStatisticsMapList(statsList); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); @@ -55,7 +56,7 @@ public class FlowStatisticsToNotificationTransformer { MultipartReplyFlow replyBody = caseBody.getMultipartReplyFlow(); List outStatsItem = flowStatsConvertor.toSALFlowStatsList( replyBody.getFlowStats(), - deviceState.getFeatures().getDatapathId(), + deviceInfo.getDatapathId(), ofVersion); statsList.addAll(outStatsItem); } diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java index 2dcef59d0f..1e565568ab 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java @@ -10,8 +10,8 @@ package org.opendaylight.openflowplugin.impl.statistics.services.compatibility; import java.util.ArrayList; import java.util.List; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; -import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; + +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupStatsResponseConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupStatisticsUpdated; @@ -30,18 +30,16 @@ public class GroupStatisticsToNotificationTransformer { /** * @param mpReplyList raw multipart response from device - * @param deviceState device state - * @param ofVersion device version + * @param deviceInfo device state * @param emulatedTxId * @return notification containing flow stats */ public static GroupStatisticsUpdated transformToNotification(final List mpReplyList, - final DeviceState deviceState, - final OpenflowVersion ofVersion, + final DeviceInfo deviceInfo, final TransactionId emulatedTxId) { GroupStatisticsUpdatedBuilder notification = new GroupStatisticsUpdatedBuilder(); - notification.setId(deviceState.getNodeId()); + notification.setId(deviceInfo.getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/MeterStatisticsToNotificationTransformer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/MeterStatisticsToNotificationTransformer.java index 4bf30e29ce..8fa0fce0b8 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/MeterStatisticsToNotificationTransformer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/MeterStatisticsToNotificationTransformer.java @@ -10,7 +10,8 @@ package org.opendaylight.openflowplugin.impl.statistics.services.compatibility; import java.util.ArrayList; import java.util.List; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; + +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.MeterStatsResponseConvertor; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId; @@ -30,18 +31,18 @@ public class MeterStatisticsToNotificationTransformer { /** * @param mpReplyList raw multipart response from device - * @param deviceState device state + * @param deviceInfo device state * @param ofVersion device version * @param emulatedTxId * @return notification containing flow stats */ public static MeterStatisticsUpdated transformToNotification(final List mpReplyList, - final DeviceState deviceState, + final DeviceInfo deviceInfo, final OpenflowVersion ofVersion, final TransactionId emulatedTxId) { MeterStatisticsUpdatedBuilder notification = new MeterStatisticsUpdatedBuilder(); - notification.setId(deviceState.getNodeId()); + notification.setId(deviceInfo.getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/NodeConnectorStatisticsToNotificationTransformer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/NodeConnectorStatisticsToNotificationTransformer.java index 3649a25298..70a0dbbfba 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/NodeConnectorStatisticsToNotificationTransformer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/NodeConnectorStatisticsToNotificationTransformer.java @@ -47,7 +47,7 @@ public class NodeConnectorStatisticsToNotificationTransformer { final TransactionId emulatedTxId) { NodeConnectorStatisticsUpdateBuilder notification = new NodeConnectorStatisticsUpdateBuilder(); - notification.setId(deviceContext.getDeviceState().getNodeId()); + notification.setId(deviceContext.getDeviceInfo().getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); @@ -71,7 +71,7 @@ public class NodeConnectorStatisticsToNotificationTransformer { new NodeConnectorStatisticsAndPortNumberMapBuilder(); statsBuilder.setNodeConnectorId( InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo( - deviceContext.getDeviceState().getFeatures().getDatapathId(), + deviceContext.getDeviceInfo().getDatapathId(), portStats.getPortNo(), ofVersion)); BytesBuilder bytesBuilder = new BytesBuilder(); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/QueueStatisticsToNotificationTransformer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/QueueStatisticsToNotificationTransformer.java index fc4f6c08e1..ca6283d191 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/QueueStatisticsToNotificationTransformer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/QueueStatisticsToNotificationTransformer.java @@ -10,7 +10,8 @@ package org.opendaylight.openflowplugin.impl.statistics.services.compatibility; import java.util.ArrayList; import java.util.List; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; + +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter32; @@ -34,18 +35,18 @@ public class QueueStatisticsToNotificationTransformer { /** * @param mpReplyList raw multipart response from device - * @param deviceState device state + * @param deviceInfo device state * @param ofVersion device version * @param emulatedTxId * @return notification containing flow stats */ public static QueueStatisticsUpdate transformToNotification(final List mpReplyList, - final DeviceState deviceState, + final DeviceInfo deviceInfo, final OpenflowVersion ofVersion, final TransactionId emulatedTxId) { QueueStatisticsUpdateBuilder notification = new QueueStatisticsUpdateBuilder(); - notification.setId(deviceState.getNodeId()); + notification.setId(deviceInfo.getNodeId()); notification.setMoreReplies(Boolean.FALSE); notification.setTransactionId(emulatedTxId); @@ -61,7 +62,7 @@ public class QueueStatisticsToNotificationTransformer { new QueueIdAndStatisticsMapBuilder(); statsBuilder.setNodeConnectorId( InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo( - deviceState.getFeatures().getDatapathId(), + deviceInfo.getDatapathId(), queueStats.getPortNo(), ofVersion)); statsBuilder.setTransmissionErrors(new Counter64(queueStats.getTxErrors())); statsBuilder.setTransmittedBytes(new Counter64(queueStats.getTxBytes())); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/FlowDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/FlowDirectStatisticsService.java index 72066b0395..34f32b9d73 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/FlowDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/FlowDirectStatisticsService.java @@ -132,7 +132,7 @@ public class FlowDirectStatisticsService extends AbstractDirectStatisticsService @Override protected void storeStatistics(GetFlowStatisticsOutput output) throws Exception { final InstanceIdentifier nodePath = getDeviceContext() - .getDeviceState().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + .getDeviceInfo().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); for (final FlowAndStatisticsMapList flowStatistics : output.getFlowAndStatisticsMapList()) { final FlowId flowId = generateFlowId(flowStatistics); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java index b7c650a03a..addbfd9899 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/GroupDirectStatisticsService.java @@ -87,7 +87,7 @@ public class GroupDirectStatisticsService extends AbstractDirectStatisticsServic @Override protected void storeStatistics(GetGroupStatisticsOutput output) throws Exception { final InstanceIdentifier nodePath = getDeviceContext() - .getDeviceState().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + .getDeviceInfo().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); for (final GroupStats groupStatistics : output.getGroupStats()) { final InstanceIdentifier groupStatisticsPath = nodePath diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/MeterDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/MeterDirectStatisticsService.java index da6475ec5c..31ca7aa0a5 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/MeterDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/MeterDirectStatisticsService.java @@ -87,7 +87,7 @@ public class MeterDirectStatisticsService extends AbstractDirectStatisticsServic @Override protected void storeStatistics(GetMeterStatisticsOutput output) throws Exception { final InstanceIdentifier nodePath = getDeviceContext() - .getDeviceState().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + .getDeviceInfo().getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); for (final MeterStats meterStatistics : output.getMeterStats()) { final InstanceIdentifier meterPath = nodePath diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/NodeConnectorDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/NodeConnectorDirectStatisticsService.java index 6f6f496cbe..5852c8bc65 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/NodeConnectorDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/NodeConnectorDirectStatisticsService.java @@ -130,7 +130,7 @@ public class NodeConnectorDirectStatisticsService extends AbstractDirectStatisti @Override protected void storeStatistics(GetNodeConnectorStatisticsOutput output) throws Exception { - final InstanceIdentifier nodePath = getDeviceContext().getDeviceState().getNodeInstanceIdentifier(); + final InstanceIdentifier nodePath = getDeviceContext().getDeviceInfo().getNodeInstanceIdentifier(); for (final NodeConnectorStatisticsAndPortNumberMap nodeConnectorStatistics : output.getNodeConnectorStatisticsAndPortNumberMap()) { final InstanceIdentifier nodeConnectorPath = nodePath diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/QueueDirectStatisticsService.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/QueueDirectStatisticsService.java index 88f97dcbab..a9498af2f1 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/QueueDirectStatisticsService.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/QueueDirectStatisticsService.java @@ -116,7 +116,7 @@ public class QueueDirectStatisticsService extends AbstractDirectStatisticsServic @Override protected void storeStatistics(GetQueueStatisticsOutput output) throws Exception { - final InstanceIdentifier nodePath = getDeviceContext().getDeviceState().getNodeInstanceIdentifier(); + final InstanceIdentifier nodePath = getDeviceContext().getDeviceInfo().getNodeInstanceIdentifier(); for (final QueueIdAndStatisticsMap queueStatistics : output.getQueueIdAndStatisticsMap()) { if (queueStatistics.getQueueId() != null) { diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslator.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslator.java index 6e7626d495..c00e01bcd3 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslator.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslator.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.impl.translator; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter32; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.Counter64; @@ -23,7 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 */ public class AggregatedFlowStatisticsTranslator implements MessageTranslator { @Override - public AggregatedFlowStatistics translate(final MultipartReply input, final DeviceState deviceState, final Object connectionDistinguisher) { + public AggregatedFlowStatistics translate(final MultipartReply input, final DeviceInfo deviceInfo, final Object connectionDistinguisher) { AggregatedFlowStatisticsBuilder aggregatedFlowStatisticsBuilder = new AggregatedFlowStatisticsBuilder(); MultipartReplyAggregateCase caseBody = (MultipartReplyAggregateCase)input.getMultipartReplyBody(); diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslator.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslator.java index 4aa08b0028..c5683d2ebc 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslator.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslator.java @@ -7,7 +7,7 @@ */ package org.opendaylight.openflowplugin.impl.translator; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchConvertorImpl; @@ -23,20 +23,20 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 public class FlowRemovedTranslator implements MessageTranslator { @Override - public org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowRemoved translate(FlowRemoved input, DeviceState deviceState, Object connectionDistinguisher) { + public org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowRemoved translate(FlowRemoved input, DeviceInfo deviceInfo, Object connectionDistinguisher) { FlowRemovedBuilder flowRemovedBld = new FlowRemovedBuilder() - .setMatch(translateMatch(input, deviceState).build()) + .setMatch(translateMatch(input, deviceInfo).build()) .setCookie(new FlowCookie(input.getCookie())) - .setNode(new NodeRef(deviceState.getNodeInstanceIdentifier())) + .setNode(new NodeRef(deviceInfo.getNodeInstanceIdentifier())) .setPriority(input.getPriority()) .setTableId(translateTableId(input)); return flowRemovedBld.build(); } - protected MatchBuilder translateMatch(FlowRemoved flowRemoved, DeviceState deviceState) { + protected MatchBuilder translateMatch(FlowRemoved flowRemoved, DeviceInfo deviceInfo) { return MatchConvertorImpl.fromOFMatchToSALMatch(flowRemoved.getMatch(), - deviceState.getFeatures().getDatapathId(), OpenflowVersion.OF13); + deviceInfo.getDatapathId(), OpenflowVersion.OF13); } /** diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedV10Translator.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedV10Translator.java index 23efec2ed6..e5904310c5 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedV10Translator.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedV10Translator.java @@ -8,7 +8,7 @@ package org.opendaylight.openflowplugin.impl.translator; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchConvertorImpl; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder; @@ -20,9 +20,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 public class FlowRemovedV10Translator extends FlowRemovedTranslator { @Override - protected MatchBuilder translateMatch(FlowRemoved flowRemoved, DeviceState deviceState) { + protected MatchBuilder translateMatch(FlowRemoved flowRemoved, DeviceInfo deviceInfo) { return MatchConvertorImpl.fromOFMatchV10ToSALMatch(flowRemoved.getMatchV10(), - deviceState.getFeatures().getDatapathId(), OpenflowVersion.OF10); + deviceInfo.getDatapathId(), OpenflowVersion.OF10); } /** diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslator.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslator.java index 08862300d7..56913f3782 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslator.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslator.java @@ -10,7 +10,8 @@ package org.opendaylight.openflowplugin.impl.translator; import com.google.common.annotations.VisibleForTesting; import java.math.BigInteger; -import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; + +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion; import org.opendaylight.openflowplugin.extension.api.AugmentTuple; @@ -33,10 +34,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Table */ public class PacketReceivedTranslator implements MessageTranslator { @Override - public PacketReceived translate(final PacketInMessage input, final DeviceState deviceState, final Object connectionDistinguisher) { + public PacketReceived translate(final PacketInMessage input, final DeviceInfo deviceInfo, final Object connectionDistinguisher) { PacketReceivedBuilder packetReceivedBuilder = new PacketReceivedBuilder(); - BigInteger datapathId = deviceState.getFeatures().getDatapathId(); + BigInteger datapathId = deviceInfo.getDatapathId(); // TODO: connection cookie from connection distinguisher // packetReceivedBuilder.setConnectionCookie(new ConnectionCookie(input.getCookie().longValue())); @@ -49,7 +50,7 @@ public class PacketReceivedTranslator implements MessageTranslator initializeNodeInformation(final DeviceContext deviceContext, final boolean switchFeaturesMandatory) { Preconditions.checkArgument(deviceContext != null); final DeviceState deviceState = Preconditions.checkNotNull(deviceContext.getDeviceState()); + final DeviceInfo deviceInfo = deviceContext.getDeviceInfo(); final ConnectionContext connectionContext = Preconditions.checkNotNull(deviceContext.getPrimaryConnectionContext()); - final short version = deviceState.getVersion(); - LOG.trace("initalizeNodeInformation for node {}", deviceState.getNodeId()); + final short version = deviceInfo.getVersion(); + LOG.trace("initalizeNodeInformation for node {}", deviceInfo.getNodeId()); final SettableFuture returnFuture = SettableFuture.create(); addNodeToOperDS(deviceContext, returnFuture); final ListenableFuture>>> deviceFeaturesFuture; @@ -112,14 +114,14 @@ public class DeviceInitializationUtils { // create empty tables after device description is processed chainTableTrunkWriteOF10(deviceContext, deviceFeaturesFuture); - final short ofVersion = deviceContext.getDeviceState().getVersion(); + final short ofVersion = deviceInfo.getVersion(); final TranslatorKey translatorKey = new TranslatorKey(ofVersion, PortGrouping.class.getName()); final MessageTranslator translator = deviceContext.oook() .lookupTranslator(translatorKey); final BigInteger dataPathId = deviceContext.getPrimaryConnectionContext().getFeatures().getDatapathId(); for (final PortGrouping port : connectionContext.getFeatures().getPhyPort()) { - final FlowCapableNodeConnector fcNodeConnector = translator.translate(port, deviceContext.getDeviceState(), null); + final FlowCapableNodeConnector fcNodeConnector = translator.translate(port, deviceContext.getDeviceInfo(), null); final NodeConnectorId nodeConnectorId = NodeStaticReplyTranslatorUtil.nodeConnectorId( dataPathId.toString(), port.getPortNo(), ofVersion); @@ -128,19 +130,19 @@ public class DeviceInitializationUtils { ncBuilder.addAugmentation(FlowCapableNodeConnectorStatisticsData.class, new FlowCapableNodeConnectorStatisticsDataBuilder().build()); final NodeConnector connector = ncBuilder.build(); - final InstanceIdentifier connectorII = deviceState.getNodeInstanceIdentifier().child( + final InstanceIdentifier connectorII = deviceInfo.getNodeInstanceIdentifier().child( NodeConnector.class, connector.getKey()); try { deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, connectorII, connector); } catch (final Exception e) { - LOG.debug("Failed to write node {} to DS ", deviceContext.getDeviceState().getNodeId().toString(), + LOG.debug("Failed to write node {} to DS ", deviceInfo.getNodeId().toString(), e); } } } else if (OFConstants.OFP_VERSION_1_3 == version) { final Capabilities capabilities = connectionContext.getFeatures().getCapabilities(); - LOG.debug("Setting capabilities for device {}", deviceContext.getDeviceState().getNodeId()); + LOG.debug("Setting capabilities for device {}", deviceInfo.getNodeId()); DeviceStateUtil.setDeviceStateBasedOnV13Capabilities(deviceState, capabilities); deviceFeaturesFuture = createDeviceFeaturesForOF13(deviceContext, deviceState, switchFeaturesMandatory); } else { @@ -151,7 +153,7 @@ public class DeviceInitializationUtils { Futures.addCallback(deviceFeaturesFuture, new FutureCallback>>>() { @Override public void onSuccess(final List>> result) { - LOG.debug("All init data for node {} is in submited.", deviceState.getNodeId()); + LOG.debug("All init data for node {} is in submited.", deviceInfo.getNodeId()); returnFuture.set(null); } @@ -160,7 +162,7 @@ public class DeviceInitializationUtils { // FIXME : remove session LOG.trace("Device capabilities gathering future failed."); LOG.trace("more info in exploration failure..", t); - LOG.debug("All init data for node {} was not submited correctly - connection has to go down.", deviceState.getNodeId()); + LOG.debug("All init data for node {} was not submited correctly - connection has to go down.", deviceInfo.getNodeId()); returnFuture.setException(t); } }); @@ -170,13 +172,13 @@ public class DeviceInitializationUtils { private static void addNodeToOperDS(final DeviceContext deviceContext, final SettableFuture future) { Preconditions.checkArgument(deviceContext != null); final DeviceState deviceState = deviceContext.getDeviceState(); - final NodeBuilder nodeBuilder = new NodeBuilder().setId(deviceState.getNodeId()).setNodeConnector( + final NodeBuilder nodeBuilder = new NodeBuilder().setId(deviceContext.getDeviceInfo().getNodeId()).setNodeConnector( Collections.emptyList()); try { - deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, deviceState.getNodeInstanceIdentifier(), + deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), nodeBuilder.build()); } catch (final Exception e) { - LOG.warn("Failed to write node {} to DS ", deviceState.getNodeId(), e); + LOG.warn("Failed to write node {} to DS ", deviceContext.getDeviceInfo().getNodeId(), e); future.cancel(true); } } @@ -184,7 +186,7 @@ public class DeviceInitializationUtils { private static ListenableFuture>>> createDeviceFeaturesForOF10( final DeviceContext deviceContext, final DeviceState deviceState) { final ListenableFuture>> replyDesc = getNodeStaticInfo(MultipartType.OFPMPDESC, - deviceContext, deviceState.getNodeInstanceIdentifier(), deviceState.getVersion()); + deviceContext, deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), deviceContext.getDeviceInfo().getVersion()); return Futures.allAsList(Arrays.asList(replyDesc)); } @@ -193,7 +195,7 @@ public class DeviceInitializationUtils { final DeviceContext deviceContext, final DeviceState deviceState, final boolean switchFeaturesMandatory) { final ListenableFuture>> replyDesc = getNodeStaticInfo(MultipartType.OFPMPDESC, - deviceContext, deviceState.getNodeInstanceIdentifier(), deviceState.getVersion()); + deviceContext, deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), deviceContext.getDeviceInfo().getVersion()); //first process description reply, write data to DS and write consequent data if successful return Futures.transform(replyDesc, @@ -203,32 +205,32 @@ public class DeviceInitializationUtils { final RpcResult> rpcResult) throws Exception { translateAndWriteReply(MultipartType.OFPMPDESC, deviceContext, - deviceState.getNodeInstanceIdentifier(), rpcResult.getResult()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), rpcResult.getResult()); final ListenableFuture>> replyMeterFeature = getNodeStaticInfo( MultipartType.OFPMPMETERFEATURES, deviceContext, - deviceState.getNodeInstanceIdentifier(), deviceState.getVersion()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), deviceContext.getDeviceInfo().getVersion()); createSuccessProcessingCallback(MultipartType.OFPMPMETERFEATURES, deviceContext, - deviceState.getNodeInstanceIdentifier(), replyMeterFeature); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), replyMeterFeature); final ListenableFuture>> replyGroupFeatures = getNodeStaticInfo( MultipartType.OFPMPGROUPFEATURES, deviceContext, - deviceState.getNodeInstanceIdentifier(), deviceState.getVersion()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), deviceContext.getDeviceInfo().getVersion()); createSuccessProcessingCallback(MultipartType.OFPMPGROUPFEATURES, deviceContext, - deviceState.getNodeInstanceIdentifier(), replyGroupFeatures); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), replyGroupFeatures); final ListenableFuture>> replyTableFeatures = getNodeStaticInfo( MultipartType.OFPMPTABLEFEATURES, deviceContext, - deviceState.getNodeInstanceIdentifier(), deviceState.getVersion()); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), deviceContext.getDeviceInfo().getVersion()); createSuccessProcessingCallback(MultipartType.OFPMPTABLEFEATURES, deviceContext, - deviceState.getNodeInstanceIdentifier(), replyTableFeatures); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), replyTableFeatures); final ListenableFuture>> replyPortDescription = getNodeStaticInfo( - MultipartType.OFPMPPORTDESC, deviceContext, deviceState.getNodeInstanceIdentifier(), - deviceState.getVersion()); + MultipartType.OFPMPPORTDESC, deviceContext, deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), + deviceContext.getDeviceInfo().getVersion()); createSuccessProcessingCallback(MultipartType.OFPMPPORTDESC, deviceContext, - deviceState.getNodeInstanceIdentifier(), replyPortDescription); + deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), replyPortDescription); if (switchFeaturesMandatory) { return Futures.allAsList(Arrays.asList(replyMeterFeature, replyGroupFeatures, replyTableFeatures, replyPortDescription)); @@ -311,11 +313,11 @@ public class DeviceInitializationUtils { final MultipartReplyPortDesc portDesc = ((MultipartReplyPortDescCase) body) .getMultipartReplyPortDesc(); for (final PortGrouping port : portDesc.getPorts()) { - final short ofVersion = dContext.getDeviceState().getVersion(); + final short ofVersion = dContext.getDeviceInfo().getVersion(); final TranslatorKey translatorKey = new TranslatorKey(ofVersion, PortGrouping.class.getName()); final MessageTranslator translator = dContext.oook() .lookupTranslator(translatorKey); - final FlowCapableNodeConnector fcNodeConnector = translator.translate(port, dContext.getDeviceState(), null); + final FlowCapableNodeConnector fcNodeConnector = translator.translate(port, dContext.getDeviceInfo(), null); final BigInteger dataPathId = dContext.getPrimaryConnectionContext().getFeatures() .getDatapathId(); @@ -340,18 +342,18 @@ public class DeviceInitializationUtils { } } } catch (final Exception e) { - LOG.debug("Failed to write node {} to DS ", dContext.getDeviceState().getNodeId().toString(), e); + LOG.debug("Failed to write node {} to DS ", dContext.getDeviceInfo().getNodeId().toString(), e); } } private static void createEmptyFlowCapableNodeInDs(final DeviceContext deviceContext) { final FlowCapableNodeBuilder flowCapableNodeBuilder = new FlowCapableNodeBuilder(); - final InstanceIdentifier fNodeII = deviceContext.getDeviceState().getNodeInstanceIdentifier() + final InstanceIdentifier fNodeII = deviceContext.getDeviceInfo().getNodeInstanceIdentifier() .augmentation(FlowCapableNode.class); try { deviceContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, fNodeII, flowCapableNodeBuilder.build()); } catch (final Exception e) { - LOG.debug("Failed to write node {} to DS ", deviceContext.getDeviceState().getNodeId().toString(), e); + LOG.debug("Failed to write node {} to DS ", deviceContext.getDeviceInfo().getNodeId().toString(), e); } } @@ -362,7 +364,7 @@ public class DeviceInitializationUtils { if (remoteAddress == null) { LOG.warn("IP address of the node {} cannot be obtained. No connection with switch.", deviceContext - .getDeviceState().getNodeId()); + .getDeviceInfo().getNodeId()); return null; } LOG.info("IP address of switch is: {}", remoteAddress); @@ -384,7 +386,7 @@ public class DeviceInitializationUtils { try { dContext.writeToTransaction(LogicalDatastoreType.OPERATIONAL, tableII, tableBuilder.build()); } catch (final Exception e) { - LOG.debug("Failed to write node {} to DS ", dContext.getDeviceState().getNodeId().toString(), e); + LOG.debug("Failed to write node {} to DS ", dContext.getDeviceInfo().getNodeId().toString(), e); } } @@ -398,7 +400,7 @@ public class DeviceInitializationUtils { public void onSuccess(final RpcResult> rpcResult) { final List result = rpcResult.getResult(); if (result != null) { - LOG.info("Static node {} info: {} collected", deviceContext.getDeviceState().getNodeId(), type); + LOG.info("Static node {} info: {} collected", deviceContext.getDeviceInfo().getNodeId(), type); translateAndWriteReply(type, deviceContext, nodeII, result); } else { final Iterator rpcErrorIterator = rpcResult.getErrors().iterator(); @@ -486,8 +488,8 @@ public class DeviceInitializationUtils { } if (allSucceeded) { createEmptyFlowCapableNodeInDs(deviceContext); - makeEmptyTables(deviceContext, deviceContext.getDeviceState().getNodeInstanceIdentifier(), - deviceContext.getDeviceState().getFeatures().getTables()); + makeEmptyTables(deviceContext, deviceContext.getDeviceInfo().getNodeInstanceIdentifier(), + deviceContext.getPrimaryConnectionContext().getFeatures().getTables()); } } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImplTest.java index 66c3a4dbb2..10f3eb9b47 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/LifecycleConductorImplTest.java @@ -45,7 +45,7 @@ public class LifecycleConductorImplTest { @Mock private ServiceChangeListener serviceChangeListener; @Mock - private ConcurrentHashMap serviceChangeListeners; + private ConcurrentHashMap serviceChangeListeners; @Mock private DeviceContext deviceContext; @Mock @@ -75,7 +75,7 @@ public class LifecycleConductorImplTest { @Before public void setUp() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext); lifecycleConductor = new LifecycleConductorImpl(messageIntelligenceAgency); @@ -90,7 +90,7 @@ public class LifecycleConductorImplTest { @Test public void addOneTimeListenerWhenServicesChangesDoneTest() { - lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, nodeId); + lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, deviceInfo); assertEquals(false,lifecycleConductor.isServiceChangeListenersEmpty()); } @@ -100,9 +100,9 @@ public class LifecycleConductorImplTest { */ @Test public void notifyServiceChangeListenersTest1() { - lifecycleConductor.notifyServiceChangeListeners(nodeId,true); + lifecycleConductor.notifyServiceChangeListeners(deviceInfo,true); when(serviceChangeListeners.size()).thenReturn(0); - verify(serviceChangeListeners,times(0)).remove(nodeId); + verify(serviceChangeListeners,times(0)).remove(deviceInfo); } /** @@ -110,9 +110,9 @@ public class LifecycleConductorImplTest { */ @Test public void notifyServiceChangeListenersTest2() { - lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, nodeId); + lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, deviceInfo); assertEquals(false,lifecycleConductor.isServiceChangeListenersEmpty()); - lifecycleConductor.notifyServiceChangeListeners(nodeId,true); + lifecycleConductor.notifyServiceChangeListeners(deviceInfo,true); assertEquals(true,lifecycleConductor.isServiceChangeListenersEmpty()); } @@ -122,8 +122,8 @@ public class LifecycleConductorImplTest { */ @Test public void roleInitializationDoneTest1() { - lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, nodeId); - lifecycleConductor.roleInitializationDone(nodeId,false); + lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, deviceInfo); + lifecycleConductor.roleInitializationDone(deviceInfo,false); verify(deviceContext,times(1)).shutdownConnection(); } @@ -132,8 +132,8 @@ public class LifecycleConductorImplTest { */ @Test public void roleInitializationDoneTest2() { - lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, nodeId); - lifecycleConductor.roleInitializationDone(nodeId,true); + lifecycleConductor.addOneTimeListenerWhenServicesChangesDone(serviceChangeListener, deviceInfo); + lifecycleConductor.roleInitializationDone(deviceInfo,true); verify(deviceContext,times(0)).shutdownConnection(); } @@ -142,10 +142,10 @@ public class LifecycleConductorImplTest { */ @Test public void roleChangeOnDeviceTest1() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(null); - lifecycleConductor.roleChangeOnDevice(nodeId,true,ofpRole,false); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null); + lifecycleConductor.roleChangeOnDevice(deviceInfo,true,ofpRole,false); verify(deviceContext,times(0)).shutdownConnection(); - lifecycleConductor.roleChangeOnDevice(nodeId,false,ofpRole,false); + lifecycleConductor.roleChangeOnDevice(deviceInfo,false,ofpRole,false); verify(deviceContext,times(0)).shutdownConnection(); } @@ -154,8 +154,8 @@ public class LifecycleConductorImplTest { */ @Test public void roleChangeOnDeviceTest2() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); - lifecycleConductor.roleChangeOnDevice(nodeId,false,ofpRole,false); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); + lifecycleConductor.roleChangeOnDevice(deviceInfo,false,ofpRole,false); verify(deviceContext,times(1)).shutdownConnection(); } @@ -165,8 +165,8 @@ public class LifecycleConductorImplTest { */ @Test public void roleChangeOnDeviceTest3() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); - lifecycleConductor.roleChangeOnDevice(nodeId,true,ofpRole,true); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); + lifecycleConductor.roleChangeOnDevice(deviceInfo,true,ofpRole,true); verify(deviceContext,times(0)).shutdownConnection(); } @@ -176,9 +176,9 @@ public class LifecycleConductorImplTest { @Test public void roleChangeOnDeviceTest4() { when(deviceContext.getDeviceState()).thenReturn(deviceState); - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); when(deviceContext.onClusterRoleChange(null, OfpRole.BECOMEMASTER)).thenReturn(listenableFuture); - lifecycleConductor.roleChangeOnDevice(nodeId,true,OfpRole.BECOMEMASTER,false); + lifecycleConductor.roleChangeOnDevice(deviceInfo,true,OfpRole.BECOMEMASTER,false); verify(statisticsManager).startScheduling(Mockito.any()); } @@ -188,9 +188,9 @@ public class LifecycleConductorImplTest { @Test public void roleChangeOnDeviceTest5() { when(deviceContext.getDeviceState()).thenReturn(deviceState); - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); when(deviceContext.onClusterRoleChange(null, OfpRole.BECOMESLAVE)).thenReturn(listenableFuture); - lifecycleConductor.roleChangeOnDevice(nodeId,true,OfpRole.BECOMESLAVE,false); + lifecycleConductor.roleChangeOnDevice(deviceInfo,true,OfpRole.BECOMESLAVE,false); verify(statisticsManager).stopScheduling(Mockito.any()); } @@ -199,8 +199,8 @@ public class LifecycleConductorImplTest { */ @Test public void gainVersionSafelyTest1() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(null); - assertNull(lifecycleConductor.gainVersionSafely(nodeId)); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null); + assertNull(lifecycleConductor.gainVersionSafely(deviceInfo)); } /** @@ -208,8 +208,8 @@ public class LifecycleConductorImplTest { */ @Test public void gainVersionSafelyTest2() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); - lifecycleConductor.gainVersionSafely(nodeId); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); + lifecycleConductor.gainVersionSafely(deviceInfo); verify(deviceContext,times(1)).getPrimaryConnectionContext(); } @@ -218,8 +218,8 @@ public class LifecycleConductorImplTest { */ @Test public void gainConnectionStateSafelyTest1() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(null); - assertNull(lifecycleConductor.gainConnectionStateSafely(nodeId)); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null); + assertNull(lifecycleConductor.gainConnectionStateSafely(deviceInfo)); } /** @@ -227,8 +227,8 @@ public class LifecycleConductorImplTest { */ @Test public void gainConnectionStateSafelyTest2() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); - lifecycleConductor.gainConnectionStateSafely(nodeId); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); + lifecycleConductor.gainConnectionStateSafely(deviceInfo); verify(deviceContext,times(1)).getPrimaryConnectionContext(); } @@ -237,8 +237,8 @@ public class LifecycleConductorImplTest { */ @Test public void reserveXidForDeviceMessageTest1() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(null); - assertNull(lifecycleConductor.reserveXidForDeviceMessage(nodeId)); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(null); + assertNull(lifecycleConductor.reserveXidForDeviceMessage(deviceInfo)); } /** @@ -246,8 +246,8 @@ public class LifecycleConductorImplTest { */ @Test public void reserveXidForDeviceMessageTest2() { - when(deviceManager.getDeviceContextFromNodeId(nodeId)).thenReturn(deviceContext); - lifecycleConductor.reserveXidForDeviceMessage(nodeId); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); + lifecycleConductor.reserveXidForDeviceMessage(deviceInfo); verify(deviceContext,times(1)).reserveXidForDeviceMessage(); } @@ -256,7 +256,7 @@ public class LifecycleConductorImplTest { */ @Test public void deviceStartInitializationDoneTest() { - lifecycleConductor.deviceStartInitializationDone(nodeId, false); + lifecycleConductor.deviceStartInitializationDone(deviceInfo, false); verify(deviceContext,times(1)).shutdownConnection(); } @@ -265,7 +265,7 @@ public class LifecycleConductorImplTest { */ @Test public void deviceInitializationDoneTest() { - lifecycleConductor.deviceInitializationDone(nodeId, false); + lifecycleConductor.deviceInitializationDone(deviceInfo, false); verify(deviceContext,times(1)).shutdownConnection(); } } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java index a787fe7a75..31e8ffe3b9 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceContextImplTest.java @@ -103,6 +103,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived; import org.opendaylight.yang.gen.v1.urn.opendaylight.role.service.rev150727.OfpRole; import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; @@ -179,8 +180,9 @@ public class DeviceContextImplTest { Mockito.when(rTx.read(LogicalDatastoreType.OPERATIONAL, nodeKeyIdent)).thenReturn(noExistNodeFuture); Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx); Mockito.when(dataBroker.createTransactionChain(Mockito.any(TransactionChainManager.class))).thenReturn(txChainFactory); - Mockito.when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodeKeyIdent); - Mockito.when(deviceState.getNodeId()).thenReturn(nodeId); + Mockito.when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodeKeyIdent); + Mockito.when(deviceInfo.getNodeId()).thenReturn(nodeId); + Mockito.when(deviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); final SettableFuture> settableFuture = SettableFuture.create(); final SettableFuture> settableFutureMultiReply = SettableFuture.create(); Mockito.when(requestContext.getFuture()).thenReturn(settableFuture); @@ -203,12 +205,11 @@ public class DeviceContextImplTest { when(connectionContext.getFeatures()).thenReturn(mockedFeaturesReply); when(connectionContext.getFeatures().getCapabilities()).thenReturn(mock(Capabilities.class)); - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); Mockito.when(featuresOutput.getDatapathId()).thenReturn(DUMMY_DATAPATH_ID); Mockito.when(featuresOutput.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); - Mockito.when(deviceState.getFeatures()).thenReturn(featuresOutput); - Mockito.when(messageTranslatorPacketReceived.translate(any(Object.class), any(DeviceState.class), any(Object.class))).thenReturn(mock(PacketReceived.class)); - Mockito.when(messageTranslatorFlowCapableNodeConnector.translate(any(Object.class), any(DeviceState.class), any(Object.class))).thenReturn(mock(FlowCapableNodeConnector.class)); + Mockito.when(messageTranslatorPacketReceived.translate(any(Object.class), any(DeviceInfo.class), any(Object.class))).thenReturn(mock(PacketReceived.class)); + Mockito.when(messageTranslatorFlowCapableNodeConnector.translate(any(Object.class), any(DeviceInfo.class), any(Object.class))).thenReturn(mock(FlowCapableNodeConnector.class)); Mockito.when(translatorLibrary.lookupTranslator(eq(new TranslatorKey(OFConstants.OFP_VERSION_1_3, PacketIn.class.getName())))).thenReturn(messageTranslatorPacketReceived); Mockito.when(translatorLibrary.lookupTranslator(eq(new TranslatorKey(OFConstants.OFP_VERSION_1_3, PortGrouping.class.getName())))).thenReturn(messageTranslatorFlowCapableNodeConnector); Mockito.when(translatorLibrary.lookupTranslator(eq(new TranslatorKey(OFConstants.OFP_VERSION_1_3, @@ -414,7 +415,7 @@ public class DeviceContextImplTest { when(connectionContext.getConnectionAdapter()).thenReturn(mockedConnectionAdapter); final NodeId dummyNodeId = new NodeId("dummyNodeId"); - when(deviceState.getNodeId()).thenReturn(dummyNodeId); + when(deviceInfo.getNodeId()).thenReturn(dummyNodeId); final ConnectionContext mockedAuxiliaryConnectionContext = prepareConnectionContext(); deviceContext.addAuxiliaryConnectionContext(mockedAuxiliaryConnectionContext); @@ -463,7 +464,7 @@ public class DeviceContextImplTest { } @Test - public void testPortStatusMessage() { + public void testPortStatusMessage() throws Exception{ final PortStatusMessage mockedPortStatusMessage = mock(PortStatusMessage.class); final Class dummyClass = Class.class; when(mockedPortStatusMessage.getImplementedInterface()).thenReturn(dummyClass); @@ -471,10 +472,10 @@ public class DeviceContextImplTest { final GetFeaturesOutput mockedFeature = mock(GetFeaturesOutput.class); when(mockedFeature.getDatapathId()).thenReturn(DUMMY_DATAPATH_ID); - when(deviceState.getFeatures()).thenReturn(mockedFeature); when(mockedPortStatusMessage.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); when(mockedPortStatusMessage.getReason()).thenReturn(PortReason.OFPPRADD); + when(mockedPortStatusMessage.getPortNo()).thenReturn(42L); OpenflowPortsUtil.init(); deviceContext.processPortStatusMessage(mockedPortStatusMessage); @@ -491,7 +492,7 @@ public class DeviceContextImplTest { .setMatch(new MatchBuilder().build()); final NotificationPublishService mockedNotificationPublishService = mock(NotificationPublishService.class); - Mockito.when(messageTranslatorFlowRemoved.translate(any(Object.class), any(DeviceState.class), any(Object.class))) + Mockito.when(messageTranslatorFlowRemoved.translate(any(Object.class), any(DeviceInfo.class), any(Object.class))) .thenReturn(flowRemovedMdsalBld.build()); // insert flow+flowId into local registry diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java index 403f6242ac..bbb8ae81be 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java @@ -190,7 +190,6 @@ public class DeviceManagerImplTest { order.verify(mockConnectionContext).setOutboundQueueProvider(any(OutboundQueueProvider.class)); order.verify(mockConnectionContext).setOutboundQueueHandleRegistration( Mockito.>any()); - order.verify(mockConnectionContext).getNodeId(); verify(deviceInitPhaseHandler).onDeviceContextLevelUp(Matchers.any()); } @@ -204,7 +203,7 @@ public class DeviceManagerImplTest { .setPortNo(41L); when(mockFeatures.getPhyPort()).thenReturn(Collections.singletonList(phyPort.build())); final MessageTranslator mockedTranslator = mock(MessageTranslator.class); - when(mockedTranslator.translate(Matchers.any(), Matchers.any(), Matchers.any())) + when(mockedTranslator.translate(Matchers.any(), Matchers.any(), Matchers.any())) .thenReturn(null); when(translatorLibrary.lookupTranslator(Matchers.any())).thenReturn(mockedTranslator); @@ -215,7 +214,6 @@ public class DeviceManagerImplTest { order.verify(mockConnectionContext).setOutboundQueueProvider(any(OutboundQueueProvider.class)); order.verify(mockConnectionContext).setOutboundQueueHandleRegistration( Mockito.>any()); - order.verify(mockConnectionContext).getNodeId(); verify(deviceInitPhaseHandler).onDeviceContextLevelUp(Matchers.any()); } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImplTest.java index 012d744252..82230c9862 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceStateImplTest.java @@ -29,15 +29,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 * org.opendaylight.openflowplugin.impl.device * * test of {@link DeviceStateImpl} - lightweight version, using basic ways (TDD) - * - * @author Vaclav Demcak - * - * Created: Mar 29, 2015 */ @RunWith(MockitoJUnitRunner.class) public class DeviceStateImplTest { - private NodeId nodeId; @Mock private FeaturesReply featuresReply; private DeviceStateImpl deviceState; @@ -50,48 +45,9 @@ public class DeviceStateImplTest { @Before public void initialization() { - nodeId = new NodeId("test-node-id"); Mockito.when(featuresReply.getVersion()).thenReturn(version); Mockito.when(featuresReply.getPhyPort()).thenReturn(pPort); - deviceState = new DeviceStateImpl(featuresReply, nodeId); - } - - /** - * Test method for {@link DeviceStateImpl#DeviceStateImpl(FeaturesReply, NodeId)}. - */ - @Test(expected=NullPointerException.class) - public void testDeviceStateImplNullNodeId(){ - new DeviceStateImpl(featuresReply, null); - } - - /** - * Test method for {@link DeviceStateImpl#DeviceStateImpl(FeaturesReply, NodeId)}. - */ - @Test(expected=IllegalArgumentException.class) - public void testDeviceStateImplNullFeaturesReply(){ - new DeviceStateImpl(null, nodeId); - } - - /** - * Test method for {@link DeviceStateImpl#getNodeId()}. - */ - @Test - public void testGetNodeId(){ - final NodeId getNodeId = deviceState.getNodeId(); - Assert.assertNotNull(getNodeId); - Assert.assertEquals(nodeId, getNodeId); - } - - /** - * Test method for {@link DeviceStateImpl#getFeatures()}. - */ - @Test - public void testGetFeatures(){ - final GetFeaturesOutputBuilder expetedResult = new GetFeaturesOutputBuilder(featuresReply); - final GetFeaturesOutput getFeatures = deviceState.getFeatures(); - Assert.assertNotNull(getFeatures); - Assert.assertEquals(expetedResult.getVersion(), getFeatures.getVersion()); - Assert.assertEquals(expetedResult.getPhyPort(), getFeatures.getPhyPort()); + deviceState = new DeviceStateImpl(); } @Test diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java index 296ea4ef6b..68c07e2353 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManagerTest.java @@ -31,6 +31,7 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionChain; 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.connection.ConnectionContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.lifecycle.LifecycleConductor; import org.opendaylight.openflowplugin.impl.util.DeviceStateUtil; @@ -66,6 +67,8 @@ public class TransactionChainManagerTest { @Mock DeviceState deviceState; @Mock + DeviceInfo deviceInfo; + @Mock LifecycleConductor conductor; @Mock @@ -85,9 +88,9 @@ public class TransactionChainManagerTest { .thenReturn(txChain); nodeId = new NodeId("h2g2:42"); nodeKeyIdent = DeviceStateUtil.createNodeInstanceIdentifier(nodeId); - Mockito.when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodeKeyIdent); - Mockito.when(deviceState.getNodeId()).thenReturn(nodeId); - txChainManager = new TransactionChainManager(dataBroker, deviceState, conductor); + Mockito.when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodeKeyIdent); + Mockito.when(deviceInfo.getNodeId()).thenReturn(nodeId); + txChainManager = new TransactionChainManager(dataBroker, deviceInfo, conductor); Mockito.when(txChain.newWriteOnlyTransaction()).thenReturn(writeTx); path = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/registry/flow/FlowRegistryKeyFactoryTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/registry/flow/FlowRegistryKeyFactoryTest.java index 2df7f6edbe..cf60cb5e71 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/registry/flow/FlowRegistryKeyFactoryTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/registry/flow/FlowRegistryKeyFactoryTest.java @@ -24,6 +24,7 @@ import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.registry.flow.FlowRegistryKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix; @@ -49,6 +50,8 @@ public class FlowRegistryKeyFactoryTest { private DeviceContext deviceContext; @Mock private DeviceState deviceState; + @Mock + private DeviceInfo deviceInfo; @Before @@ -59,7 +62,7 @@ public class FlowRegistryKeyFactoryTest { } FLOWS_STATISTICS_UPDATE_BUILDER.setFlowAndStatisticsMapList(flowAndStatisticsMapListList); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); } @Test diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleContextImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleContextImplTest.java index 36385b3c14..8349f477a7 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleContextImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleContextImplTest.java @@ -113,7 +113,7 @@ public class RoleContextImplTest { @Test public void testCreateRequestContext() throws Exception { roleContext.createRequestContext(); - Mockito.verify(conductor).reserveXidForDeviceMessage(nodeId); + Mockito.verify(conductor).reserveXidForDeviceMessage(deviceInfo); } @Test(expected = NullPointerException.class) diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImplTest.java index aa9ef753bc..fe20b2e68e 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/role/RoleManagerImplTest.java @@ -115,23 +115,22 @@ public class RoleManagerImplTest { private final NodeId nodeId2 = NodeId.getDefaultInstance("openflow:2"); - private final EntityOwnershipChange masterEntity = new EntityOwnershipChange(RoleManagerImpl.makeEntity(nodeId), false, true, true); - private final EntityOwnershipChange masterTxEntity = new EntityOwnershipChange(RoleManagerImpl.makeTxEntity(nodeId), false, true, true); - private final EntityOwnershipChange slaveEntity = new EntityOwnershipChange(RoleManagerImpl.makeEntity(nodeId), true, false, true); - private final EntityOwnershipChange slaveTxEntityLast = new EntityOwnershipChange(RoleManagerImpl.makeTxEntity(nodeId), true, false, false); - private final EntityOwnershipChange masterEntityNotOwner = new EntityOwnershipChange(RoleManagerImpl.makeEntity(nodeId), true, false, true); + private final EntityOwnershipChange masterEntity = new EntityOwnershipChange(RoleManagerImpl.makeEntity(nodeId), false, true, true, false); + private final EntityOwnershipChange masterTxEntity = new EntityOwnershipChange(RoleManagerImpl.makeTxEntity(nodeId), false, true, true, false); + private final EntityOwnershipChange slaveEntity = new EntityOwnershipChange(RoleManagerImpl.makeEntity(nodeId), true, false, true, false); + private final EntityOwnershipChange slaveTxEntityLast = new EntityOwnershipChange(RoleManagerImpl.makeTxEntity(nodeId), true, false, false, false); + private final EntityOwnershipChange masterEntityNotOwner = new EntityOwnershipChange(RoleManagerImpl.makeEntity(nodeId), true, false, true, false); private InOrder inOrder; @Before public void setUp() throws Exception { CheckedFuture future = Futures.immediateCheckedFuture(null); - Mockito.when(deviceState.getFeatures()).thenReturn(featuresOutput); Mockito.when(entityOwnershipService.registerListener(Mockito.anyString(), Mockito.any(EntityOwnershipListener.class))).thenReturn(entityOwnershipListenerRegistration); Mockito.when(entityOwnershipService.registerCandidate(Mockito.any(Entity.class))).thenReturn(entityOwnershipCandidateRegistration); Mockito.when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); - Mockito.when(deviceInfo.getNodeId()).thenReturn(nodeId); + Mockito.when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo); Mockito.when(connectionContext.getFeatures()).thenReturn(featuresReply); Mockito.when(connectionContext.getNodeId()).thenReturn(nodeId); Mockito.when(connectionContext.getConnectionState()).thenReturn(ConnectionContext.CONNECTION_STATE.WORKING); @@ -141,13 +140,14 @@ public class RoleManagerImplTest { Mockito.doNothing().when(deviceTerminationPhaseHandler).onDeviceContextLevelDown(Mockito.any()); Mockito.when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction); Mockito.when(writeTransaction.submit()).thenReturn(future); - Mockito.when(deviceManager.getDeviceContextFromNodeId(Mockito.any())).thenReturn(deviceContext); + Mockito.when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(deviceContext); Mockito.when(deviceInfo.getNodeId()).thenReturn(nodeId); Mockito.when(deviceInfo2.getNodeId()).thenReturn(nodeId2); + Mockito.when(deviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); roleManager = new RoleManagerImpl(entityOwnershipService, dataBroker, conductor); roleManager.setDeviceInitializationPhaseHandler(deviceInitializationPhaseHandler); roleManager.setDeviceTerminationPhaseHandler(deviceTerminationPhaseHandler); - Mockito.when(conductor.getDeviceContext(Mockito.any())).thenReturn(deviceContext); + Mockito.when(conductor.getDeviceContext(deviceInfo)).thenReturn(deviceContext); roleManagerSpy = Mockito.spy(roleManager); roleManagerSpy.onDeviceContextLevelUp(deviceInfo); roleContextSpy = Mockito.spy(roleManager.getRoleContext(nodeId)); @@ -248,7 +248,7 @@ public class RoleManagerImplTest { Mockito.when(roleContextSpy.isTxCandidateRegistered()).thenReturn(false); roleManagerSpy.changeOwnershipForTxEntity(slaveTxEntityLast, roleContextSpy); verify(roleContextSpy).close(); - verify(conductor).closeConnection(nodeId); + verify(conductor).closeConnection(deviceInfo); } @Test @@ -256,48 +256,48 @@ public class RoleManagerImplTest { Mockito.when(roleContextSpy.isTxCandidateRegistered()).thenReturn(true); roleManagerSpy.changeOwnershipForTxEntity(masterEntityNotOwner, roleContextSpy); verify(roleContextSpy).close(); - verify(conductor).closeConnection(nodeId); + verify(conductor).closeConnection(deviceInfo); } @Test public void testAddListener() throws Exception { roleManager.addRoleChangeListener((new RoleChangeListener() { @Override - public void roleInitializationDone(final NodeId nodeId, final boolean success) { - Assert.assertTrue(nodeId.equals(nodeId)); + public void roleInitializationDone(final DeviceInfo deviceInfo_, final boolean success) { + Assert.assertTrue(deviceInfo.equals(deviceInfo_)); Assert.assertTrue(success); } @Override - public void roleChangeOnDevice(final NodeId nodeId_, final boolean success, final OfpRole newRole, final boolean initializationPhase) { - Assert.assertTrue(nodeId.equals(nodeId_)); + public void roleChangeOnDevice(final DeviceInfo deviceInfo_, final boolean success, final OfpRole newRole, final boolean initializationPhase) { + Assert.assertTrue(deviceInfo.equals(deviceInfo_)); Assert.assertTrue(success); Assert.assertFalse(initializationPhase); Assert.assertTrue(newRole.equals(OfpRole.BECOMEMASTER)); } })); - roleManager.notifyListenersRoleInitializationDone(nodeId, true); - roleManager.notifyListenersRoleChangeOnDevice(nodeId, true, OfpRole.BECOMEMASTER, false); + roleManager.notifyListenersRoleInitializationDone(deviceInfo, true); + roleManager.notifyListenersRoleChangeOnDevice(deviceInfo, true, OfpRole.BECOMEMASTER, false); } @Test public void testMakeDeviceRoleChange() throws Exception{ roleManagerSpy.makeDeviceRoleChange(OfpRole.BECOMEMASTER, roleContextSpy, true); verify(roleManagerSpy, atLeastOnce()).sendRoleChangeToDevice(Mockito.any(), Mockito.any()); - verify(roleManagerSpy, atLeastOnce()).notifyListenersRoleChangeOnDevice(Mockito.any(), eq(true), Mockito.any(), eq(true)); + verify(roleManagerSpy, atLeastOnce()).notifyListenersRoleChangeOnDevice(Mockito.any(), eq(true), Mockito.any(), eq(true)); } @Test public void testServicesChangeDone() throws Exception { roleManagerSpy.setRoleContext(nodeId2, roleContextSpy); - roleManagerSpy.servicesChangeDone(nodeId2, true); + roleManagerSpy.servicesChangeDone(deviceInfo2, true); verify(roleContextSpy).unregisterCandidate(Mockito.any()); } @Test public void testServicesChangeDoneContextIsNull() throws Exception { roleManagerSpy.setRoleContext(nodeId, roleContextSpy); - roleManagerSpy.servicesChangeDone(nodeId2, true); + roleManagerSpy.servicesChangeDone(deviceInfo2, true); verify(roleContextSpy, never()).unregisterCandidate(Mockito.any()); } } \ No newline at end of file diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java index f523828cb1..08f97f5c61 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImplTest.java @@ -21,6 +21,7 @@ import org.mockito.runners.MockitoJUnitRunner; import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.XidSequencer; @@ -47,6 +48,8 @@ public class RpcContextImplTest { @Mock private DeviceState deviceState; @Mock + private DeviceInfo deviceInfo; + @Mock private XidSequencer xidSequencer; @Mock private MessageSpy messageSpy; @@ -67,7 +70,7 @@ public class RpcContextImplTest { nodeInstanceIdentifier = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(nodeId)); when(deviceContext.getDeviceState()).thenReturn(deviceState); - when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodeInstanceIdentifier); + when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodeInstanceIdentifier); when(deviceContext.getMessageSpy()).thenReturn(messageSpy); rpcContext = new RpcContextImpl(rpcProviderRegistry,deviceContext, messageSpy, MAX_REQUESTS,nodeInstanceIdentifier); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImplTest.java index 60ca70f619..333ef0576e 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/rpc/RpcManagerImplTest.java @@ -103,28 +103,26 @@ public class RpcManagerImplTest { Mockito.when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); Mockito.when(deviceContext.getItemLifeCycleSourceRegistry()).thenReturn(itemLifeCycleRegistry); - Mockito.when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodePath); - Mockito.when(deviceState.getFeatures()).thenReturn(featuresOutput); + Mockito.when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodePath); rpcManager.setDeviceTerminationPhaseHandler(deviceTerminationPhaseHandler); Mockito.when(connectionContext.getFeatures()).thenReturn(features); Mockito.when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); Mockito.when(deviceContext.getItemLifeCycleSourceRegistry()).thenReturn(itemLifeCycleRegistry); - Mockito.when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodePath); + Mockito.when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodePath); Mockito.when(deviceContext.getMessageSpy()).thenReturn(messageSpy); Mockito.when(deviceInfo.getNodeId()).thenReturn(nodeKey.getId()); - Mockito.when(deviceState.getNodeId()).thenReturn(nodeKey.getId()); Mockito.when(rpcProviderRegistry.addRoutedRpcImplementation( Matchers.>any(), Matchers.any(RpcService.class))) .thenReturn(routedRpcRegistration); - Mockito.when(conductor.getDeviceContext(Mockito.any())).thenReturn(deviceContext); + Mockito.when(conductor.getDeviceContext(deviceInfo)).thenReturn(deviceContext); Mockito.when(contexts.remove(deviceInfo)).thenReturn(removedContexts); } @Test public void onDeviceContextLevelUp() throws Exception { rpcManager.onDeviceContextLevelUp(deviceInfo); - verify(conductor).getDeviceContext(Mockito.any()); + verify(conductor).getDeviceContext(deviceInfo); } @Test diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/FlowCapableTransactionServiceImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/FlowCapableTransactionServiceImplTest.java index 5239335897..8916519edd 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/FlowCapableTransactionServiceImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/FlowCapableTransactionServiceImplTest.java @@ -51,6 +51,6 @@ public class FlowCapableTransactionServiceImplTest extends ServiceMocking { private SendBarrierInput buildSendBarrierInput() { return new SendBarrierInputBuilder() - .setNode(new NodeRef(mockedDeviceState.getNodeInstanceIdentifier())).build(); + .setNode(new NodeRef(mockedDeviceInfo.getNodeInstanceIdentifier())).build(); } } \ No newline at end of file diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallbackTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallbackTest.java index 756b1ee437..3e4c4f0162 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallbackTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/MultipartRequestOnTheFlyCallbackTest.java @@ -28,6 +28,7 @@ import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.registry.flow.DeviceFlowRegistry; @@ -88,6 +89,8 @@ public class MultipartRequestOnTheFlyCallbackTest { @Mock private DeviceState mockedDeviceState; @Mock + private DeviceInfo mockedDeviceInfo; + @Mock private GetFeaturesOutput mocketGetFeaturesOutput; @Mock private DeviceFlowRegistry mockedFlowRegistry; @@ -113,15 +116,16 @@ public class MultipartRequestOnTheFlyCallbackTest { when(mocketGetFeaturesOutput.getDatapathId()).thenReturn(BigInteger.valueOf(123L)); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedPrimaryConnection); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(NODE_PATH); - when(mockedDeviceState.getFeatures()).thenReturn(mocketGetFeaturesOutput); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(NODE_PATH); when(mockedDeviceState.deviceSynchronized()).thenReturn(true); - when(mockedDeviceState.getNodeId()).thenReturn(mockedNodeId); + when(mockedDeviceInfo.getNodeId()).thenReturn(mockedNodeId); + when(mockedDeviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); when(mockedDeviceContext.getDeviceFlowRegistry()).thenReturn(mockedFlowRegistry); - final InstanceIdentifier nodePath = mockedDeviceState.getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + final InstanceIdentifier nodePath = mockedDeviceInfo.getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); final FlowCapableNodeBuilder flowNodeBuilder = new FlowCapableNodeBuilder(); flowNodeBuilder.setTable(Collections. emptyList()); final Optional flowNodeOpt = Optional.of(flowNodeBuilder.build()); @@ -137,8 +141,8 @@ public class MultipartRequestOnTheFlyCallbackTest { } }; multipartRequestOnTheFlyCallback = new MultipartRequestOnTheFlyCallback(dummyRequestContext, String.class, - mockedDeviceContext.getMessageSpy(),dummyEventIdentifier, mockedDeviceContext.getDeviceState(), - mockedDeviceContext.getDeviceFlowRegistry(), mockedDeviceContext); + mockedDeviceContext.getMessageSpy(),dummyEventIdentifier, mockedDeviceInfo, + mockedDeviceContext.getDeviceFlowRegistry(), mockedDeviceContext, mockedDeviceState); } @@ -205,7 +209,7 @@ public class MultipartRequestOnTheFlyCallbackTest { .setMultipartReplyBody(multipartReplyFlowCaseBuilder.build()) .setXid(21L); - final InstanceIdentifier nodePath = mockedDeviceState.getNodeInstanceIdentifier() + final InstanceIdentifier nodePath = mockedDeviceInfo.getNodeInstanceIdentifier() .augmentation(FlowCapableNode.class); final FlowCapableNodeBuilder flowNodeBuilder = new FlowCapableNodeBuilder(); final TableBuilder tableDataBld = new TableBuilder(); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImplTest.java index cad3b6968d..7647e5c336 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImplTest.java @@ -79,7 +79,7 @@ public class PacketProcessingServiceImplTest extends ServiceMocking { private TransmitPacketInput buildTransmitPacketInput() { TransmitPacketInputBuilder transmitPacketInputBld = new TransmitPacketInputBuilder() .setBufferId(OFConstants.OFP_NO_BUFFER) - .setNode(new NodeRef(mockedDeviceState.getNodeInstanceIdentifier())) + .setNode(new NodeRef(mockedDeviceInfo.getNodeInstanceIdentifier())) .setPayload(ULTIMATE_PAYLOAD.getBytes()) .setEgress(new NodeConnectorRef(pathToNodeconnector)); return transmitPacketInputBld.build(); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalExperimenterMessageServiceImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalExperimenterMessageServiceImplTest.java index 62f00d19ad..80017d1948 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalExperimenterMessageServiceImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalExperimenterMessageServiceImplTest.java @@ -74,7 +74,7 @@ public class SalExperimenterMessageServiceImplTest extends ServiceMocking { private SendExperimenterInput buildSendExperimenterInput() { SendExperimenterInputBuilder sendExperimenterInputBld = new SendExperimenterInputBuilder() - .setNode(new NodeRef(mockedDeviceState.getNodeInstanceIdentifier())) + .setNode(new NodeRef(mockedDeviceInfo.getNodeInstanceIdentifier())) .setExperimenterMessageOfChoice(new DummyExperimenter()); return sendExperimenterInputBld.build(); } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImplTest.java index 3cf72599f8..53e422c7c5 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImplTest.java @@ -21,6 +21,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; @@ -95,6 +96,8 @@ public class SalFlowServiceImplTest extends TestCase { @Mock private DeviceState mockedDeviceState; @Mock + private DeviceInfo mockedDeviceInfo; + @Mock private DeviceFlowRegistry deviceFlowRegistry; @Mock private GetFeaturesOutput mockedFeaturesOutput; @@ -119,9 +122,11 @@ public class SalFlowServiceImplTest extends TestCase { when(requestContext.getXid()).thenReturn(new Xid(84L)); when(requestContext.getFuture()).thenReturn(RpcResultBuilder.success().buildFuture()); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(NODE_II); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeaturesOutput); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(NODE_II); + when(mockedDeviceInfo.getDatapathId()).thenReturn(DUMMY_DATAPATH_ID); + when(mockedDeviceInfo.getVersion()).thenReturn(DUMMY_VERSION); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); salFlowService = new SalFlowServiceImpl(mockedRequestContextStack, mockedDeviceContext); } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalRoleServiceImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalRoleServiceImplTest.java index 35c702a512..6781b157de 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalRoleServiceImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/SalRoleServiceImplTest.java @@ -23,6 +23,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; @@ -76,6 +77,9 @@ public class SalRoleServiceImplTest { @Mock private DeviceState mockDeviceState; + @Mock + private DeviceInfo mockDeviceInfo; + @Mock private GetFeaturesOutput mockFeaturesOutput; @@ -93,10 +97,11 @@ public class SalRoleServiceImplTest { @Before public void setup() { MockitoAnnotations.initMocks(this); - Mockito.when(mockDeviceState.getNodeId()).thenReturn(testNodeId); - Mockito.when(mockDeviceState.getFeatures()).thenReturn(mockFeaturesOutput); + Mockito.when(mockDeviceInfo.getNodeId()).thenReturn(testNodeId); + Mockito.when(mockDeviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); Mockito.when(mockFeaturesOutput.getVersion()).thenReturn(testVersion); Mockito.when(mockDeviceContext.getDeviceState()).thenReturn(mockDeviceState); + Mockito.when(mockDeviceContext.getDeviceInfo()).thenReturn(mockDeviceInfo); Mockito.when(mockDeviceContext.getPrimaryConnectionContext()).thenReturn(mockConnectionContext); Mockito.when(mockConnectionContext.getFeatures()).thenReturn(mockFeaturesReply); Mockito.when(mockConnectionContext.getNodeId()).thenReturn(testNodeId); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/ServiceMocking.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/ServiceMocking.java index d826926f53..4f699693af 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/ServiceMocking.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/services/ServiceMocking.java @@ -14,6 +14,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; @@ -64,6 +65,8 @@ public abstract class ServiceMocking { @Mock protected DeviceState mockedDeviceState; @Mock + protected DeviceInfo mockedDeviceInfo; + @Mock protected DeviceInitializationPhaseHandler mockedDevicePhaseHandler; @Mock protected RequestContext mockedRequestContext; @@ -88,13 +91,15 @@ public abstract class ServiceMocking { when(mockedPrimConnectionContext.getConnectionState()).thenReturn(ConnectionContext.CONNECTION_STATE.WORKING); when(mockedPrimConnectionContext.getOutboundQueueProvider()).thenReturn(mockedOutboundQueue); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(NODE_II); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeaturesOutput); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(NODE_II); + when(mockedDeviceInfo.getDatapathId()).thenReturn(DUMMY_DATAPATH_ID); + when(mockedDeviceInfo.getVersion()).thenReturn(DUMMY_VERSION); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedPrimConnectionContext); when(mockedDeviceContext.getMessageSpy()).thenReturn(mockedMessagSpy); when(mockedDeviceContext.getDeviceFlowRegistry()).thenReturn(new DeviceFlowRegistryImpl()); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); when(mockedDeviceContext.getMultiMsgCollector(Matchers.>>any())).thenReturn(multiMessageCollector); setup(); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpMockInitiation.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpMockInitiation.java index 022e2d68e8..c47456cc89 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpMockInitiation.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpMockInitiation.java @@ -15,7 +15,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Before; -import org.mockito.Mockito; import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; @@ -35,6 +34,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; +import java.math.BigInteger; + class StatisticsContextImpMockInitiation { Boolean isTable = false; @@ -80,10 +81,11 @@ class StatisticsContextImpMockInitiation { when(mockedDeviceState.isMetersAvailable()).thenReturn(isMeter); when(mockedDeviceState.isPortStatisticsAvailable()).thenReturn(isPort); when(mockedDeviceState.isQueueStatisticsAvailable()).thenReturn(isQueue); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(dummyNodeII); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeaturesOutput); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(dummyNodeII); + when(mockedDeviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedConnectionContext); when(mockedDeviceContext.getMessageSpy()).thenReturn(mockedMessageSpy); @@ -92,9 +94,9 @@ class StatisticsContextImpMockInitiation { when(mockedConnectionContext.getConnectionState()).thenReturn(ConnectionContext.CONNECTION_STATE.WORKING); when(mockedConnectionContext.getOutboundQueueProvider()).thenReturn(mockedOutboundQueue); - when(mockedDeviceManager.getDeviceContextFromNodeId(Mockito.any())).thenReturn(mockedDeviceContext); + when(mockedDeviceManager.getDeviceContextFromNodeId(mockedDeviceInfo)).thenReturn(mockedDeviceContext); mockConductor.setSafelyDeviceManager(mockedDeviceManager); - when(mockConductor.getDeviceContext(Mockito.any())).thenReturn(mockedDeviceContext); + when(mockConductor.getDeviceContext(mockedDeviceInfo)).thenReturn(mockedDeviceContext); } } diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImplTest.java index 2006ca210f..2bebe44a60 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImplTest.java @@ -32,7 +32,6 @@ import org.mockito.runners.MockitoJUnitRunner; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.EventIdentifier; -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReply; @@ -52,7 +51,7 @@ public class StatisticsContextImplTest extends StatisticsContextImpMockInitiatio @Before public void setUp() throws Exception { when(mockedDeviceContext.reserveXidForDeviceMessage()).thenReturn(TEST_XID); - when(mockConductor.getDeviceContext(Mockito.any())).thenReturn(mockedDeviceContext); + when(mockConductor.getDeviceContext(mockedDeviceInfo)).thenReturn(mockedDeviceContext); initStatisticsContext(); } @@ -100,14 +99,13 @@ public class StatisticsContextImplTest extends StatisticsContextImpMockInitiatio @Test public void testGatherDynamicData_all() throws Exception { Mockito.reset(mockedDeviceState); - when(mockedDeviceState.getFeatures()).thenReturn(mock(GetFeaturesOutput.class)); when(mockedDeviceState.isTableStatisticsAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isFlowStatisticsAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isGroupAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isMetersAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isPortStatisticsAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isQueueStatisticsAvailable()).thenReturn(Boolean.TRUE); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(dummyNodeII); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(dummyNodeII); initStatisticsContext(); when(mockedStatisticsGatheringService.getStatisticsOfType(Matchers.any(EventIdentifier.class), Matchers.any(MultipartType.class))) diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtilsTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtilsTest.java index b1c389eca9..2897c25cab 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtilsTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtilsTest.java @@ -40,6 +40,7 @@ import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.registry.flow.DeviceFlowRegistry; import org.opendaylight.openflowplugin.api.openflow.registry.flow.FlowRegistryKey; @@ -159,6 +160,8 @@ public class StatisticsGatheringUtilsTest { private ConnectionContext connectionAdapter; @Mock private StatisticsGatherer statisticsService; + @Mock + private DeviceInfo deviceInfo; public StatisticsGatheringUtilsTest() { OpenflowPortsUtil.init(); @@ -167,19 +170,21 @@ public class StatisticsGatheringUtilsTest { @Before public void setUp() throws Exception { when(deviceContext.getDeviceState()).thenReturn(deviceState); + when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo); when(deviceContext.getDeviceFlowRegistry()).thenReturn(deviceFlowRegistry); when(deviceContext.getDeviceGroupRegistry()).thenReturn(deviceGroupRegistry); when(deviceContext.getDeviceMeterRegistry()).thenReturn(deviceMeterRegistry); when(deviceContext.getReadTransaction()).thenReturn(readTx); when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionAdapter); when(connectionAdapter.getNodeId()).thenReturn(DUMMY_NODE_ID); - when(deviceState.getFeatures()).thenReturn(features); when(connectionAdapter.getFeatures()).thenReturn(features); - - when(features.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); when(features.getDatapathId()).thenReturn(BigInteger.ONE); + when(features.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + + when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + when(deviceInfo.getDatapathId()).thenReturn(BigInteger.ONE); - when(deviceState.getNodeInstanceIdentifier()).thenReturn(dummyNodePath); + when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(dummyNodePath); } @After @@ -194,7 +199,7 @@ public class StatisticsGatheringUtilsTest { final ArgumentCaptor flow = ArgumentCaptor.forClass(Flow.class); StatisticsGatheringUtils.writeFlowStatistics(prepareFlowStatisticsData(), - deviceContext.getDeviceState(), deviceContext.getDeviceFlowRegistry(), deviceContext); + deviceInfo, deviceContext.getDeviceFlowRegistry(), deviceContext); Mockito.verify(deviceContext).writeToTransaction( dataStoreType.capture(), flowPath.capture(), flow.capture()); @@ -494,8 +499,8 @@ public class StatisticsGatheringUtilsTest { @Test public void testDeleteAllKnownFlowsNotSync() throws Exception { when(deviceState.deviceSynchronized()).thenReturn(false); - StatisticsGatheringUtils.deleteAllKnownFlows(deviceContext.getDeviceState(), - deviceContext.getDeviceFlowRegistry(), deviceContext); + StatisticsGatheringUtils.deleteAllKnownFlows(deviceInfo, + deviceContext.getDeviceFlowRegistry(), deviceContext, deviceState); Mockito.verifyNoMoreInteractions(deviceFlowRegistry); } @@ -503,7 +508,7 @@ public class StatisticsGatheringUtilsTest { public void testDeleteAllKnownFlows() throws Exception { final short tableId = 0; when(deviceState.deviceSynchronized()).thenReturn(true); - final InstanceIdentifier nodePath = deviceState.getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); + final InstanceIdentifier nodePath = deviceInfo.getNodeInstanceIdentifier().augmentation(FlowCapableNode.class); final TableBuilder tableDataBld = new TableBuilder(); tableDataBld.setId(tableId); final FlowCapableNodeBuilder flowNodeBuilder = new FlowCapableNodeBuilder(); @@ -511,11 +516,11 @@ public class StatisticsGatheringUtilsTest { final Optional flowNodeOpt = Optional.of(flowNodeBuilder.build()); final CheckedFuture, ReadFailedException> flowNodeFuture = Futures.immediateCheckedFuture(flowNodeOpt); when(readTx.read(LogicalDatastoreType.OPERATIONAL, nodePath)).thenReturn(flowNodeFuture); - final KeyedInstanceIdentifier tablePath = deviceState.getNodeInstanceIdentifier() + final KeyedInstanceIdentifier tablePath = deviceInfo.getNodeInstanceIdentifier() .augmentation(FlowCapableNode.class).child(Table.class, new TableKey(tableId)); - StatisticsGatheringUtils.deleteAllKnownFlows(deviceContext.getDeviceState(), - deviceContext.getDeviceFlowRegistry(), deviceContext); + StatisticsGatheringUtils.deleteAllKnownFlows(deviceInfo, + deviceContext.getDeviceFlowRegistry(), deviceContext, deviceState); verify(deviceContext).writeToTransaction( LogicalDatastoreType.OPERATIONAL, diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImplTest.java index 2d732f13a4..aab0e8e04a 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsManagerImplTest.java @@ -156,12 +156,11 @@ public class StatisticsManagerImplTest { when(mockedDeviceState.isPortStatisticsAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isQueueStatisticsAvailable()).thenReturn(Boolean.TRUE); when(mockedDeviceState.isTableStatisticsAvailable()).thenReturn(Boolean.TRUE); - when(mockedDeviceState.getFeatures()).thenReturn(featuresOutput); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(nodePath); + when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodePath); when(deviceInfo.getNodeId()).thenReturn(NODE_ID); - when(mockedDeviceState.getNodeId()).thenReturn(NODE_ID); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(deviceInfo); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedPrimConnectionContext); when(mockedDeviceContext.getMessageSpy()).thenReturn(mockedMessagSpy); when(mockedDeviceContext.getDeviceFlowRegistry()).thenReturn(new DeviceFlowRegistryImpl()); @@ -183,8 +182,8 @@ public class StatisticsManagerImplTest { statisticsManager = new StatisticsManagerImpl(rpcProviderRegistry, false, conductor); statisticsManager.setDeviceInitializationPhaseHandler(deviceInitializationPhaseHandler); - when(deviceManager.getDeviceContextFromNodeId(Mockito.any())).thenReturn(mockedDeviceContext); - when(conductor.getDeviceContext(Mockito.any())).thenReturn(mockedDeviceContext); + when(deviceManager.getDeviceContextFromNodeId(deviceInfo)).thenReturn(mockedDeviceContext); + when(conductor.getDeviceContext(deviceInfo)).thenReturn(mockedDeviceContext); } @Test @@ -375,7 +374,7 @@ public class StatisticsManagerImplTest { final TimeCounter mockTimerCounter = Mockito.mock(TimeCounter.class); statisticsManager.pollStatistics(mockedDeviceContext, statisticsContext, mockTimerCounter); - verify(mockedDeviceContext).getDeviceState(); + verify(mockedDeviceContext).getDeviceInfo(); when(mockedDeviceContext.getDeviceState().isValid()).thenReturn(true); statisticsManager.pollStatistics(mockedDeviceContext, statisticsContext, mockTimerCounter); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/AbstractStatsServiceTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/AbstractStatsServiceTest.java index a3480ed9ad..bd25110f4a 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/AbstractStatsServiceTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/AbstractStatsServiceTest.java @@ -22,6 +22,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; @@ -64,6 +65,8 @@ public abstract class AbstractStatsServiceTest { protected TranslatorLibrary translatorLibrary; @Mock protected DeviceState deviceState; + @Mock + protected DeviceInfo deviceInfo; public static final NodeId NODE_ID = new NodeId("unit-test-node:123"); @@ -91,9 +94,10 @@ public abstract class AbstractStatsServiceTest { Mockito.when(deviceContext.getMultiMsgCollector(Matchers.any(RequestContext.class))).thenReturn(multiMsgCollector); Mockito.when(deviceContext.oook()).thenReturn(translatorLibrary); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); - Mockito.when(deviceState.getNodeId()).thenReturn(NODE_ID); - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); - Mockito.when(deviceState.getFeatures()).thenReturn(getFeaturesOutput); + Mockito.when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo); + Mockito.when(deviceInfo.getNodeId()).thenReturn(NODE_ID); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + Mockito.when(deviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); Mockito.when(connectionContext.getFeatures()).thenReturn(features); Mockito.when(connectionContext.getOutboundQueueProvider()).thenReturn(outboundQueueProvider); Mockito.when(features.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl2Test.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl2Test.java index 236e50577a..8c3d71dbb6 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl2Test.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl2Test.java @@ -82,7 +82,7 @@ public class OpendaylightFlowStatisticsServiceImpl2Test extends AbstractStatsSer } ).when(multiMsgCollector).endCollecting(Matchers.any(EventIdentifier.class)); Mockito.when(translator.translate( - Matchers.any(MultipartReply.class), Matchers.same(deviceState), Matchers.isNull()) + Matchers.any(MultipartReply.class), Matchers.same(deviceInfo), Matchers.isNull()) ).thenReturn(new AggregatedFlowStatisticsBuilder().build()); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/AbstractCompatibleStatServiceTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/AbstractCompatibleStatServiceTest.java index d6dccf1703..598ddbcad2 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/AbstractCompatibleStatServiceTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/AbstractCompatibleStatServiceTest.java @@ -24,6 +24,7 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; import org.opendaylight.openflowplugin.api.OFConstants; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey; @@ -64,6 +65,8 @@ public class AbstractCompatibleStatServiceTest extends AbstractStatsServiceTest @Mock private DeviceState deviceState; @Mock + private DeviceInfo deviceInfo; + @Mock private MessageTranslator translator; @Mock private GetFeaturesOutput featuresOutput; @@ -95,9 +98,9 @@ public class AbstractCompatibleStatServiceTest extends AbstractStatsServiceTest Mockito.when(featuresOutput.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); Mockito.when(rqContextStack.createRequestContext()).thenReturn(rqContext); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); - Mockito.when(deviceState.getNodeId()).thenReturn(NODE_ID); - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); - Mockito.when(deviceState.getFeatures()).thenReturn(featuresOutput); + Mockito.when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo); + Mockito.when(deviceInfo.getNodeId()).thenReturn(NODE_ID); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); Mockito.doAnswer(closeRequestFutureAnswer).when(multiMsgCollector).endCollecting(); Mockito.doAnswer(closeRequestFutureAnswer).when(multiMsgCollector).endCollecting(Matchers.any(EventIdentifier.class)); @@ -140,7 +143,7 @@ public class AbstractCompatibleStatServiceTest extends AbstractStatsServiceTest .setFlowCount(new Counter32(12L)) .setPacketCount(new Counter64(BigInteger.valueOf(13L))) .build(); - Mockito.when(translator.translate(Matchers.any(MultipartReply.class), Matchers.eq(deviceState), Matchers.any())) + Mockito.when(translator.translate(Matchers.any(MultipartReply.class), Matchers.eq(deviceInfo), Matchers.any())) .thenReturn(aggregatedStats); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/OpendaylightFlowStatisticsServiceDelegateImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/OpendaylightFlowStatisticsServiceDelegateImplTest.java index 835e489101..2e08295b19 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/OpendaylightFlowStatisticsServiceDelegateImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/OpendaylightFlowStatisticsServiceDelegateImplTest.java @@ -95,7 +95,7 @@ public class OpendaylightFlowStatisticsServiceDelegateImplTest extends AbstractS .setNode(createNodeRef("unitProt:123")) .setTableId(new TableId((short) 1)); - Mockito.when(translator.translate(Matchers.any(MultipartReply.class), Matchers.eq(deviceState), Matchers.any())) + Mockito.when(translator.translate(Matchers.any(MultipartReply.class), Matchers.eq(deviceInfo), Matchers.any())) .thenReturn(new AggregatedFlowStatisticsBuilder() .setByteCount(new Counter64(BigInteger.valueOf(50L))) .setPacketCount(new Counter64(BigInteger.valueOf(51L))) diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/dedicated/StatisticsGatheringOnTheFlyServiceTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/dedicated/StatisticsGatheringOnTheFlyServiceTest.java index ab611e216a..8bb91a8249 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/dedicated/StatisticsGatheringOnTheFlyServiceTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/dedicated/StatisticsGatheringOnTheFlyServiceTest.java @@ -31,7 +31,7 @@ public class StatisticsGatheringOnTheFlyServiceTest extends ServiceMocking { protected void setup() { statisticsGatheringService = new StatisticsGatheringOnTheFlyService(mockedRequestContextStack, mockedDeviceContext); Mockito.doReturn(NODE_ID).when(mockedPrimConnectionContext).getNodeId(); - Mockito.when(mockedDeviceContext.getDeviceState().getNodeId()).thenReturn(NODE_ID); + Mockito.when(mockedDeviceInfo.getNodeId()).thenReturn(NODE_ID); } @Test diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/AbstractDirectStatisticsServiceTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/AbstractDirectStatisticsServiceTest.java index 7263b980c7..ac20355da0 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/AbstractDirectStatisticsServiceTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/AbstractDirectStatisticsServiceTest.java @@ -17,6 +17,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack; import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary; @@ -67,7 +68,7 @@ public abstract class AbstractDirectStatisticsServiceTest { @Mock protected DeviceState deviceState; @Mock - protected GetFeaturesOutput getFeaturesOutput; + protected DeviceInfo deviceInfo; protected NodeConnectorId nodeConnectorId; protected KeyedInstanceIdentifier nodeInstanceIdentifier; @@ -95,13 +96,11 @@ public abstract class AbstractDirectStatisticsServiceTest { when(deviceContext.getMultiMsgCollector(any())).thenReturn(multiMsgCollector); when(deviceContext.oook()).thenReturn(translatorLibrary); when(deviceContext.getDeviceState()).thenReturn(deviceState); - when(deviceContext.getDeviceState()).thenReturn(deviceState); - when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodeInstanceIdentifier); - when(deviceState.getNodeId()).thenReturn(new NodeId(NODE_ID)); - when(deviceState.getVersion()).thenReturn(OF_VERSION); - when(deviceState.getFeatures()).thenReturn(getFeaturesOutput); - when(getFeaturesOutput.getVersion()).thenReturn(OF_VERSION); - when(getFeaturesOutput.getDatapathId()).thenReturn(DATAPATH_ID); + when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo); + when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodeInstanceIdentifier); + when(deviceInfo.getNodeId()).thenReturn(new NodeId(NODE_ID)); + when(deviceInfo.getVersion()).thenReturn(OF_VERSION); + when(deviceInfo.getDatapathId()).thenReturn(DATAPATH_ID); when(connectionContext.getFeatures()).thenReturn(features); when(connectionContext.getOutboundQueueProvider()).thenReturn(outboundQueueProvider); when(features.getVersion()).thenReturn(OF_VERSION); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslatorTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslatorTest.java index bac6d1ebc5..83eae57e0f 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslatorTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/AggregatedFlowStatisticsTranslatorTest.java @@ -15,6 +15,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.get.aggregate.flow.statistics.from.flow.table._for.given.match.output.AggregatedFlowStatistics; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder; @@ -30,6 +31,8 @@ public class AggregatedFlowStatisticsTranslatorTest { private AggregatedFlowStatisticsTranslator translator; @Mock private DeviceState deviceState; + @Mock + private DeviceInfo deviceInfo; @Before public void setUp() throws Exception { @@ -47,7 +50,7 @@ public class AggregatedFlowStatisticsTranslatorTest { MultipartReplyMessageBuilder mpInputBld = new MultipartReplyMessageBuilder() .setMultipartReplyBody(inputBld.build()); - final AggregatedFlowStatistics statistics = translator.translate(mpInputBld.build(), deviceState, null); + final AggregatedFlowStatistics statistics = translator.translate(mpInputBld.build(), deviceInfo, null); Assert.assertEquals(aggregateStatsValueBld.getByteCount(), statistics.getByteCount().getValue()); Assert.assertEquals(aggregateStatsValueBld.getFlowCount(), statistics.getFlowCount().getValue()); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslatorTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslatorTest.java index 823a5b1465..5fa15e094b 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslatorTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/FlowRemovedTranslatorTest.java @@ -20,6 +20,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; @@ -52,6 +53,9 @@ public class FlowRemovedTranslatorTest { @Mock private DeviceState deviceState; + @Mock + private DeviceInfo deviceInfo; + @Mock private GetFeaturesOutput features; @@ -69,15 +73,14 @@ public class FlowRemovedTranslatorTest { translatorV10 = new FlowRemovedV10Translator(); when(deviceContext.getDeviceState()).thenReturn(deviceState); - when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodeId); - when(deviceState.getFeatures()).thenReturn(features); + when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodeId); when(features.getDatapathId()).thenReturn(BigInteger.TEN); } @Test public void testTranslate() throws Exception { org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemoved flowRemovedMessage = buildMessage(false); - final FlowRemoved flowRemoved = translator.translate(flowRemovedMessage, deviceState, null); + final FlowRemoved flowRemoved = translator.translate(flowRemovedMessage, deviceInfo, null); assertEquals(flowRemovedMessage.getCookie(), flowRemoved.getCookie().getValue()); assertEquals(flowRemovedMessage.getPriority(), flowRemoved.getPriority()); @@ -87,7 +90,7 @@ public class FlowRemovedTranslatorTest { @Test public void testTranslateV10() throws Exception { org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowRemoved flowRemovedMessage = buildMessage(true); - final FlowRemoved flowRemoved = translatorV10.translate(flowRemovedMessage, deviceState, null); + final FlowRemoved flowRemoved = translatorV10.translate(flowRemovedMessage, deviceInfo, null); assertEquals(flowRemovedMessage.getCookie(), flowRemoved.getCookie().getValue()); assertEquals(flowRemovedMessage.getPriority(), flowRemoved.getPriority()); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslatorTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslatorTest.java index f6358fad05..18e244e2f8 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslatorTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PacketReceivedTranslatorTest.java @@ -16,6 +16,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -63,6 +64,8 @@ public class PacketReceivedTranslatorTest { @Mock DeviceContext deviceContext; @Mock + DeviceInfo deviceInfo; + @Mock List phyPorts; @Mock PhyPort phyPort; @@ -84,8 +87,8 @@ public class PacketReceivedTranslatorTest { Mockito.when(connectionContext.getFeatures()).thenReturn(featuresReply); Mockito.when(featuresReply.getDatapathId()).thenReturn(BigInteger.TEN); Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); - Mockito.when(deviceState.getFeatures()).thenReturn(getFeaturesOutput); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + Mockito.when(deviceInfo.getDatapathId()).thenReturn(BigInteger.TEN); Mockito.when(getFeaturesOutput.getDatapathId()).thenReturn(BigInteger.TEN); Mockito.when(getFeaturesOutput.getPhyPort()).thenReturn(phyPorts); Mockito.when(phyPort.getPortNo()).thenReturn(PORT_NO_DS); @@ -98,9 +101,9 @@ public class PacketReceivedTranslatorTest { .child(Node.class, new NodeKey(new NodeId("openflow:10"))); final PacketReceivedTranslator packetReceivedTranslator = new PacketReceivedTranslator(); final PacketInMessage packetInMessage = createPacketInMessage(DATA.getBytes(), PORT_NO); - Mockito.when(deviceState.getNodeInstanceIdentifier()).thenReturn(nodePath); + Mockito.when(deviceInfo.getNodeInstanceIdentifier()).thenReturn(nodePath); - final PacketReceived packetReceived = packetReceivedTranslator.translate(packetInMessage, deviceState, null); + final PacketReceived packetReceived = packetReceivedTranslator.translate(packetInMessage, deviceInfo, null); Assert.assertArrayEquals(packetInMessage.getData(), packetReceived.getPayload()); Assert.assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.SendToController", diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PortUpdateTranslatorTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PortUpdateTranslatorTest.java index c4a1f2a285..5500dea5ee 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PortUpdateTranslatorTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/translator/PortUpdateTranslatorTest.java @@ -17,6 +17,7 @@ import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector; @@ -40,6 +41,8 @@ public class PortUpdateTranslatorTest { private DeviceContext deviceContext; @Mock private DeviceState deviceState; + @Mock + private DeviceInfo deviceInfo; private org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortConfig portConfig; private StateBuilder portStateBld; @@ -47,7 +50,7 @@ public class PortUpdateTranslatorTest { @Before public void setUp() throws Exception { - Mockito.when(deviceContext.getDeviceState()).thenReturn(deviceState); + Mockito.when(deviceContext.getDeviceInfo()).thenReturn(deviceInfo); portUpdateTranslator = new PortUpdateTranslator(); portStateBld = new StateBuilder().setLive(true); @@ -59,13 +62,13 @@ public class PortUpdateTranslatorTest { @Test public void testTranslate_13() throws Exception { - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures portFeatures = org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures .getDefaultInstance("hundredGbFd"); - final FlowCapableNodeConnector nodeConnector = portUpdateTranslator.translate(portBld.build(), deviceState, null); + final FlowCapableNodeConnector nodeConnector = portUpdateTranslator.translate(portBld.build(), deviceInfo, null); commonCheck(nodeConnector); @@ -88,14 +91,14 @@ public class PortUpdateTranslatorTest { @Test public void testTranslate_10() throws Exception { - Mockito.when(deviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); + Mockito.when(deviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures portFeatures = new org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortFeatures( null, null, null, false, false, true, null, null, null, false, false, null, null, null, null, null ); - final FlowCapableNodeConnector nodeConnector = portUpdateTranslator.translate(portBld.build(), deviceState, null); + final FlowCapableNodeConnector nodeConnector = portUpdateTranslator.translate(portBld.build(), deviceInfo, null); commonCheck(nodeConnector); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java index e20beab46b..70bd8cd29f 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java @@ -46,6 +46,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandle import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; @@ -130,6 +131,8 @@ public class DeviceInitializationUtilsTest { @Mock private DeviceContextImpl mockedDeviceContext; @Mock + private DeviceInfo mockedDeviceInfo; + @Mock private DeviceInitializationUtils deviceInitializationUtils; @Before @@ -140,6 +143,7 @@ public class DeviceInitializationUtilsTest { when(mockConnectionContext.getFeatures()).thenReturn(mockFeatures); when(mockConnectionContext.getConnectionAdapter()).thenReturn(mockedConnectionAdapter); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockConnectionContext); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); final Capabilities capabilitiesV13 = mock(Capabilities.class); final CapabilitiesV10 capabilitiesV10 = mock(CapabilitiesV10.class); @@ -156,10 +160,9 @@ public class DeviceInitializationUtilsTest { GetFeaturesOutput mockedFeatures = mock(GetFeaturesOutput.class); when(mockedFeatures.getTables()).thenReturn((short) 2); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeatures); - when(mockedDeviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); + when(mockedDeviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); when(mockedDeviceContext.getMultiMsgCollector(Mockito.any(RequestContext.class))).thenReturn(msgCollector); when(mockedDeviceContext.oook()).thenReturn(tLibrary); @@ -179,9 +182,9 @@ public class DeviceInitializationUtilsTest { final GetFeaturesOutput mockedFeatures = mock(GetFeaturesOutput.class); when(mockedFeatures.getTables()).thenReturn((short) 2); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeatures); + when(mockConnectionContext.getFeatures()).thenReturn(mockedFeatures); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); final RpcResult> mockedRpcResult = mock(RpcResult.class); @@ -280,7 +283,7 @@ public class DeviceInitializationUtilsTest { when(mockedPrimaryConnectionContext.getFeatures()).thenReturn(mockedFeatures); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedPrimaryConnectionContext); final DeviceState mockedDeviceState = mock(DeviceState.class); - when(mockedDeviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); + when(mockedDeviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); final MessageTranslator mockedTranslator = mock(MessageTranslator.class); when(translatorLibrary.lookupTranslator(any(TranslatorKey.class))).thenReturn(mockedTranslator); diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistrationUtilsTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistrationUtilsTest.java index cf0149cd79..b6f36a1974 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistrationUtilsTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/MdSalRegistrationUtilsTest.java @@ -22,6 +22,7 @@ import org.junit.Test; import org.mockito.Matchers; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FeaturesReply; @@ -47,15 +48,18 @@ public class MdSalRegistrationUtilsTest { final DeviceState mockedDeviceState = mock(DeviceState.class); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); + final DeviceInfo mockedDeviceInfo = mock(DeviceInfo.class); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); + final FeaturesReply mockedFeatures = mock(FeaturesReply.class); when(mockedConnectionContext.getFeatures()).thenReturn(mockedFeatures); final GetFeaturesOutput mockedFeaturesOutput = mock(GetFeaturesOutput.class); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeaturesOutput); final BigInteger mockedDataPathId = mock(BigInteger.class); when(mockedFeatures.getDatapathId()).thenReturn(mockedDataPathId); when(mockedFeaturesOutput.getDatapathId()).thenReturn(mockedDataPathId); + when(mockedDeviceInfo.getDatapathId()).thenReturn(mockedDataPathId); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedConnectionContext); MdSalRegistrationUtils.registerMasterServices(mockedRpcContext, mockedDeviceContext, OfpRole.BECOMEMASTER); -- 2.36.6