Remove NetconfUtil.checkIsMessageOk() 37/105737/3
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 28 Apr 2023 13:43:04 +0000 (15:43 +0200)
committerRobert Varga <nite@hq.sk>
Fri, 28 Apr 2023 14:53:10 +0000 (14:53 +0000)
This method is not used anywhere except in test. Remove it to make it
clear NetconfUtil is the NormalizedNode integration thing.

Change-Id: I289ab3fc79f4d6fcde029213c5464043d1b53d1c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
protocol/netconf-util/src/main/java/org/opendaylight/netconf/util/NetconfUtil.java
protocol/netconf-util/src/test/java/org/opendaylight/netconf/util/NetconfUtilTest.java
protocol/netconf-util/src/test/resources/netconfMessages/conflictingversion/conflictingVersionResponse.xml [deleted file]

index 96072648bd5cd51e1b1f6ff991443c31cb302c94..0f353bf3d440b3daf5930221318e7fa6bd2d387e 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.netconf.util;
 
-import static com.google.common.base.Preconditions.checkState;
-
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.util.Iterator;
@@ -23,9 +21,6 @@ import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.dom.DOMSource;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.netconf.api.DocumentedException;
-import org.opendaylight.netconf.api.xml.XmlElement;
-import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
 import org.opendaylight.netconf.api.xml.XmlUtil;
 import org.opendaylight.yangtools.rfc7952.data.api.NormalizedMetadata;
 import org.opendaylight.yangtools.rfc7952.data.api.StreamWriterMetadataExtension;
@@ -50,7 +45,6 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
 
@@ -120,21 +114,6 @@ public final class NetconfUtil {
         // No-op
     }
 
-    public static Document checkIsMessageOk(final Document response) throws DocumentedException {
-        final XmlElement docElement = XmlElement.fromDomDocument(response);
-        // FIXME: we should throw DocumentedException here
-        checkState(XmlNetconfConstants.RPC_REPLY_KEY.equals(docElement.getName()));
-        final XmlElement element = docElement.getOnlyChildElement();
-        if (XmlNetconfConstants.OK.equals(element.getName())) {
-            return response;
-        }
-
-        LOG.warn("Can not load last configuration. Operation failed.");
-        // FIXME: we should be throwing a DocumentedException here
-        throw new IllegalStateException("Can not load last configuration. Operation failed: "
-                + XmlUtil.toString(response));
-    }
-
     /**
      * Write {@code normalized} data into {@link DOMResult}.
      *
index 0ba23df973572c1ba47733c1c17fe9995acda45d..b4c35eefd87275dbf389da20af3f8a25596bc1be 100644 (file)
@@ -7,12 +7,9 @@
  */
 package org.opendaylight.netconf.util;
 
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
 
-import java.util.Collections;
+import java.util.List;
 import javax.xml.transform.dom.DOMResult;
 import org.custommonkey.xmlunit.Diff;
 import org.custommonkey.xmlunit.XMLUnit;
@@ -27,57 +24,34 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.mon
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.w3c.dom.Document;
 
 public class NetconfUtilTest {
-
     @BeforeClass
     public static void classSetUp() {
         XMLUnit.setIgnoreWhitespace(true);
     }
 
-    @Test
-    public void testConflictingVersionDetection() throws Exception {
-        final Document document = XmlUtil.readXmlToDocument(getClass()
-                .getResourceAsStream("/netconfMessages/conflictingversion/conflictingVersionResponse.xml"));
-
-        final IllegalStateException e = assertThrows(IllegalStateException.class,
-            () -> NetconfUtil.checkIsMessageOk(document));
-        assertThat(e.getMessage(), containsString("Optimistic lock failed. Expected parent version 21, was 18"));
-    }
-
     @Test
     public void testWriteNormalizedNode() throws Exception {
-        final EffectiveModelContext context = BindingRuntimeHelpers.createEffectiveModel(
-            Collections.singletonList($YangModuleInfoImpl.getInstance()));
-        final LeafNode<?> username = Builders.leafBuilder()
-                .withNodeIdentifier(new NodeIdentifier(QName.create(Session.QNAME, "username")))
-                .withValue("admin")
-                .build();
-        final MapEntryNode session1 = Builders.mapEntryBuilder()
-                .withNodeIdentifier(
-                        NodeIdentifierWithPredicates.of(Session.QNAME, QName.create(Session.QNAME, "session-id"), 1L))
-                .withChild(username)
-                .build();
-        final MapNode sessionList = Builders.mapBuilder()
+        final var context = BindingRuntimeHelpers.createEffectiveModel(List.of($YangModuleInfoImpl.getInstance()));
+        final var result = new DOMResult(XmlUtil.newDocument());
+        NetconfUtil.writeNormalizedNode(Builders.containerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(Sessions.QNAME))
+            .withChild(Builders.mapBuilder()
                 .withNodeIdentifier(new NodeIdentifier(Session.QNAME))
-                .withChild(session1)
-                .build();
-        final ContainerNode sessions = Builders.containerBuilder()
-                .withNodeIdentifier(new NodeIdentifier(Sessions.QNAME))
-                .withChild(sessionList)
-                .build();
-        final DOMResult result = new DOMResult(XmlUtil.newDocument());
-        NetconfUtil.writeNormalizedNode(sessions, result, context, Absolute.of(NetconfState.QNAME));
-        final Document actual = (Document) result.getNode();
-        final Document expected = XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/sessions.xml"));
+                .withChild(Builders.mapEntryBuilder()
+                    .withNodeIdentifier(
+                        NodeIdentifierWithPredicates.of(Session.QNAME, QName.create(Session.QNAME, "session-id"), 1L))
+                    .withChild(ImmutableNodes.leafNode(QName.create(Session.QNAME, "username"), "admin"))
+                    .build())
+                .build())
+            .build(), result, context, Absolute.of(NetconfState.QNAME));
+        final var actual = (Document) result.getNode();
+        final var expected = XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/sessions.xml"));
         final Diff diff = XMLUnit.compareXML(expected, actual);
         assertTrue(diff.toString(), diff.similar());
     }
diff --git a/protocol/netconf-util/src/test/resources/netconfMessages/conflictingversion/conflictingVersionResponse.xml b/protocol/netconf-util/src/test/resources/netconfMessages/conflictingversion/conflictingVersionResponse.xml
deleted file mode 100644 (file)
index f65e0e0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="persister_commit">
-    <rpc-error>
-        <error-type>application</error-type>
-        <error-tag>operation-failed</error-tag>
-        <error-severity>error</error-severity>
-
-
-
-        <error-info>
-            <error>org.opendaylight.controller.config.api.ConflictingVersionException: Optimistic lock failed. Expected parent version 21, was 18</error>
-        </error-info>
-    </rpc-error>
-</rpc-reply>