import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.openflowplugin.applications.statistics.manager.StatNodeRegistration;
import org.opendaylight.openflowplugin.applications.statistics.manager.StatRpcMsgManager.TransactionCacheContainer;
import org.opendaylight.openflowplugin.applications.statistics.manager.StatisticsManager;
import org.opendaylight.openflowplugin.applications.statistics.manager.StatisticsManager.StatDataStoreOperation;
private static final Logger LOG = LoggerFactory.getLogger(StatListenCommitQueue.class);
public StatListenCommitQueue(final StatisticsManager manager, final DataBroker db,
- final NotificationProviderService nps) {
- super(manager, db, nps, Queue.class);
+ final NotificationProviderService nps,
+ final StatNodeRegistration nrm) {
+ super(manager, db, nps, Queue.class,nrm);
}
@Override
.augmentation(FlowCapableNodeConnector.class).child(Queue.class);
}
+ @Override
+ protected void processDataChange(Collection<DataTreeModification<Queue>> changes) {
+ //NO-OP
+ }
+
@Override
public void onQueueStatisticsUpdate(final QueueStatisticsUpdate notification) {
final TransactionId transId = notification.getTransactionId();
if ( ! isTransactionCacheContainerValid(txContainer)) {
return;
}
+
+ if(!nodeRegistrationManager.isFlowCapableNodeOwner(nodeId)) { return; }
+
/* Prepare List actual Queues and not updated Queues will be removed */
final List<NodeConnector> existConnectors = fNode.get().getNodeConnector() != null
? fNode.get().getNodeConnector() : Collections.<NodeConnector> emptyList();
final Map<QueueKey, NodeConnectorKey> existQueueKeys = new HashMap<>();
for (final NodeConnector connect : existConnectors) {
- final List<Queue> listQueues = connect.getAugmentation(FlowCapableNodeConnector.class).getQueue();
- if (listQueues != null) {
- for (final Queue queue : listQueues) {
- existQueueKeys.put(queue.getKey(), connect.getKey());
+ if(connect.getAugmentation(FlowCapableNodeConnector.class) != null){
+ final List<Queue> listQueues = connect.getAugmentation(FlowCapableNodeConnector.class).getQueue();
+ if (listQueues != null) {
+ for (final Queue queue : listQueues) {
+ existQueueKeys.put(queue.getKey(), connect.getKey());
+ }
}
}
}