X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2FNetconfDeviceTwoPhaseCommitTransaction.java;h=6df34cdb9efcb8093ff9e6dab3e535a28aaad1be;hp=216a27aaaa0afb39409d196b6ae5067a86ff23d8;hb=324fc0781d127b81bc3be0728e5780778be618ae;hpb=23ab6602499bbc5b1ab01216df5893607d54a306 diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceTwoPhaseCommitTransaction.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceTwoPhaseCommitTransaction.java index 216a27aaaa..6df34cdb9e 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceTwoPhaseCommitTransaction.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceTwoPhaseCommitTransaction.java @@ -1,6 +1,8 @@ package org.opendaylight.controller.sal.connect.netconf; +import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -90,19 +92,26 @@ public class NetconfDeviceTwoPhaseCommitTransaction implements DataCommitTransac for (PathArgument arg : reversed) { CompositeNodeBuilder builder = ImmutableCompositeNode.builder(); builder.setQName(arg.getNodeType()); - + Map predicates = Collections.emptyMap(); if (arg instanceof NodeIdentifierWithPredicates) { - for (Entry entry : ((NodeIdentifierWithPredicates) arg).getKeyValues().entrySet()) { - builder.addLeaf(entry.getKey(), entry.getValue()); - } + predicates = ((NodeIdentifierWithPredicates) arg).getKeyValues(); + } + for (Entry entry : predicates.entrySet()) { + builder.addLeaf(entry.getKey(), entry.getValue()); } + if (isLast) { if (action.isPresent()) { builder.setAttribute(NETCONF_ACTION_QNAME, action.get()); } if (lastChildOverride.isPresent()) { List> children = lastChildOverride.get().getChildren(); - builder.addAll(children); + for(Node child : children) { + if(!predicates.containsKey(child.getKey())) { + builder.add(child); + } + } + } } else { builder.add(previous);