Bug 1484 - StatisticManager performance improvement refactoring
[controller.git] / opendaylight / md-sal / statistics-manager / src / main / java / org / opendaylight / controller / md / statistics / manager / GroupDescStatsTracker.java
diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/GroupDescStatsTracker.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/GroupDescStatsTracker.java
deleted file mode 100644 (file)
index 11c6d4c..0000000
+++ /dev/null
@@ -1,123 +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 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.FlowCapableNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.NodeGroupDescStats;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.NodeGroupDescStatsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.group.desc.GroupDescBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.GroupKey;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-final class GroupDescStatsTracker extends AbstractListeningStatsTracker<GroupDescStats, GroupDescStats> {
-    private static final Logger logger = LoggerFactory.getLogger(GroupDescStatsTracker.class);
-    private final OpendaylightGroupStatisticsService groupStatsService;
-
-    public GroupDescStatsTracker(OpendaylightGroupStatisticsService groupStatsService, final FlowCapableContext context) {
-        super(context);
-        this.groupStatsService = groupStatsService;
-    }
-
-    @Override
-    protected GroupDescStats updateSingleStat(DataModificationTransaction trans, GroupDescStats item) {
-        GroupBuilder groupBuilder = new GroupBuilder();
-        GroupKey groupKey = new GroupKey(item.getGroupId());
-        groupBuilder.setKey(groupKey);
-
-        InstanceIdentifier<Group> groupRef = getNodeIdentifierBuilder()
-                .augmentation(FlowCapableNode.class).child(Group.class,groupKey).build();
-
-        NodeGroupDescStatsBuilder groupDesc= new NodeGroupDescStatsBuilder();
-        groupDesc.setGroupDesc(new GroupDescBuilder(item).build());
-
-        //Update augmented data
-        groupBuilder.addAugmentation(NodeGroupDescStats.class, groupDesc.build());
-
-        trans.putOperationalData(groupRef, groupBuilder.build());
-        return item;
-    }
-
-    @Override
-    protected void cleanupSingleStat(DataModificationTransaction trans, GroupDescStats item) {
-        InstanceIdentifier<NodeGroupDescStats> groupRef = getNodeIdentifierBuilder().augmentation(FlowCapableNode.class)
-                .child(Group.class, new GroupKey(item.getGroupId())).augmentation(NodeGroupDescStats.class).build();
-        trans.removeOperationalData(groupRef);
-    }
-
-    @Override
-    protected InstanceIdentifier<?> listenPath() {
-        return getNodeIdentifierBuilder().augmentation(FlowCapableNode.class).child(Group.class).build();
-    }
-
-    @Override
-    protected String statName() {
-        return "Group Descriptor";
-    }
-
-    @Override
-    public void request() {
-        if (groupStatsService != null) {
-            final GetGroupDescriptionInputBuilder input = new GetGroupDescriptionInputBuilder();
-            input.setNode(getNodeRef());
-
-            requestHelper(groupStatsService.getGroupDescription(input.build()));
-        }
-    }
-
-    @Override
-    public void onDataChanged(DataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-        for (InstanceIdentifier<?> key : change.getCreatedConfigurationData().keySet()) {
-            if (Group.class.equals(key.getTargetType())) {
-                logger.debug("Key {} triggered request", key);
-                request();
-            } else {
-                logger.debug("Ignoring key {}", key);
-            }
-        }
-
-        final DataModificationTransaction trans = startTransaction();
-        for (InstanceIdentifier<?> key : change.getRemovedConfigurationData()) {
-            if (Group.class.equals(key.getTargetType())) {
-                @SuppressWarnings("unchecked")
-                InstanceIdentifier<Group> group = (InstanceIdentifier<Group>)key;
-                InstanceIdentifier<?> del = group.augmentation(NodeGroupDescStats.class);
-                logger.debug("Key {} triggered remove of augmentation {}", key, del);
-
-                trans.removeOperationalData(del);
-            }
-        }
-        trans.commit();
-    }
-
-    @Override
-    public void start(final DataBrokerService dbs) {
-        if (groupStatsService == null) {
-            logger.debug("No Group Statistics service, not subscribing to groups on node {}", getNodeIdentifier());
-            return;
-        }
-
-        super.start(dbs);
-    }
-
-    @Override
-    protected GroupDescStats createInvariantKey(GroupDescStats item) {
-        // No invariant data exist in the group description stats.
-        return item;
-    }
-}