Disconnect PutDataTransactionUtil from NormalizedNodePayload 93/107093/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 26 Jul 2023 18:59:58 +0000 (20:59 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 26 Jul 2023 21:16:19 +0000 (23:16 +0200)
We only require path and data here, there is no need to encapsulate this
in a legacy wrapper.

Change-Id: Ic60ca8f8f086c1c902eecebc0deca59594b3e7ee
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImpl.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java
restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtilTest.java

index 3cad15bb86093239f8543f32c09adf53a9101098..7ea9cd7055e65d18bca297c78116dd6e95802fa8 100644 (file)
@@ -244,13 +244,14 @@ public class RestconfDataServiceImpl implements RestconfDataService {
         final WriteDataParams params = QueryParams.newWriteDataParams(uriInfo);
 
         final InstanceIdentifierContext iid = payload.getInstanceIdentifierContext();
+        final YangInstanceIdentifier path = iid.getInstanceIdentifier();
 
         validInputData(iid.getSchemaNode() != null, payload);
-        validTopLevelNodeName(iid.getInstanceIdentifier(), payload);
+        validTopLevelNodeName(path, payload);
         validateListKeysEqualityInPayloadAndUri(payload);
 
         final RestconfStrategy strategy = getRestconfStrategy(iid.getMountPoint());
-        return PutDataTransactionUtil.putData(payload, iid.getSchemaContext(), strategy, params);
+        return PutDataTransactionUtil.putData(path, payload.getData(), iid.getSchemaContext(), strategy, params);
     }
 
     @Override
index 22c493600848527b77120874a8f3cc7ad27ec1b1..d9d37f5a50f7d87abcc9d1f6d51e7b3161f8e663 100644 (file)
@@ -18,7 +18,6 @@ import org.opendaylight.restconf.api.query.InsertParam;
 import org.opendaylight.restconf.api.query.PointParam;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.nb.rfc8040.WriteDataParams;
-import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
 import org.opendaylight.restconf.nb.rfc8040.rests.transactions.RestconfStrategy;
 import org.opendaylight.restconf.nb.rfc8040.rests.transactions.RestconfTransaction;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.YangInstanceIdentifierDeserializer;
@@ -49,16 +48,15 @@ public final class PutDataTransactionUtil {
      * Check mount point and prepare variables for put data to DS. Close {@link DOMTransactionChain} if any
      * inside of object {@link RestconfStrategy} provided as a parameter if any.
      *
-     * @param payload       data to put
+     * @param path          path of data
+     * @param data          data
      * @param schemaContext reference to {@link EffectiveModelContext}
      * @param strategy      object that perform the actual DS operations
      * @param params        {@link WriteDataParams}
      * @return {@link Response}
      */
-    public static Response putData(final NormalizedNodePayload payload, final EffectiveModelContext schemaContext,
-                                   final RestconfStrategy strategy, final WriteDataParams params) {
-        final YangInstanceIdentifier path = payload.getInstanceIdentifierContext().getInstanceIdentifier();
-
+    public static Response putData(final YangInstanceIdentifier path, final NormalizedNode data,
+            final EffectiveModelContext schemaContext, final RestconfStrategy strategy, final WriteDataParams params) {
         final var existsFuture = strategy.exists(LogicalDatastoreType.CONFIGURATION, path);
         final boolean exists;
         try {
@@ -72,8 +70,8 @@ public final class PutDataTransactionUtil {
 
         final ResponseFactory responseFactory =
             new ResponseFactory(exists ? Status.NO_CONTENT : Status.CREATED);
-        final ListenableFuture<? extends CommitInfo> submitData = submitData(path, schemaContext, strategy,
-            payload.getData(), params);
+        final ListenableFuture<? extends CommitInfo> submitData = submitData(path, schemaContext, strategy, data,
+            params);
         //This method will close transactionChain if any
         FutureCallbackTx.addCallback(submitData, PUT_TX_TYPE, responseFactory, path);
         return responseFactory.build();
index 3b9fcc980f95756db94cf94a5e9319a5241e7c52..b7506c84ba33c720783d4f6314bab419efa3221c 100644 (file)
@@ -202,153 +202,126 @@ public class PutDataTransactionUtilTest {
 
     @Test
     public void testPutContainerData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid2);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont);
-
         doReturn(readWrite).when(mockDataBroker).newReadWriteTransaction();
         doReturn(read).when(mockDataBroker).newReadOnlyTransaction();
         doReturn(immediateFalseFluentFuture()).when(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
-        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
+        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseCont);
         doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit();
 
-        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker),
+        PutDataTransactionUtil.putData(iid2, buildBaseCont, schema, new MdsalRestconfStrategy(mockDataBroker),
             WriteDataParams.empty());
         verify(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
-        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
+        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseCont);
     }
 
     @Test
     public void testPutCreateContainerData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid2);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont);
-
         doReturn(immediateFluentFuture(Optional.empty())).when(netconfService).getConfig(iid2);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseCont, Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+        PutDataTransactionUtil.putData(iid2, buildBaseCont, schema, new NetconfRestconfStrategy(netconfService),
             WriteDataParams.empty());
         verify(netconfService).lock();
         verify(netconfService).getConfig(iid2);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseCont, Optional.empty());
     }
 
     @Test
     public void testPutReplaceContainerData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid2);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont);
-
         doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class)))).when(netconfService).getConfig(iid2);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseCont, Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+        PutDataTransactionUtil.putData(iid2, buildBaseCont, schema, new NetconfRestconfStrategy(netconfService),
             WriteDataParams.empty());
         verify(netconfService).getConfig(iid2);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseCont, Optional.empty());
     }
 
     @Test
     public void testPutLeafData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
-
         doReturn(readWrite).when(mockDataBroker).newReadWriteTransaction();
         doReturn(read).when(mockDataBroker).newReadOnlyTransaction();
         doReturn(immediateFalseFluentFuture()).when(read).exists(LogicalDatastoreType.CONFIGURATION, iid);
-        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid, payload.getData());
+        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid, buildLeaf);
         doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit();
 
-        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker),
+        PutDataTransactionUtil.putData(iid, buildLeaf, schema, new MdsalRestconfStrategy(mockDataBroker),
             WriteDataParams.empty());
         verify(read).exists(LogicalDatastoreType.CONFIGURATION, iid);
-        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid, payload.getData());
+        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid, buildLeaf);
     }
 
     @Test
     public void testPutCreateLeafData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
-
         doReturn(immediateFluentFuture(Optional.empty())).when(netconfService).getConfig(iid);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid, buildLeaf, Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+        PutDataTransactionUtil.putData(iid, buildLeaf, schema, new NetconfRestconfStrategy(netconfService),
             WriteDataParams.empty());
         verify(netconfService).getConfig(iid);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid, buildLeaf, Optional.empty());
     }
 
     @Test
     public void testPutReplaceLeafData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
-
         doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class)))).when(netconfService).getConfig(iid);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid, buildLeaf, Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+        PutDataTransactionUtil.putData(iid, buildLeaf, schema, new NetconfRestconfStrategy(netconfService),
             WriteDataParams.empty());
         verify(netconfService).getConfig(iid);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid, buildLeaf, Optional.empty());
     }
 
     @Test
     public void testPutListData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid2);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseContWithList);
-
         doReturn(readWrite).when(mockDataBroker).newReadWriteTransaction();
         doReturn(read).when(mockDataBroker).newReadOnlyTransaction();
         doReturn(immediateFalseFluentFuture())
                 .when(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
-        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
+        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseContWithList);
         doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit();
-        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker),
+        PutDataTransactionUtil.putData(iid2, buildBaseContWithList, schema, new MdsalRestconfStrategy(mockDataBroker),
             WriteDataParams.empty());
         verify(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
-        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
+        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseContWithList);
     }
 
     @Test
     public void testPutCreateListData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid2);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseContWithList);
-
         doReturn(immediateFluentFuture(Optional.empty())).when(netconfService)
                 .getConfig(iid2);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseContWithList, Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+        PutDataTransactionUtil.putData(iid2, buildBaseContWithList, schema, new NetconfRestconfStrategy(netconfService),
             WriteDataParams.empty());
         verify(netconfService).getConfig(iid2);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2,
-                payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseContWithList,
+            Optional.empty());
     }
 
     @Test
     public void testPutReplaceListData() {
-        final InstanceIdentifierContext iidContext = InstanceIdentifierContext.ofLocalPath(schema, iid2);
-        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseContWithList);
-
         doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class)))).when(netconfService)
                 .getConfig(iid2);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION,
-                iid2, payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseContWithList, Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+        PutDataTransactionUtil.putData(iid2, buildBaseContWithList, schema, new NetconfRestconfStrategy(netconfService),
             WriteDataParams.empty());
         verify(netconfService).getConfig(iid2);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, buildBaseContWithList,
+            Optional.empty());
     }
 }