X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-rfc8040%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Fnb%2Frfc8040%2Frests%2Futils%2FTransactionUtil.java;h=0e4261c46a3af32962ac4319ad051c8981ae5ea8;hb=3571bfa1108d41af18a53291eca0fd8f98a27fec;hp=50d61dec77c4f74fb0f2530f561d6f92f5f92a1a;hpb=71f65f66e59aedd94762954ea055531d8f2c9ea8;p=netconf.git diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/TransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/TransactionUtil.java index 50d61dec77..0e4261c46a 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/TransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/TransactionUtil.java @@ -5,22 +5,20 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.restconf.nb.rfc8040.rests.utils; import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FluentFuture; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; +import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; +import org.opendaylight.mdsal.dom.api.DOMTransactionChain; import org.opendaylight.restconf.common.errors.RestconfDocumentedException; import org.opendaylight.restconf.common.errors.RestconfError.ErrorTag; import org.opendaylight.restconf.common.errors.RestconfError.ErrorType; -import org.opendaylight.restconf.nb.rfc8040.handlers.TransactionChainHandler; 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; @@ -52,7 +50,7 @@ public final class TransactionUtil { * write transaction */ public static void ensureParentsByMerge(final YangInstanceIdentifier path, final SchemaContext schemaContext, - final DOMDataWriteTransaction writeTx) { + final DOMDataTreeWriteTransaction writeTx) { final List normalizedPathWithoutChildArgs = new ArrayList<>(); YangInstanceIdentifier rootNormalizedPath = null; @@ -83,26 +81,25 @@ public final class TransactionUtil { /** * Check if items already exists at specified {@code path}. Throws {@link RestconfDocumentedException} if * data does NOT already exists. - * @param transactionChainHandler Transaction chain handler + * @param transactionChain Transaction chain * @param rwTransaction Transaction * @param store Datastore * @param path Path to be checked * @param operationType Type of operation (READ, POST, PUT, DELETE...) */ - public static void checkItemExists(final TransactionChainHandler transactionChainHandler, - final DOMDataReadWriteTransaction rwTransaction, + public static void checkItemExists(final DOMTransactionChain transactionChain, + final DOMDataTreeReadWriteTransaction rwTransaction, final LogicalDatastoreType store, final YangInstanceIdentifier path, final String operationType) { - final CheckedFuture future = rwTransaction.exists(store, path); + final FluentFuture future = rwTransaction.exists(store, path); final FutureDataFactory response = new FutureDataFactory<>(); FutureCallbackTx.addCallback(future, operationType, response); if (!response.result) { - // close transaction and reset transaction chain + // close transaction rwTransaction.cancel(); - transactionChainHandler.reset(); - + transactionChain.close(); // throw error LOG.trace("Operation via Restconf was not executed because data at {} does not exist", path); throw new RestconfDocumentedException( @@ -113,26 +110,25 @@ public final class TransactionUtil { /** * Check if items do NOT already exists at specified {@code path}. Throws {@link RestconfDocumentedException} if * data already exists. - * @param transactionChainHandler Transaction chain handler + * @param transactionChain Transaction chain * @param rwTransaction Transaction * @param store Datastore * @param path Path to be checked * @param operationType Type of operation (READ, POST, PUT, DELETE...) */ - public static void checkItemDoesNotExists(final TransactionChainHandler transactionChainHandler, - final DOMDataReadWriteTransaction rwTransaction, + public static void checkItemDoesNotExists(final DOMTransactionChain transactionChain, + final DOMDataTreeReadWriteTransaction rwTransaction, final LogicalDatastoreType store, final YangInstanceIdentifier path, final String operationType) { - final CheckedFuture future = rwTransaction.exists(store, path); + final FluentFuture future = rwTransaction.exists(store, path); final FutureDataFactory response = new FutureDataFactory<>(); FutureCallbackTx.addCallback(future, operationType, response); if (response.result) { - // close transaction and reset transaction chain + // close transaction rwTransaction.cancel(); - transactionChainHandler.reset(); - + transactionChain.close(); // throw error LOG.trace("Operation via Restconf was not executed because data at {} already exists", path); throw new RestconfDocumentedException(