Bug 1484 - StatisticManager performance improvement refactoring
[controller.git] / opendaylight / md-sal / statistics-manager / src / main / java / org / opendaylight / controller / md / statistics / manager / QueueStatsTracker.java
diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/QueueStatsTracker.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/QueueStatsTracker.java
deleted file mode 100644 (file)
index 4a58970..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright IBM Corporation, 2013.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.statistics.manager;
-
-import java.util.Map.Entry;
-
-import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
-import org.opendaylight.controller.sal.binding.api.data.DataBrokerService;
-import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.Queue;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.QueueBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.queues.QueueKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.queue.rev130925.QueueId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.FlowCapableNodeConnectorQueueStatisticsData;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.FlowCapableNodeConnectorQueueStatisticsDataBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPortsInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPortInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.OpendaylightQueueStatisticsService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.flow.capable.node.connector.queue.statistics.FlowCapableNodeConnectorQueueStatisticsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMap;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class QueueStatsTracker extends AbstractListeningStatsTracker<QueueIdAndStatisticsMap, QueueStatsEntry> {
-    private static final Logger logger = LoggerFactory.getLogger(QueueStatsTracker.class);
-    private final OpendaylightQueueStatisticsService queueStatsService;
-
-    QueueStatsTracker(OpendaylightQueueStatisticsService queueStatsService, final FlowCapableContext context) {
-        super(context);
-        this.queueStatsService = queueStatsService;
-    }
-
-    @Override
-    protected void cleanupSingleStat(DataModificationTransaction trans, QueueStatsEntry item) {
-        InstanceIdentifier<?> queueRef
-                            = getNodeIdentifierBuilder().child(NodeConnector.class, new NodeConnectorKey(item.getNodeConnectorId()))
-                                                .augmentation(FlowCapableNodeConnector.class)
-                                                .child(Queue.class, new QueueKey(item.getQueueId()))
-                                                .augmentation(FlowCapableNodeConnectorQueueStatisticsData.class).build();
-        trans.removeOperationalData(queueRef);
-    }
-
-    @Override
-    protected QueueStatsEntry updateSingleStat(DataModificationTransaction trans, QueueIdAndStatisticsMap item) {
-
-        QueueStatsEntry queueEntry = new QueueStatsEntry(item.getNodeConnectorId(), item.getQueueId());
-
-        FlowCapableNodeConnectorQueueStatisticsDataBuilder queueStatisticsDataBuilder = new FlowCapableNodeConnectorQueueStatisticsDataBuilder();
-
-        FlowCapableNodeConnectorQueueStatisticsBuilder queueStatisticsBuilder = new FlowCapableNodeConnectorQueueStatisticsBuilder();
-
-        queueStatisticsBuilder.fieldsFrom(item);
-
-        queueStatisticsDataBuilder.setFlowCapableNodeConnectorQueueStatistics(queueStatisticsBuilder.build());
-
-        InstanceIdentifier<Queue> queueRef = getNodeIdentifierBuilder().child(NodeConnector.class, new NodeConnectorKey(item.getNodeConnectorId()))
-                                    .augmentation(FlowCapableNodeConnector.class)
-                                    .child(Queue.class, new QueueKey(item.getQueueId())).toInstance();
-
-        QueueBuilder queueBuilder = new QueueBuilder();
-        FlowCapableNodeConnectorQueueStatisticsData qsd = queueStatisticsDataBuilder.build();
-        queueBuilder.addAugmentation(FlowCapableNodeConnectorQueueStatisticsData.class, qsd);
-        queueBuilder.setKey(new QueueKey(item.getQueueId()));
-
-        logger.debug("Augmenting queue statistics {} of queue {} to port {}",
-                                    qsd,
-                                    item.getQueueId(),
-                                    item.getNodeConnectorId());
-
-        trans.putOperationalData(queueRef, queueBuilder.build());
-        return queueEntry;
-    }
-
-    @Override
-    public void request() {
-        if (queueStatsService != null) {
-            GetAllQueuesStatisticsFromAllPortsInputBuilder input = new GetAllQueuesStatisticsFromAllPortsInputBuilder();
-            input.setNode(getNodeRef());
-
-            requestHelper(queueStatsService.getAllQueuesStatisticsFromAllPorts(input.build()));
-        }
-    }
-
-    public void request(NodeConnectorId nodeConnectorId, QueueId queueId) {
-        if (queueStatsService != null) {
-            GetQueueStatisticsFromGivenPortInputBuilder input = new GetQueueStatisticsFromGivenPortInputBuilder();
-
-            input.setNode(getNodeRef());
-            input.setNodeConnectorId(nodeConnectorId);
-            input.setQueueId(queueId);
-
-            requestHelper(queueStatsService.getQueueStatisticsFromGivenPort(input.build()));
-        }
-    }
-
-    @Override
-    public void onDataChanged(DataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-        for (Entry<InstanceIdentifier<?>, DataObject> e : change.getCreatedConfigurationData().entrySet()) {
-            if (Queue.class.equals(e.getKey().getTargetType())) {
-                final Queue queue = (Queue) e.getValue();
-                final NodeConnectorKey key = e.getKey().firstKeyOf(NodeConnector.class, NodeConnectorKey.class);
-                logger.debug("Key {} triggered request for connector {} queue {}", key.getId(), queue.getQueueId());
-                request(key.getId(), queue.getQueueId());
-            } else {
-                logger.debug("Ignoring key {}", e.getKey());
-            }
-        }
-
-        final DataModificationTransaction trans = startTransaction();
-        for (InstanceIdentifier<?> key : change.getRemovedConfigurationData()) {
-            if (Queue.class.equals(key.getTargetType())) {
-                @SuppressWarnings("unchecked")
-                final InstanceIdentifier<Queue> queue = (InstanceIdentifier<Queue>)key;
-                final InstanceIdentifier<?> del = queue
-                        .augmentation(FlowCapableNodeConnectorQueueStatisticsData.class);
-                logger.debug("Key {} triggered remove of augmentation {}", key, del);
-
-                trans.removeOperationalData(del);
-            }
-        }
-        trans.commit();
-    }
-
-    @Override
-    protected InstanceIdentifier<?> listenPath() {
-        return getNodeIdentifierBuilder().child(NodeConnector.class)
-                .augmentation(FlowCapableNodeConnector.class).child(Queue.class).build();
-    }
-
-    @Override
-    protected String statName() {
-        return "Queue";
-    }
-
-    @Override
-    public void start(final DataBrokerService dbs) {
-        if (queueStatsService == null) {
-            logger.debug("No Queue Statistics service, not subscribing to queues on node {}", getNodeIdentifier());
-            return;
-        }
-
-        super.start(dbs);
-    }
-
-    @Override
-    protected QueueStatsEntry createInvariantKey(QueueStatsEntry item) {
-        // No invariant data exist in the group description stats.
-        return item;
-    }
-}