From 3f17b004c2a0efb10214e0943fbaee33e9496d83 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 1 Jan 2023 15:20:30 +0100 Subject: [PATCH] Rename netconf.api.ModifyAction to EffectiveOperation This enum has a rather misleading name, as it really is talking about operations in two contexts -- either an actual operation or the set default operation. Combined this amounts to the effective operation on a DataTree. Let us call it EffectiveOperation, as it ends up being the combination of default-operation and a potentially-absent explicit operation. JIRA: NETCONF-932 Change-Id: I1dcf0ffd54fdcf7c7cc853ef595e1a04e69a3147 Signed-off-by: Robert Varga --- .../mdsal/connector/ops/DataTreeChange.java | 8 ++--- .../mdsal/connector/ops/EditConfig.java | 9 +++--- ...ingNormalizedNodeMetadataStreamWriter.java | 14 ++++----- ...ifyAction.java => EffectiveOperation.java} | 12 ++++---- .../dom/api/NetconfDataTreeService.java | 10 +++---- .../impl/ProxyNetconfDataTreeService.java | 8 ++--- .../ActorProxyNetconfServiceFacade.java | 8 ++--- .../FailedProxyNetconfServiceFacade.java | 8 ++--- .../impl/netconf/ProxyNetconfService.java | 8 ++--- .../netconf/CreateEditConfigRequest.java | 4 +-- .../messages/netconf/EditConfigRequest.java | 8 ++--- .../netconf/MergeEditConfigRequest.java | 4 +-- .../netconf/ReplaceEditConfigRequest.java | 4 +-- .../sal/AbstractNetconfDataTreeService.java | 29 ++++++++++--------- .../netconf/sal/tx/AbstractWriteTx.java | 10 +++---- .../netconf/sal/tx/WriteCandidateTx.java | 6 ++-- .../netconf/sal/tx/WriteRunningTx.java | 8 ++--- .../connect/netconf/util/NetconfBaseOps.java | 12 ++++---- .../util/NetconfMessageTransformUtil.java | 10 +++---- .../util/NetconfRpcStructureTransformer.java | 4 +-- .../netconf/util/RpcStructureTransformer.java | 4 +-- .../SchemalessRpcStructureTransformer.java | 6 ++-- .../netconf/util/NetconfBaseOpsTest.java | 13 +++++---- ...SchemalessRpcStructureTransformerTest.java | 15 +++++----- 24 files changed, 114 insertions(+), 108 deletions(-) rename netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/{ModifyAction.java => EffectiveOperation.java} (90%) diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DataTreeChange.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DataTreeChange.java index 4d811151ec..9118257c9a 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DataTreeChange.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/DataTreeChange.java @@ -13,7 +13,7 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList.Builder; import java.util.Deque; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -21,9 +21,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; public final class DataTreeChange { private final NormalizedNode changeRoot; private final YangInstanceIdentifier path; - private final ModifyAction action; + private final EffectiveOperation action; - DataTreeChange(final NormalizedNode changeRoot, final ModifyAction action, final Deque path) { + DataTreeChange(final NormalizedNode changeRoot, final EffectiveOperation action, final Deque path) { this.changeRoot = requireNonNull(changeRoot); this.action = requireNonNull(action); @@ -36,7 +36,7 @@ public final class DataTreeChange { return changeRoot; } - public ModifyAction getAction() { + public EffectiveOperation getAction() { return action; } diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java index 8d43838c56..fddd931c71 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/EditConfig.java @@ -15,7 +15,7 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteOperations; import org.opendaylight.netconf.api.DocumentedException; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; @@ -157,11 +157,12 @@ public final class EditConfig extends AbstractEdit { } } - private static ModifyAction getDefaultOperation(final XmlElement operationElement) throws DocumentedException { + private static EffectiveOperation getDefaultOperation(final XmlElement operationElement) + throws DocumentedException { final var elementsByTagName = getElementsByTagName(operationElement, DEFAULT_OPERATION); return switch (elementsByTagName.getLength()) { - case 0 -> ModifyAction.MERGE; - case 1 -> ModifyAction.ofXmlValue(elementsByTagName.item(0).getTextContent()); + case 0 -> EffectiveOperation.MERGE; + case 1 -> EffectiveOperation.ofXmlValue(elementsByTagName.item(0).getTextContent()); default -> throw new DocumentedException("Multiple " + DEFAULT_OPERATION + " elements", ErrorType.RPC, ErrorTag.UNKNOWN_ATTRIBUTE, ErrorSeverity.ERROR); }; diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/SplittingNormalizedNodeMetadataStreamWriter.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/SplittingNormalizedNodeMetadataStreamWriter.java index 61bbbda8df..6fa2f6e34f 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/SplittingNormalizedNodeMetadataStreamWriter.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/ops/SplittingNormalizedNodeMetadataStreamWriter.java @@ -21,7 +21,7 @@ import java.util.Deque; import java.util.List; import javax.xml.transform.dom.DOMSource; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.EditConfigInput; import org.opendaylight.yangtools.rfc7952.data.api.StreamWriterMetadataExtension; @@ -51,19 +51,19 @@ final class SplittingNormalizedNodeMetadataStreamWriter implements NormalizedNod // Path of the node we are currently in private final Deque currentPath = new ArrayDeque<>(); // Stack of parent changes. - private final Deque actions = new ArrayDeque<>(); + private final Deque actions = new ArrayDeque<>(); // Stack of stashed writers which have been split out - private final ModifyAction defaultAction; + private final EffectiveOperation defaultAction; // Backing writer private final ComponentNormalizedNodeStreamWriter writer; // Current action, populated to default action on entry - private ModifyAction currentAction; + private EffectiveOperation currentAction; // Tracks the number of delete operations in actions private int deleteDepth; - SplittingNormalizedNodeMetadataStreamWriter(final ModifyAction defaultAction) { + SplittingNormalizedNodeMetadataStreamWriter(final EffectiveOperation defaultAction) { this.defaultAction = requireNonNull(defaultAction); writer = new ComponentNormalizedNodeStreamWriter(result); } @@ -81,7 +81,7 @@ final class SplittingNormalizedNodeMetadataStreamWriter implements NormalizedNod public void metadata(final ImmutableMap metadata) throws IOException { final var operation = metadata.get(OPERATION_ATTRIBUTE); if (operation instanceof String str) { - currentAction = ModifyAction.ofXmlValue(str); + currentAction = EffectiveOperation.ofXmlValue(str); } else if (operation != null) { throw new IllegalStateException("Unexpected operation attribute value " + operation); } @@ -225,7 +225,7 @@ final class SplittingNormalizedNodeMetadataStreamWriter implements NormalizedNod } private boolean atRemoval() { - return currentAction == ModifyAction.DELETE || currentAction == ModifyAction.REMOVE; + return currentAction == EffectiveOperation.DELETE || currentAction == EffectiveOperation.REMOVE; } private void popPath() { diff --git a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/ModifyAction.java b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/EffectiveOperation.java similarity index 90% rename from netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/ModifyAction.java rename to netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/EffectiveOperation.java index ca8bc1d340..7a5d2e226c 100644 --- a/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/ModifyAction.java +++ b/netconf/netconf-api/src/main/java/org/opendaylight/netconf/api/EffectiveOperation.java @@ -20,7 +20,7 @@ import org.eclipse.jdt.annotation.NonNull; * This concept is uncharacteristically bound to two separate semantics, but for a good reason: at the end of the day we * want to know what the effective operation is. */ -public enum ModifyAction { +public enum EffectiveOperation { // operation and default-operation MERGE("merge", true, true), REPLACE("replace", true, true), @@ -36,21 +36,21 @@ public enum ModifyAction { private final boolean isDefaultOperation; private final boolean isOperation; - ModifyAction(final String xmlValue, final boolean isOperation, final boolean isDefaultOperation) { + EffectiveOperation(final String xmlValue, final boolean isOperation, final boolean isDefaultOperation) { this.xmlValue = requireNonNull(xmlValue); this.isDefaultOperation = isDefaultOperation; this.isOperation = isOperation; } /** - * Return the {@link ModifyAction} corresponding to a {@link #xmlValue}. + * Return the {@link EffectiveOperation} corresponding to a {@link #xmlValue}. * * @param xmlValue XML attribute or element value - * @return A {@link ModifyAction} + * @return A {@link EffectiveOperation} * @throws NullPointerException if {@code xmlValue} is {@code null} * @throws IllegalArgumentException if {@code xmlValue} is not recognized */ - public static @NonNull ModifyAction ofXmlValue(final String xmlValue) { + public static @NonNull EffectiveOperation ofXmlValue(final String xmlValue) { return switch (xmlValue) { case "merge" -> MERGE; case "replace" -> REPLACE; @@ -63,7 +63,7 @@ public enum ModifyAction { } /** - * Return an XML string literal corresponding to this {@link ModifyAction}. + * Return an XML string literal corresponding to this {@link EffectiveOperation}. * * @return An XML string literal */ diff --git a/netconf/netconf-dom-api/src/main/java/org/opendaylight/netconf/dom/api/NetconfDataTreeService.java b/netconf/netconf-dom-api/src/main/java/org/opendaylight/netconf/dom/api/NetconfDataTreeService.java index 67659745ab..9dcabb719e 100644 --- a/netconf/netconf-dom-api/src/main/java/org/opendaylight/netconf/dom/api/NetconfDataTreeService.java +++ b/netconf/netconf-dom-api/src/main/java/org/opendaylight/netconf/dom/api/NetconfDataTreeService.java @@ -15,7 +15,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.api.DOMService; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -83,7 +83,7 @@ public interface NetconfDataTreeService extends DOMService { * @return result of <get-config> operation */ ListenableFuture> getConfig(YangInstanceIdentifier path, - List fields); + List fields); /** * The <edit-config> operation with "merge" attribute. @@ -93,7 +93,7 @@ public interface NetconfDataTreeService extends DOMService { * @return result of <edit-config> operation */ ListenableFuture merge(LogicalDatastoreType store, YangInstanceIdentifier path, - NormalizedNode data, Optional defaultOperation); + NormalizedNode data, Optional defaultOperation); /** * The <edit-config> operation with "replace" attribute. @@ -103,7 +103,7 @@ public interface NetconfDataTreeService extends DOMService { * @return result of <edit-config> operation */ ListenableFuture replace(LogicalDatastoreType store, YangInstanceIdentifier path, - NormalizedNode data, Optional defaultOperation); + NormalizedNode data, Optional defaultOperation); /** * The <edit-config> operation with "create" attribute. @@ -113,7 +113,7 @@ public interface NetconfDataTreeService extends DOMService { * @return result of <edit-config> operation */ ListenableFuture create(LogicalDatastoreType store, YangInstanceIdentifier path, - NormalizedNode data, Optional defaultOperation); + NormalizedNode data, Optional defaultOperation); /** * The <edit-config> operation with "create" attribute. diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyNetconfDataTreeService.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyNetconfDataTreeService.java index af4eeb3bdd..379bee60bd 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyNetconfDataTreeService.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyNetconfDataTreeService.java @@ -17,7 +17,7 @@ import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.dom.api.NetconfDataTreeService; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.impl.netconf.ProxyNetconfService; @@ -103,7 +103,7 @@ public class ProxyNetconfDataTreeService implements NetconfDataTreeService { @Override public ListenableFuture merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { isLocked(); return proxyNetconfService.merge(store, path, data, defaultOperation); } @@ -111,7 +111,7 @@ public class ProxyNetconfDataTreeService implements NetconfDataTreeService { @Override public ListenableFuture replace(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { isLocked(); return proxyNetconfService.replace(store, path, data, defaultOperation); } @@ -119,7 +119,7 @@ public class ProxyNetconfDataTreeService implements NetconfDataTreeService { @Override public ListenableFuture create(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { isLocked(); return proxyNetconfService.create(store, path, data, defaultOperation); } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java index 4624bd68be..9fd9ca76b1 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java @@ -26,7 +26,7 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.netconf.topology.singleton.impl.utils.ClusteringRpcException; import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUtils; @@ -168,7 +168,7 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade @Override public ListenableFuture merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Merge {} {} via actor {}", id, store, path, masterActor); masterActor.tell(new MergeEditConfigRequest( store, new NormalizedNodeMessage(path, data), defaultOperation.orElse(null)), ActorRef.noSender()); @@ -179,7 +179,7 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade @Override public ListenableFuture replace(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Replace {} {} via actor {}", id, store, path, masterActor); masterActor.tell(new ReplaceEditConfigRequest( @@ -190,7 +190,7 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade @Override public ListenableFuture create(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Create {} {} via actor {}", id, store, path, masterActor); masterActor.tell(new CreateEditConfigRequest( store, new NormalizedNodeMessage(path, data), defaultOperation.orElse(null)), ActorRef.noSender()); diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/FailedProxyNetconfServiceFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/FailedProxyNetconfServiceFacade.java index b2778a20ba..a0b9cc159d 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/FailedProxyNetconfServiceFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/FailedProxyNetconfServiceFacade.java @@ -18,7 +18,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -84,7 +84,7 @@ public class FailedProxyNetconfServiceFacade implements ProxyNetconfServiceFacad @Override public ListenableFuture merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Merge {} {} - failure", id, store, path, failure); return serviceFailed("merge"); } @@ -92,7 +92,7 @@ public class FailedProxyNetconfServiceFacade implements ProxyNetconfServiceFacad @Override public ListenableFuture replace(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Replace {} {} - failure", id, store, path, failure); return serviceFailed("replace"); } @@ -100,7 +100,7 @@ public class FailedProxyNetconfServiceFacade implements ProxyNetconfServiceFacad @Override public ListenableFuture create(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Create {} {} - failure", id, store, path, failure); return serviceFailed("create"); } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ProxyNetconfService.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ProxyNetconfService.java index 4273ff6f7b..bcef698d71 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ProxyNetconfService.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ProxyNetconfService.java @@ -24,7 +24,7 @@ import org.checkerframework.checker.lock.qual.GuardedBy; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.dom.api.NetconfDataTreeService; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -128,7 +128,7 @@ public class ProxyNetconfService implements NetconfDataTreeService { @Override public ListenableFuture merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Merge {} {}", id, store, path); final SettableFuture returnFuture = SettableFuture.create(); processNetconfOperation(facade -> returnFuture.setFuture(facade.merge(store, path, data, defaultOperation))); @@ -138,7 +138,7 @@ public class ProxyNetconfService implements NetconfDataTreeService { @Override public ListenableFuture replace(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Replace {} {}", id, store, path); final SettableFuture returnFuture = SettableFuture.create(); processNetconfOperation(facade -> returnFuture.setFuture(facade.replace(store, path, data, defaultOperation))); @@ -148,7 +148,7 @@ public class ProxyNetconfService implements NetconfDataTreeService { @Override public ListenableFuture create(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { LOG.debug("{}: Create {} {}", id, store, path); final SettableFuture returnFuture = SettableFuture.create(); processNetconfOperation(facade -> returnFuture.setFuture(facade.create(store, path, data, defaultOperation))); diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/CreateEditConfigRequest.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/CreateEditConfigRequest.java index bab24e947c..b6edb264e1 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/CreateEditConfigRequest.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/CreateEditConfigRequest.java @@ -8,14 +8,14 @@ package org.opendaylight.netconf.topology.singleton.messages.netconf; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; public class CreateEditConfigRequest extends EditConfigRequest { private static final long serialVersionUID = 1L; public CreateEditConfigRequest(LogicalDatastoreType store, NormalizedNodeMessage data, - ModifyAction defaultOperation) { + EffectiveOperation defaultOperation) { super(store, data, defaultOperation); } } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/EditConfigRequest.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/EditConfigRequest.java index 40dbd362fe..7dada2cab7 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/EditConfigRequest.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/EditConfigRequest.java @@ -9,7 +9,7 @@ package org.opendaylight.netconf.topology.singleton.messages.netconf; import java.io.Serializable; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; public class EditConfigRequest implements Serializable { @@ -17,10 +17,10 @@ public class EditConfigRequest implements Serializable { private final LogicalDatastoreType store; private final NormalizedNodeMessage data; - private final ModifyAction defaultOperation; + private final EffectiveOperation defaultOperation; public EditConfigRequest(final LogicalDatastoreType store, final NormalizedNodeMessage data, - final ModifyAction defaultOperation) { + final EffectiveOperation defaultOperation) { this.store = store; this.data = data; this.defaultOperation = defaultOperation; @@ -34,7 +34,7 @@ public class EditConfigRequest implements Serializable { return store; } - public ModifyAction getDefaultOperation() { + public EffectiveOperation getDefaultOperation() { return defaultOperation; } } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/MergeEditConfigRequest.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/MergeEditConfigRequest.java index ef35f0f0c4..5c39022094 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/MergeEditConfigRequest.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/MergeEditConfigRequest.java @@ -8,14 +8,14 @@ package org.opendaylight.netconf.topology.singleton.messages.netconf; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; public class MergeEditConfigRequest extends EditConfigRequest { private static final long serialVersionUID = 1L; public MergeEditConfigRequest(LogicalDatastoreType store, NormalizedNodeMessage data, - ModifyAction defaultOperation) { + EffectiveOperation defaultOperation) { super(store, data, defaultOperation); } } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/ReplaceEditConfigRequest.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/ReplaceEditConfigRequest.java index fb27d1520c..0b8949bd79 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/ReplaceEditConfigRequest.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/netconf/ReplaceEditConfigRequest.java @@ -8,14 +8,14 @@ package org.opendaylight.netconf.topology.singleton.messages.netconf; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage; public class ReplaceEditConfigRequest extends EditConfigRequest { private static final long serialVersionUID = 1L; public ReplaceEditConfigRequest(final LogicalDatastoreType store, final NormalizedNodeMessage data, - final ModifyAction defaultOperation) { + final EffectiveOperation defaultOperation) { super(store, data, defaultOperation); } } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java index e7c5c21d36..aa910cd39e 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java @@ -23,7 +23,7 @@ import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.dom.api.NetconfDataTreeService; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices.Rpcs; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; @@ -67,7 +67,7 @@ public abstract sealed class AbstractNetconfDataTreeService implements NetconfDa @Override ListenableFuture editConfig(final DataContainerChild editStructure, - final ModifyAction defaultOperation) { + final EffectiveOperation defaultOperation) { final NetconfRpcFutureCallback callback = new NetconfRpcFutureCallback("Edit candidate", id); return defaultOperation == null ? netconfOps.editConfigCandidate(callback, editStructure, rollbackSupport) : netconfOps.editConfigCandidate(callback, editStructure, defaultOperation, rollbackSupport); @@ -104,7 +104,7 @@ public abstract sealed class AbstractNetconfDataTreeService implements NetconfDa @Override ListenableFuture editConfig(final DataContainerChild editStructure, - final ModifyAction defaultOperation) { + final EffectiveOperation defaultOperation) { final NetconfRpcFutureCallback callback = new NetconfRpcFutureCallback("Edit running", id); return defaultOperation == null ? netconfOps.editConfigRunning(callback, editStructure, rollbackSupport) : netconfOps.editConfigRunning(callback, editStructure, defaultOperation, rollbackSupport); @@ -144,7 +144,7 @@ public abstract sealed class AbstractNetconfDataTreeService implements NetconfDa @Override ListenableFuture editConfig(final DataContainerChild editStructure, - final ModifyAction defaultOperation) { + final EffectiveOperation defaultOperation) { return candidate.editConfig(editStructure, defaultOperation); } } @@ -287,30 +287,33 @@ public abstract sealed class AbstractNetconfDataTreeService implements NetconfDa @Override public synchronized ListenableFuture merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { checkEditable(store); return editConfig( - netconfOps.createEditConfigStructure(Optional.ofNullable(data), Optional.of(ModifyAction.MERGE), path), + netconfOps.createEditConfigStructure(Optional.ofNullable(data), Optional.of(EffectiveOperation.MERGE), + path), defaultOperation.orElse(null)); } @Override public synchronized ListenableFuture replace(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { checkEditable(store); return editConfig( - netconfOps.createEditConfigStructure(Optional.ofNullable(data), Optional.of(ModifyAction.REPLACE), path), + netconfOps.createEditConfigStructure(Optional.ofNullable(data), Optional.of(EffectiveOperation.REPLACE), + path), defaultOperation.orElse(null)); } @Override public synchronized ListenableFuture create(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data, - final Optional defaultOperation) { + final Optional defaultOperation) { checkEditable(store); return editConfig( - netconfOps.createEditConfigStructure(Optional.ofNullable(data), Optional.of(ModifyAction.CREATE), path), + netconfOps.createEditConfigStructure(Optional.ofNullable(data), Optional.of(EffectiveOperation.CREATE), + path), defaultOperation.orElse(null)); } @@ -318,14 +321,14 @@ public abstract sealed class AbstractNetconfDataTreeService implements NetconfDa public synchronized ListenableFuture delete(final LogicalDatastoreType store, final YangInstanceIdentifier path) { return editConfig(netconfOps.createEditConfigStructure(Optional.empty(), - Optional.of(ModifyAction.DELETE), path), null); + Optional.of(EffectiveOperation.DELETE), path), null); } @Override public synchronized ListenableFuture remove(final LogicalDatastoreType store, final YangInstanceIdentifier path) { return editConfig(netconfOps.createEditConfigStructure(Optional.empty(), - Optional.of(ModifyAction.REMOVE), path), null); + Optional.of(EffectiveOperation.REMOVE), path), null); } @Override @@ -339,7 +342,7 @@ public abstract sealed class AbstractNetconfDataTreeService implements NetconfDa } abstract ListenableFuture editConfig(DataContainerChild editStructure, - @Nullable ModifyAction defaultOperation); + @Nullable EffectiveOperation defaultOperation); private static void checkEditable(final LogicalDatastoreType store) { checkArgument(store == LogicalDatastoreType.CONFIGURATION, "Can only edit configuration data, not %s", store); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java index 10d35c7473..5b3a0fcfcd 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java @@ -26,7 +26,7 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfBaseOps; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; @@ -112,7 +112,7 @@ public abstract class AbstractWriteTx implements DOMDataTreeWriteTransaction { } final DataContainerChild editStructure = netOps.createEditConfigStructure(Optional.ofNullable(data), - Optional.of(ModifyAction.REPLACE), path); + Optional.of(EffectiveOperation.REPLACE), path); editConfig(path, Optional.ofNullable(data), editStructure, Optional.empty(), "put"); } @@ -146,8 +146,8 @@ public abstract class AbstractWriteTx implements DOMDataTreeWriteTransaction { public synchronized void delete(final LogicalDatastoreType store, final YangInstanceIdentifier path) { checkEditable(store); final DataContainerChild editStructure = netOps.createEditConfigStructure(Optional.empty(), - Optional.of(ModifyAction.DELETE), path); - editConfig(path, Optional.empty(), editStructure, Optional.of(ModifyAction.NONE), "delete"); + Optional.of(EffectiveOperation.DELETE), path); + editConfig(path, Optional.empty(), editStructure, Optional.of(EffectiveOperation.NONE), "delete"); } @Override @@ -212,7 +212,7 @@ public abstract class AbstractWriteTx implements DOMDataTreeWriteTransaction { protected abstract void editConfig(YangInstanceIdentifier path, Optional data, DataContainerChild editStructure, - Optional defaultOperation, String operation); + Optional defaultOperation, String operation); protected ListenableFuture> resultsToTxStatus() { final SettableFuture> transformed = SettableFuture.create(); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java index eeb41f7298..7faa152e9c 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java @@ -13,7 +13,7 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import java.util.Optional; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfBaseOps; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfRpcFutureCallback; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; @@ -132,8 +132,8 @@ public class WriteCandidateTx extends AbstractWriteTx { @Override protected void editConfig(final YangInstanceIdentifier path, final Optional data, - final DataContainerChild editStructure, final Optional defaultOperation, - final String operation) { + final DataContainerChild editStructure, final Optional defaultOperation, + final String operation) { final NetconfRpcFutureCallback editConfigCallback = new NetconfRpcFutureCallback("Edit candidate", id); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java index a24d955d83..675230f051 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteRunningTx.java @@ -12,7 +12,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfBaseOps; import org.opendaylight.netconf.sal.connect.netconf.util.NetconfRpcFutureCallback; import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; @@ -85,7 +85,7 @@ public class WriteRunningTx extends AbstractWriteTx { @Override protected void editConfig(final YangInstanceIdentifier path, final Optional data, final DataContainerChild editStructure, - final Optional defaultOperation, + final Optional defaultOperation, final String operation) { changes.add(new Change(editStructure, defaultOperation)); } @@ -101,9 +101,9 @@ public class WriteRunningTx extends AbstractWriteTx { private static final class Change { private final DataContainerChild editStructure; - private final Optional defaultOperation; + private final Optional defaultOperation; - Change(final DataContainerChild editStructure, final Optional defaultOperation) { + Change(final DataContainerChild editStructure, final Optional defaultOperation) { this.editStructure = editStructure; this.defaultOperation = defaultOperation; } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOps.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOps.java index af09e9f575..9da31299ca 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOps.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOps.java @@ -51,7 +51,7 @@ import java.util.Optional; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.sal.connect.api.NetconfRpcService; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices.Rpcs; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.copy.config.input.target.ConfigTarget; @@ -326,7 +326,7 @@ public final class NetconfBaseOps { public ListenableFuture editConfigCandidate( final FutureCallback callback, final DataContainerChild editStructure, - final ModifyAction modifyAction, final boolean rollback) { + final EffectiveOperation modifyAction, final boolean rollback) { return editConfig(callback, NETCONF_CANDIDATE_NODEID, editStructure, Optional.of(modifyAction), rollback); } @@ -338,7 +338,7 @@ public final class NetconfBaseOps { public ListenableFuture editConfigRunning( final FutureCallback callback, final DataContainerChild editStructure, - final ModifyAction modifyAction, final boolean rollback) { + final EffectiveOperation modifyAction, final boolean rollback) { return editConfig(callback, NETCONF_RUNNING_NODEID, editStructure, Optional.of(modifyAction), rollback); } @@ -350,14 +350,14 @@ public final class NetconfBaseOps { public ListenableFuture editConfig( final FutureCallback callback, final NodeIdentifier datastore, - final DataContainerChild editStructure, final Optional modifyAction, + final DataContainerChild editStructure, final Optional modifyAction, final boolean rollback) { return addCallback(requireNonNull(callback), rpc.invokeNetconf(NETCONF_EDIT_CONFIG_QNAME, getEditConfigContent(requireNonNull(datastore), requireNonNull(editStructure), modifyAction, rollback))); } public ChoiceNode createEditConfigStructure(final Optional lastChild, - final Optional operation, final YangInstanceIdentifier dataPath) { + final Optional operation, final YangInstanceIdentifier dataPath) { return Builders.choiceBuilder() .withNodeIdentifier(EDIT_CONTENT_NODEID) .withChild(transformer.createEditConfigStructure(lastChild, dataPath, operation)) @@ -365,7 +365,7 @@ public final class NetconfBaseOps { } private static ContainerNode getEditConfigContent(final NodeIdentifier datastore, - final DataContainerChild editStructure, final Optional defaultOperation, + final DataContainerChild editStructure, final Optional defaultOperation, final boolean rollback) { final var editBuilder = Builders.containerBuilder() .withNodeIdentifier(NETCONF_EDIT_CONFIG_NODEID) diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java index 20e06852d9..c9d47815f6 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfMessageTransformUtil.java @@ -34,8 +34,8 @@ import javax.xml.transform.dom.DOMSource; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.netconf.api.DocumentedException; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.FailedNetconfMessage; -import org.opendaylight.netconf.api.ModifyAction; import org.opendaylight.netconf.api.NetconfDocumentedException; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlElement; @@ -357,13 +357,13 @@ public final class NetconfMessageTransformUtil { * * @param ctx {@link EffectiveModelContext} device's model context * @param dataPath {@link YangInstanceIdentifier} path to data in device's data-store - * @param operation Optional of {@link ModifyAction} action to be invoked + * @param operation Optional of {@link EffectiveOperation} action to be invoked * @param lastChildOverride Optional of {@code NormalizedNode} data on which action will be invoked * @return {@link DOMSourceAnyxmlNode} containing edit-config structure */ public static DOMSourceAnyxmlNode createEditConfigAnyxml( final EffectiveModelContext ctx, final YangInstanceIdentifier dataPath, - final Optional operation, final Optional lastChildOverride) { + final Optional operation, final Optional lastChildOverride) { if (dataPath.isEmpty()) { Preconditions.checkArgument(lastChildOverride.isPresent(), "Data has to be present when creating structure for top level element"); @@ -400,7 +400,7 @@ public final class NetconfMessageTransformUtil { .build(); } - private static NormalizedMetadata leafMetadata(final YangInstanceIdentifier path, final ModifyAction oper) { + private static NormalizedMetadata leafMetadata(final YangInstanceIdentifier path, final EffectiveOperation oper) { final List args = path.getPathArguments(); final Deque builders = new ArrayDeque<>(args.size()); @@ -425,7 +425,7 @@ public final class NetconfMessageTransformUtil { } public static DataContainerChild createEditConfigStructure(final EffectiveModelContext ctx, - final YangInstanceIdentifier dataPath, final Optional operation, + final YangInstanceIdentifier dataPath, final Optional operation, final Optional lastChildOverride) { return Builders.choiceBuilder().withNodeIdentifier(EDIT_CONTENT_NODEID) .withChild(createEditConfigAnyxml(ctx, dataPath, operation, lastChildOverride)).build(); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcStructureTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcStructureTransformer.java index 613a5e7da7..37397f262e 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcStructureTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcStructureTransformer.java @@ -12,7 +12,7 @@ import java.net.URISyntaxException; import java.util.List; import java.util.Optional; import javax.xml.stream.XMLStreamException; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.util.NetconfUtil; import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -59,7 +59,7 @@ class NetconfRpcStructureTransformer implements RpcStructureTransformer { @Override public DOMSourceAnyxmlNode createEditConfigStructure(final Optional data, final YangInstanceIdentifier dataPath, - final Optional operation) { + final Optional operation) { // FIXME: propagate MountPointContext return NetconfMessageTransformUtil.createEditConfigAnyxml(mountContext.getEffectiveModelContext(), dataPath, operation, data); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/RpcStructureTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/RpcStructureTransformer.java index fe14154b14..7029a51f72 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/RpcStructureTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/RpcStructureTransformer.java @@ -9,7 +9,7 @@ package org.opendaylight.netconf.sal.connect.netconf.util; import java.util.List; import java.util.Optional; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode; import org.opendaylight.yangtools.yang.data.api.schema.DOMSourceAnyxmlNode; @@ -30,7 +30,7 @@ interface RpcStructureTransformer { * @return config structure */ DOMSourceAnyxmlNode createEditConfigStructure(Optional data, YangInstanceIdentifier dataPath, - Optional operation); + Optional operation); /** * Transforms path to filter structure. diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformer.java index 7f4fa6b877..b81ca55660 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformer.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Optional; import javax.xml.transform.dom.DOMSource; import org.opendaylight.netconf.api.DocumentedException; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -78,7 +78,7 @@ class SchemalessRpcStructureTransformer implements RpcStructureTransformer { */ @Override public DOMSourceAnyxmlNode createEditConfigStructure(final Optional data, - final YangInstanceIdentifier dataPath, final Optional operation) { + final YangInstanceIdentifier dataPath, final Optional operation) { final var dataValue = data.orElseThrow(); if (!(dataValue instanceof DOMSourceAnyxmlNode anxmlData)) { throw new IllegalArgumentException("Unexpected data " + dataValue.prettyTree()); @@ -193,7 +193,7 @@ class SchemalessRpcStructureTransformer implements RpcStructureTransformer { } } - private static void setOperationAttribute(final ModifyAction operation, final Document document, + private static void setOperationAttribute(final EffectiveOperation operation, final Document document, final Element dataNode) { final var operationAttribute = document.createAttributeNS(NETCONF_OPERATION_QNAME.getNamespace().toString(), NETCONF_OPERATION_QNAME.getLocalName()); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOpsTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOpsTest.java index e8c822a15e..09de6c1ef5 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOpsTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfBaseOpsTest.java @@ -31,7 +31,7 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; @@ -232,7 +232,7 @@ public class NetconfBaseOpsTest extends AbstractTestModelTest { public void testEditConfigCandidate() throws Exception { baseOps.editConfigCandidate(callback, baseOps.createEditConfigStructure( Optional.of(ImmutableNodes.leafNode(LEAF_A_NID, "leaf-value")), - Optional.of(ModifyAction.REPLACE), YangInstanceIdentifier.builder() + Optional.of(EffectiveOperation.REPLACE), YangInstanceIdentifier.builder() .node(CONTAINER_C_QNAME) .node(LEAF_A_NID) .build()), true); @@ -242,7 +242,7 @@ public class NetconfBaseOpsTest extends AbstractTestModelTest { @Test public void testDeleteContainerNodeCandidate() throws Exception { baseOps.editConfigCandidate(callback, baseOps.createEditConfigStructure(Optional.empty(), - Optional.of(ModifyAction.DELETE), YangInstanceIdentifier.of(CONTAINER_C_QNAME)), true); + Optional.of(EffectiveOperation.DELETE), YangInstanceIdentifier.of(CONTAINER_C_QNAME)), true); verifyMessageSent("edit-config-delete-container-node-candidate", NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME); } @@ -250,7 +250,7 @@ public class NetconfBaseOpsTest extends AbstractTestModelTest { @Test public void testDeleteLeafNodeCandidate() throws Exception { baseOps.editConfigCandidate(callback, baseOps.createEditConfigStructure(Optional.empty(), - Optional.of(ModifyAction.DELETE), + Optional.of(EffectiveOperation.DELETE), YangInstanceIdentifier.builder().node(CONTAINER_C_QNAME).node(LEAF_A_NID).build()), true); verifyMessageSent("edit-config-delete-leaf-node-candidate", NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME); @@ -260,8 +260,9 @@ public class NetconfBaseOpsTest extends AbstractTestModelTest { public void testEditConfigRunning() throws Exception { baseOps.editConfigRunning(callback, baseOps.createEditConfigStructure( Optional.of(ImmutableNodes.leafNode(LEAF_A_NID, "leaf-value")), - Optional.of(ModifyAction.REPLACE), - YangInstanceIdentifier.builder().node(CONTAINER_C_NID).node(LEAF_A_NID).build()), ModifyAction.MERGE, true); + Optional.of(EffectiveOperation.REPLACE), + YangInstanceIdentifier.builder().node(CONTAINER_C_NID).node(LEAF_A_NID).build()), + EffectiveOperation.MERGE, true); verifyMessageSent("edit-config-test-module-running", NetconfMessageTransformUtil.NETCONF_EDIT_CONFIG_QNAME); } diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformerTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformerTest.java index cc1a381d42..6dfa403064 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformerTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/util/SchemalessRpcStructureTransformerTest.java @@ -26,7 +26,7 @@ import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.opendaylight.netconf.api.ModifyAction; +import org.opendaylight.netconf.api.EffectiveOperation; import org.opendaylight.netconf.api.xml.XmlElement; import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.yangtools.yang.common.QName; @@ -94,13 +94,13 @@ public class SchemalessRpcStructureTransformerTest { this.path = path; this.testDataset = testDataset; this.expectedException = expectedException; - this.source = new DOMSource(XmlUtil.readXmlToDocument(getClass() + source = new DOMSource(XmlUtil.readXmlToDocument(getClass() .getResourceAsStream("/schemaless/data/" + testDataset)).getDocumentElement()); - this.expectedConfig = new String(Files.readAllBytes( + expectedConfig = new String(Files.readAllBytes( Paths.get(getClass().getResource("/schemaless/edit-config/" + testDataset).toURI()))); - this.expectedFilter = new String(Files.readAllBytes( + expectedFilter = new String(Files.readAllBytes( Paths.get(getClass().getResource("/schemaless/filter/" + testDataset).toURI()))); - this.getConfigData = new String(Files.readAllBytes( + getConfigData = new String(Files.readAllBytes( Paths.get(getClass().getResource("/schemaless/get-config/" + testDataset).toURI()))); } @@ -113,12 +113,13 @@ public class SchemalessRpcStructureTransformerTest { if (expectedException != null) { assertThrows(expectedException, - () -> adapter.createEditConfigStructure(Optional.of(data), path, Optional.of(ModifyAction.REPLACE))); + () -> adapter.createEditConfigStructure(Optional.of(data), path, + Optional.of(EffectiveOperation.REPLACE))); return; } final DOMSourceAnyxmlNode anyXmlNode = - adapter.createEditConfigStructure(Optional.of(data), path, Optional.of(ModifyAction.REPLACE)); + adapter.createEditConfigStructure(Optional.of(data), path, Optional.of(EffectiveOperation.REPLACE)); final String s = XmlUtil.toString((Element) anyXmlNode.body().getNode()); Diff diff = new Diff(expectedConfig, s); assertTrue(String.format("Input %s: %s", testDataset, diff.toString()), diff.similar()); -- 2.36.6