From 108fe9ce2266372bbbb431c25d2e4d19625e97da Mon Sep 17 00:00:00 2001 From: Anil Vishnoi Date: Thu, 27 Nov 2014 02:58:41 +0530 Subject: [PATCH] Bug 2435 - Controller/MD-SAL throwing ModifiedNodeDoesNotExistException exception when statistics manager augment queue statistics to the node connector. Exception was thrown because parent (queue) container was not present when statistics manager tried to augment statistics. Fixed the issue by creating empty queue container and 'merge'ing it to the node connector before augmenting the statistics. Signed-off-by: Anil Vishnoi Change-Id: I7d68f3e177ccf62c7adf154e655226450a74296c --- .../md/statistics/manager/impl/StatListenCommitQueue.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java index 07e167d1e4..f5c5689b7b 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/StatListenCommitQueue.java @@ -26,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Fl import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionAware; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId; 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.inventory.rev130819.NodeId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; @@ -167,11 +168,13 @@ public class StatListenCommitQueue extends StatAbstractListenCommit queueStatIdent = nodeIdent + final InstanceIdentifier queueIdent = nodeIdent .child(NodeConnector.class, new NodeConnectorKey(queueStat.getNodeConnectorId())) .augmentation(FlowCapableNodeConnector.class) - .child(Queue.class, qKey).augmentation(FlowCapableNodeConnectorQueueStatisticsData.class); + .child(Queue.class, qKey); + final InstanceIdentifier queueStatIdent = queueIdent.augmentation(FlowCapableNodeConnectorQueueStatisticsData.class); existQueueKeys.remove(qKey); + tx.merge(LogicalDatastoreType.OPERATIONAL, queueIdent, new QueueBuilder().setKey(qKey).build()); tx.put(LogicalDatastoreType.OPERATIONAL, queueStatIdent, statBuild.build()); } } -- 2.36.6