<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>sal-common-api</artifactId>
- <version>1.3.0-Beryllium</version>
+ <version>1.3.0-Beryllium</version> <!-- FIXME use dependency management -->
</dependency>
</dependencies>
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
/**
- * Read-only snapshot of a {@link ReadableVppDataTree}.
+ * Read-only snapshot of a {@link ReadableDataTree}.
*/
@Beta
-public interface VppDataTreeSnapshot extends ReadableVppDataTree {
+public interface DataTreeSnapshot extends ReadableDataTree {
/**
- * Creates a new VPP data tree modification.
+ * Creates a new data tree modification.
*
* @return A new data tree modification
*/
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
/**
- * Facade over VPP data tree that allows tree modification.
+ * Facade over data tree that allows tree modification.
*/
@Beta
-public interface VppDataTree {
+public interface ModifiableDataTree {
/**
- * Commits modification to VPP data tree.
+ * Alters data tree using supplied modification.
*
- * @param modification VPP data tree modification
+ * @param modification data tree modification
* @throws DataValidationFailedException if modification data is not valid
- * @throws TranslationException if commit failed while updating VPP state
+ * @throws TranslationException if failed while updating data tree state
*/
- void commit(final DataTreeModification modification) throws DataValidationFailedException, TranslationException;
+ void modify(final DataTreeModification modification) throws DataValidationFailedException, TranslationException;
/**
- * Creates read-only snapshot of a VppDataTree.
+ * Creates read-only snapshot of a ModifiableDataTree.
*
* @return Data tree snapshot.
*/
- VppDataTreeSnapshot takeSnapshot();
+ DataTreeSnapshot takeSnapshot();
}
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
/**
- * Facade over VPP data tree that allows reading tree nodes.
+ * Facade over data tree that allows reading tree nodes.
*/
@Beta
-public interface ReadableVppDataTree {
+public interface ReadableDataTree {
/**
- * Reads a particular node from the VPP data tree.
+ * Reads a particular node from the data tree.
*
* @param path Path of the node
* @return a CheckFuture containing the result of the read.
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ModifiableDataTree;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
import io.fd.honeycomb.v3po.translate.TranslationException;
import io.fd.honeycomb.v3po.translate.util.write.TransactionWriteContext;
import io.fd.honeycomb.v3po.translate.write.WriteContext;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * VppDataTree implementation for configuration data.
+ * DataTree implementation for configuration data.
*/
-public final class VppConfigDataTree implements VppDataTree {
+public final class ConfigDataTree implements ModifiableDataTree {
- private static final Logger LOG = LoggerFactory.getLogger(VppConfigDataTree.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ConfigDataTree.class);
private final BindingNormalizedNodeSerializer serializer;
private final DataTree dataTree;
private final WriterRegistry writer;
- public static final ReadableVppDataTree EMPTY_OPERATIONAL = new ReadableVppDataTree() {
+ public static final ReadableDataTree EMPTY_OPERATIONAL = new ReadableDataTree() {
@Override
public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(
@Nonnull final YangInstanceIdentifier path) {
* @param serializer service for serialization between Java Binding Data representation and NormalizedNode
* representation.
* @param dataTree data tree for configuration data representation
- * @param vppWriter service for translation between Java Binding Data and Vpp.
+ * @param writer service for translation between Java Binding Data and data provider.
*/
- public VppConfigDataTree(@Nonnull final BindingNormalizedNodeSerializer serializer,
- @Nonnull final DataTree dataTree, @Nonnull final WriterRegistry vppWriter) {
+ public ConfigDataTree(@Nonnull final BindingNormalizedNodeSerializer serializer,
+ @Nonnull final DataTree dataTree, @Nonnull final WriterRegistry writer) {
this.serializer = checkNotNull(serializer, "serializer should not be null");
this.dataTree = checkNotNull(dataTree, "dataTree should not be null");
- this.writer = checkNotNull(vppWriter, "vppWriter should not be null");
+ this.writer = checkNotNull(writer, "writer should not be null");
}
@Override
- public VppDataTreeSnapshot takeSnapshot() {
+ public DataTreeSnapshot takeSnapshot() {
return new ConfigSnapshot(dataTree.takeSnapshot());
}
@Override
- public void commit(final DataTreeModification modification)
+ public void modify(final DataTreeModification modification)
throws DataValidationFailedException, TranslationException {
dataTree.validate(modification);
final YangInstanceIdentifier rootPath = candidate.getRootPath();
final Optional<NormalizedNode<?, ?>> normalizedDataBefore = rootNode.getDataBefore();
final Optional<NormalizedNode<?, ?>> normalizedDataAfter = rootNode.getDataAfter();
- LOG.debug("VppConfigDataTree.commit() rootPath={}, rootNode={}, dataBefore={}, dataAfter={}",
+ LOG.debug("ConfigDataTree.modify() rootPath={}, rootNode={}, dataBefore={}, dataAfter={}",
rootPath, rootNode, normalizedDataBefore, normalizedDataAfter);
final Map<InstanceIdentifier<?>, DataObject> nodesBefore = extractNetconfData(normalizedDataBefore);
- LOG.debug("VppConfigDataTree.commit() extracted nodesBefore={}", nodesBefore.keySet());
+ LOG.debug("ConfigDataTree.modify() extracted nodesBefore={}", nodesBefore.keySet());
final Map<InstanceIdentifier<?>, DataObject> nodesAfter = extractNetconfData(normalizedDataAfter);
- LOG.debug("VppConfigDataTree.commit() extracted nodesAfter={}", nodesAfter.keySet());
+ LOG.debug("ConfigDataTree.modify() extracted nodesAfter={}", nodesAfter.keySet());
- final DOMDataReadOnlyTransaction beforeTx = new VppReadOnlyTransaction(EMPTY_OPERATIONAL, takeSnapshot());
+ final DOMDataReadOnlyTransaction beforeTx = new ReadOnlyTransaction(EMPTY_OPERATIONAL, takeSnapshot());
final ConfigSnapshot modificationSnapshot = new ConfigSnapshot(modification);
- final DOMDataReadOnlyTransaction afterTx = new VppReadOnlyTransaction(EMPTY_OPERATIONAL, modificationSnapshot);
+ final DOMDataReadOnlyTransaction afterTx = new ReadOnlyTransaction(EMPTY_OPERATIONAL, modificationSnapshot);
try(final WriteContext ctx = new TransactionWriteContext(serializer, beforeTx, afterTx)) {
writer.update(nodesBefore, nodesAfter, ctx);
} catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException e) {
return Collections.emptyMap();
}
- private final static class ConfigSnapshot implements VppDataTreeSnapshot {
- private final DataTreeSnapshot snapshot;
+ private final static class ConfigSnapshot implements DataTreeSnapshot {
+ private final org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot snapshot;
- ConfigSnapshot(@Nonnull final DataTreeSnapshot snapshot) {
+ ConfigSnapshot(@Nonnull final org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot snapshot) {
this.snapshot = snapshot;
}
package io.fd.honeycomb.v3po.data.impl;
import com.google.common.base.Preconditions;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
+import io.fd.honeycomb.v3po.data.ModifiableDataTree;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import java.util.Collections;
import java.util.Map;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
/**
- * Data Broker which provides data transaction functionality for VPP using {@link NormalizedNode} data format.
+ * Data Broker which provides data transaction functionality for YANG capable data provider
+ * using {@link NormalizedNode} data format.
*/
-public class VppDataBroker implements DOMDataBroker {
+public class DataBroker implements DOMDataBroker {
- private final ReadableVppDataTree operationalData;
- private final VppDataTree configDataTree;
+ private final ReadableDataTree operationalData;
+ private final ModifiableDataTree configDataTree;
/**
- * Creates VppDataBroker instance.
+ * Creates DataBroker instance.
*
- * @param operationalData VPP operational data
- * @param configDataTree VPP configuration data
+ * @param operationalData operational data
+ * @param configDataTree configuration data
*/
- public VppDataBroker(@Nonnull final ReadableVppDataTree operationalData,
- @Nonnull final VppDataTree configDataTree) {
+ public DataBroker(@Nonnull final ReadableDataTree operationalData,
+ @Nonnull final ModifiableDataTree configDataTree) {
this.operationalData = Preconditions.checkNotNull(operationalData, "operationalData should not be null");
this.configDataTree = Preconditions.checkNotNull(configDataTree, "configDataProxy should not be null");
}
@Override
public DOMDataReadOnlyTransaction newReadOnlyTransaction() {
- return new VppReadOnlyTransaction(operationalData, configDataTree.takeSnapshot());
+ return new ReadOnlyTransaction(operationalData, configDataTree.takeSnapshot());
}
@Override
public DOMDataReadWriteTransaction newReadWriteTransaction() {
// todo use the same snapshot
- final VppDataTreeSnapshot configSnapshot = configDataTree.takeSnapshot();
- final DOMDataReadOnlyTransaction readOnlyTx = new VppReadOnlyTransaction(operationalData, configSnapshot);
- final DOMDataWriteTransaction writeOnlyTx = new VppWriteTransaction(configDataTree, configSnapshot);
+ final DataTreeSnapshot configSnapshot = configDataTree.takeSnapshot();
+ final DOMDataReadOnlyTransaction readOnlyTx = new ReadOnlyTransaction(operationalData, configSnapshot);
+ final DOMDataWriteTransaction writeOnlyTx = new WriteTransaction(configDataTree, configSnapshot);
return new ReadWriteTransaction(readOnlyTx, writeOnlyTx);
}
@Override
public DOMDataWriteTransaction newWriteOnlyTransaction() {
- return new VppWriteTransaction(configDataTree);
+ return new WriteTransaction(configDataTree);
}
@Override
for (final DataContainerChild<? extends YangInstanceIdentifier.PathArgument, ?> child : children) {
final YangInstanceIdentifier.PathArgument pathArgument = child.getIdentifier();
final YangInstanceIdentifier identifier = YangInstanceIdentifier.create(pathArgument);
- LOG.debug("VppConfigDataProxy.extractDataObject() child={}, pathArgument={}, identifier={}", child,
+ LOG.debug("DataTreeUtils.childrenFromNormalized() child={}, pathArgument={}, identifier={}", child,
pathArgument, identifier);
final Map.Entry<InstanceIdentifier<?>, DataObject> entry = serializer.fromNormalizedNode(identifier, child);
import com.google.common.collect.Multimap;
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
import io.fd.honeycomb.v3po.translate.Context;
import io.fd.honeycomb.v3po.translate.read.ReadContext;
import io.fd.honeycomb.v3po.translate.read.ReadFailedException;
import org.slf4j.LoggerFactory;
/**
- * ReadableVppDataTree implementation for operational data.
+ * ReadableDataTree implementation for operational data.
*/
-public final class VppOperationalDataTree implements ReadableVppDataTree {
- private static final Logger LOG = LoggerFactory.getLogger(VppOperationalDataTree.class);
+public final class OperationalDataTree implements ReadableDataTree {
+ private static final Logger LOG = LoggerFactory.getLogger(OperationalDataTree.class);
private final BindingNormalizedNodeSerializer serializer;
private final ReaderRegistry readerRegistry;
* @param serializer service for serialization between Java Binding Data representation and NormalizedNode
* representation.
* @param globalContext service for obtaining top level context data from all yang modules.
- * @param readerRegistry service responsible for translation between DataObjects and VPP APIs.
+ * @param readerRegistry service responsible for translation between DataObjects and data provider.
*/
- public VppOperationalDataTree(@Nonnull BindingNormalizedNodeSerializer serializer,
- @Nonnull final SchemaContext globalContext, @Nonnull ReaderRegistry readerRegistry) {
+ public OperationalDataTree(@Nonnull BindingNormalizedNodeSerializer serializer,
+ @Nonnull final SchemaContext globalContext, @Nonnull ReaderRegistry readerRegistry) {
this.globalContext = checkNotNull(globalContext, "serializer should not be null");
this.serializer = checkNotNull(serializer, "serializer should not be null");
this.readerRegistry = checkNotNull(readerRegistry, "reader should not be null");
private Optional<NormalizedNode<?, ?>> readNode(final YangInstanceIdentifier yangInstanceIdentifier,
final ReadContext ctx)
throws ReadFailedException {
- LOG.debug("VppOperationalDataTree.readNode(), yangInstanceIdentifier={}", yangInstanceIdentifier);
+ LOG.debug("OperationalDataTree.readNode(), yangInstanceIdentifier={}", yangInstanceIdentifier);
final InstanceIdentifier<?> path = serializer.fromYangInstanceIdentifier(yangInstanceIdentifier);
checkNotNull(path, "Invalid instance identifier %s. Cannot create BA equivalent.", yangInstanceIdentifier);
- LOG.debug("VppOperationalDataTree.readNode(), path={}", path);
+ LOG.debug("OperationalDataTree.readNode(), path={}", path);
final Optional<? extends DataObject> dataObject;
}
private Optional<NormalizedNode<?, ?>> readRoot(final ReadContext ctx) throws ReadFailedException {
- LOG.debug("VppOperationalDataTree.readRoot()");
+ LOG.debug("OperationalDataTree.readRoot()");
final DataContainerNodeAttrBuilder<YangInstanceIdentifier.NodeIdentifier, ContainerNode> dataNodeBuilder =
Builders.containerBuilder()
return new Function<DataObject, NormalizedNode<?, ?>>() {
@Override
public NormalizedNode<?, ?> apply(@Nullable final DataObject dataObject) {
- LOG.trace("VppOperationalDataTree.toNormalizedNode(), path={}, dataObject={}", path, dataObject);
+ LOG.trace("OperationalDataTree.toNormalizedNode(), path={}, dataObject={}", path, dataObject);
final Map.Entry<YangInstanceIdentifier, NormalizedNode<?, ?>> entry =
serializer.toNormalizedNode(path, dataObject);
- LOG.trace("VppOperationalDataTree.toNormalizedNode(), normalizedNodeEntry={}", entry);
+ LOG.trace("OperationalDataTree.toNormalizedNode(), normalizedNodeEntry={}", entry);
return entry.getValue();
}
};
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-final class VppReadOnlyTransaction implements DOMDataReadOnlyTransaction {
+final class ReadOnlyTransaction implements DOMDataReadOnlyTransaction {
- private static final Logger LOG = LoggerFactory.getLogger(VppReadOnlyTransaction.class);
- private volatile ReadableVppDataTree operationalData;
- private volatile VppDataTreeSnapshot configSnapshot;
+ private static final Logger LOG = LoggerFactory.getLogger(ReadOnlyTransaction.class);
+ private volatile ReadableDataTree operationalData;
+ private volatile DataTreeSnapshot configSnapshot;
- VppReadOnlyTransaction(@Nonnull final ReadableVppDataTree operationalData,
- @Nonnull final VppDataTreeSnapshot configSnapshot) {
+ ReadOnlyTransaction(@Nonnull final ReadableDataTree operationalData,
+ @Nonnull final DataTreeSnapshot configSnapshot) {
this.operationalData = Preconditions.checkNotNull(operationalData, "operationalData should not be null");
this.configSnapshot = Preconditions.checkNotNull(configSnapshot, "config should not be null");
}
public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(
final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
- LOG.debug("VppReadOnlyTransaction.read(), store={}, path={}", store, path);
+ LOG.debug("ReadOnlyTransaction.read(), store={}, path={}", store, path);
Preconditions.checkState(configSnapshot != null, "Transaction was closed");
@Override
public CheckedFuture<Boolean, ReadFailedException> exists(final LogicalDatastoreType store,
final YangInstanceIdentifier path) {
- LOG.debug("VppReadOnlyTransaction.exists() store={}, path={}", store, path);
+ LOG.debug("ReadOnlyTransaction.exists() store={}, path={}", store, path);
ListenableFuture<Boolean> listenableFuture = Futures.transform(read(store, path), IS_NODE_PRESENT);
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import io.fd.honeycomb.v3po.data.VppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ModifiableDataTree;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import io.fd.honeycomb.v3po.translate.TranslationException;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.NotThreadSafe;
import org.slf4j.LoggerFactory;
@NotThreadSafe
-final class VppWriteTransaction implements DOMDataWriteTransaction {
+final class WriteTransaction implements DOMDataWriteTransaction {
- private static final Logger LOG = LoggerFactory.getLogger(VppWriteTransaction.class);
- private final VppDataTree configDataTree;
+ private static final Logger LOG = LoggerFactory.getLogger(WriteTransaction.class);
+ private final ModifiableDataTree configDataTree;
private DataTreeModification modification;
private TransactionStatus status;
- VppWriteTransaction(@Nonnull final VppDataTree configDataTree,
- @Nonnull final VppDataTreeSnapshot configSnapshot) {
+ WriteTransaction(@Nonnull final ModifiableDataTree configDataTree,
+ @Nonnull final DataTreeSnapshot configSnapshot) {
this.configDataTree = Preconditions.checkNotNull(configDataTree, "configDataTree should not be null");
Preconditions.checkNotNull(configSnapshot, "configSnapshot should not be null");
// initialize transaction state:
status = NEW;
}
- VppWriteTransaction(@Nonnull final VppDataTree configDataTree) {
+ WriteTransaction(@Nonnull final ModifiableDataTree configDataTree) {
this(configDataTree, configDataTree.takeSnapshot());
}
private void checkIsNew() {
Preconditions.checkState(status == NEW, "Transaction was submitted or canceled");
- Preconditions.checkState(modification != null, "VPPDataTree modification should not be null");
+ Preconditions.checkState(modification != null, "DataTree modification should not be null");
}
@Override
public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path,
final NormalizedNode<?, ?> data) {
- LOG.debug("VppWriteTransaction.put() store={}, path={}, data={}", store, path, data);
+ LOG.debug("WriteTransaction.put() store={}, path={}, data={}", store, path, data);
checkIsNew();
checkConfigurationWrite(store);
modification.write(path, data);
@Override
public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path,
final NormalizedNode<?, ?> data) {
- LOG.debug("VppWriteTransaction.merge() store={}, path={}, data={}", store, path, data);
+ LOG.debug("WriteTransaction.merge() store={}, path={}, data={}", store, path, data);
checkIsNew();
checkConfigurationWrite(store);
modification.merge(path, data);
@Override
public void delete(LogicalDatastoreType store, final YangInstanceIdentifier path) {
- LOG.debug("VppWriteTransaction.delete() store={}, path={}", store, path);
+ LOG.debug("WriteTransaction.delete() store={}, path={}", store, path);
checkIsNew();
checkConfigurationWrite(store);
modification.delete(path);
@Override
public CheckedFuture<Void, TransactionCommitFailedException> submit() {
- LOG.debug("VppWriteTransaction.submit()");
+ LOG.debug("WriteTransaction.submit()");
checkIsNew();
// seal transaction:
status = SUBMITED;
try {
- configDataTree.commit(modification);
+ configDataTree.modify(modification);
status = COMMITED;
} catch (DataValidationFailedException | TranslationException e) {
status = FAILED;
- LOG.error("Failed to commit VPP state modification", e);
+ LOG.error("Failed modify data tree", e);
return Futures.immediateFailedCheckedFuture(
new TransactionCommitFailedException("Failed to validate DataTreeModification", e));
} finally {
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import io.fd.honeycomb.v3po.translate.TranslationException;
import io.fd.honeycomb.v3po.translate.write.WriteContext;
import io.fd.honeycomb.v3po.translate.write.WriterRegistry;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
-public class VPPConfigDataTreeTest {
+public class ConfigDataTreeTest {
@Mock
- private WriterRegistry vppWriter;
+ private WriterRegistry writer;
@Mock
private BindingNormalizedNodeSerializer serializer;
@Mock
@Mock
private DataTreeModification modification;
- private VppConfigDataTree proxy;
+ private ConfigDataTree configDataTree;
@Before
public void setUp() {
initMocks(this);
- proxy = new VppConfigDataTree(serializer, dataTree, vppWriter);
+ configDataTree = new ConfigDataTree(serializer, dataTree, writer);
}
@Test
public void testRead() throws Exception {
- final DataTreeSnapshot snapshot = mock(DataTreeSnapshot.class);
+ final org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot
+ snapshot = mock(org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot.class);
when(dataTree.takeSnapshot()).thenReturn(snapshot);
final YangInstanceIdentifier path = mock(YangInstanceIdentifier.class);
final Optional node = mock(Optional.class);
doReturn(node).when(snapshot).readNode(path);
- final VppDataTreeSnapshot vppDataTreeSnapshot = proxy.takeSnapshot();
+ final DataTreeSnapshot dataTreeSnapshot = configDataTree.takeSnapshot();
final CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> future =
- vppDataTreeSnapshot.read(path);
+ dataTreeSnapshot.read(path);
verify(dataTree).takeSnapshot();
verify(snapshot).readNode(path);
@Test
public void testNewModification() throws Exception {
- final DataTreeSnapshot snapshot = mock(DataTreeSnapshot.class);
+ final org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot
+ snapshot = mock(org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot.class);
when(dataTree.takeSnapshot()).thenReturn(snapshot);
when(snapshot.newModification()).thenReturn(modification);
- final VppDataTreeSnapshot vppDataTreeSnapshot = proxy.takeSnapshot();
- final DataTreeModification newModification = vppDataTreeSnapshot.newModification();
+ final DataTreeSnapshot dataTreeSnapshot = configDataTree.takeSnapshot();
+ final DataTreeModification newModification = dataTreeSnapshot.newModification();
verify(dataTree).takeSnapshot();
verify(snapshot).newModification();
when(rootNode.getDataAfter()).thenReturn(Optional.<NormalizedNode<?, ?>>fromNullable(nodeAfter));
// Run the test
- proxy.commit(modification);
+ configDataTree.modify(modification);
// Verify all changes were processed:
- verify(vppWriter).update(
+ verify(writer).update(
mapOf(dataBefore, Ethernet.class),
mapOf(dataAfter, Ethernet.class),
any(WriteContext.class));
// Fail on update:
final TranslationException failedOnUpdateException = new TranslationException("update failed");
doThrow(new io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException(InstanceIdentifier.create(Ethernet.class), reverter,
- failedOnUpdateException)).when(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class));
+ failedOnUpdateException)).when(writer).update(anyMap(), anyMap(), any(WriteContext.class));
// Prepare modification:
final DataTreeCandidateNode rootNode = mockRootNode();
// Run the test
try {
- proxy.commit(modification);
+ configDataTree.modify(modification);
} catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException e) {
- verify(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class));
+ verify(writer).update(anyMap(), anyMap(), any(WriteContext.class));
verify(reverter).revert();
assertEquals(failedOnUpdateException, e.getCause());
return;
// Fail on update:
doThrow(new io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException(InstanceIdentifier.create(Ethernet.class), reverter,
- new TranslationException("update failed"))).when(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class));
+ new TranslationException("update failed"))).when(writer).update(anyMap(), anyMap(), any(WriteContext.class));
// Fail on revert:
final TranslationException failedOnRevertException = new TranslationException("update failed");
// Run the test
try {
- proxy.commit(modification);
+ configDataTree.modify(modification);
} catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.RevertFailedException e) {
- verify(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class));
+ verify(writer).update(anyMap(), anyMap(), any(WriteContext.class));
verify(reverter).revert();
assertEquals(failedOnRevertException, e.getCause());
return;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
+import io.fd.honeycomb.v3po.data.ModifiableDataTree;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-public class VppDataBrokerTest {
+public class DataBrokerTest {
@Mock
- private ReadableVppDataTree operationalData;
+ private ReadableDataTree operationalData;
@Mock
- private VppDataTree confiDataTree;
+ private ModifiableDataTree confiDataTree;
@Mock
- private VppDataTreeSnapshot configSnapshot;
- private VppDataBroker broker;
+ private DataTreeSnapshot configSnapshot;
+ private DataBroker broker;
@Before
public void setUp() {
initMocks(this);
when(confiDataTree.takeSnapshot()).thenReturn(configSnapshot);
- broker = new VppDataBroker(operationalData, confiDataTree);
+ broker = new DataBroker(operationalData, confiDataTree);
}
@Test
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-public class VppOperationalDataTreeTest {
+public class OperationalDataTreeTest {
@Mock
private BindingNormalizedNodeSerializer serializer;
@Mock
private ReaderRegistry reader;
- private VppOperationalDataTree operationalData;
+ private OperationalDataTree operationalData;
@Mock
private InstanceIdentifier<DataObject> id;
@Before
public void setUp() {
initMocks(this);
- operationalData = new VppOperationalDataTree(serializer, globalContext, reader);
+ operationalData = new OperationalDataTree(serializer, globalContext, reader);
doReturn(schemaNode).when(globalContext).getDataChildByName(any(QName.class));
}
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-public class VppReadOnlyTransactionTest {
+public class ReadOnlyTransactionTest {
@Mock
- private ReadableVppDataTree operationalData;
+ private ReadableDataTree operationalData;
@Mock
- private VppDataTreeSnapshot configSnapshot;
+ private DataTreeSnapshot configSnapshot;
- private VppReadOnlyTransaction readOnlyTx;
+ private ReadOnlyTransaction readOnlyTx;
@Before
public void setUp() {
initMocks(this);
- readOnlyTx = new VppReadOnlyTransaction(operationalData, configSnapshot);
+ readOnlyTx = new ReadOnlyTransaction(operationalData, configSnapshot);
}
@Test
import static org.mockito.MockitoAnnotations.initMocks;
import com.google.common.util.concurrent.CheckedFuture;
-import io.fd.honeycomb.v3po.data.VppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTreeSnapshot;
+import io.fd.honeycomb.v3po.data.ModifiableDataTree;
+import io.fd.honeycomb.v3po.data.DataTreeSnapshot;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-public class VppWriteTransactionTest {
+public class WriteTransactionTest {
@Mock
- private VppDataTree configDataTree;
+ private ModifiableDataTree configDataTree;
@Mock
- private VppDataTreeSnapshot configSnapshot;
+ private DataTreeSnapshot configSnapshot;
@Mock
private YangInstanceIdentifier path;
@Mock
@Mock
private DataTreeModification dataTreeModification;
- private VppWriteTransaction writeTx;
+ private WriteTransaction writeTx;
@Before
public void setUp() {
initMocks(this);
when(configSnapshot.newModification()).thenReturn(dataTreeModification);
- writeTx = new VppWriteTransaction(configDataTree, configSnapshot);
+ writeTx = new WriteTransaction(configDataTree, configSnapshot);
}
@Test
public void testSubmit() throws Exception {
writeTx.submit();
verify(dataTreeModification).ready();
- verify(configDataTree).commit(dataTreeModification);
+ verify(configDataTree).modify(dataTreeModification);
}
@Test
public void testSubmitFailed() throws Exception {
- doThrow(mock(DataValidationFailedException.class)).when(configDataTree).commit(dataTreeModification);
+ doThrow(mock(DataValidationFailedException.class)).when(configDataTree).modify(dataTreeModification);
final CheckedFuture<Void, TransactionCommitFailedException> future = writeTx.submit();
try {
future.get();
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import io.fd.honeycomb.v3po.config.WriterRegistry;
-import io.fd.honeycomb.v3po.data.ReadableVppDataTree;
-import io.fd.honeycomb.v3po.data.VppDataTree;
-import io.fd.honeycomb.v3po.data.impl.VppConfigDataTree;
-import io.fd.honeycomb.v3po.data.impl.VppDataBroker;
-import io.fd.honeycomb.v3po.data.impl.VppOperationalDataTree;
+import io.fd.honeycomb.v3po.data.ModifiableDataTree;
+import io.fd.honeycomb.v3po.data.ReadableDataTree;
+import io.fd.honeycomb.v3po.data.impl.ConfigDataTree;
+import io.fd.honeycomb.v3po.data.impl.OperationalDataTree;
+import io.fd.honeycomb.v3po.data.impl.DataBroker;
import io.fd.honeycomb.v3po.translate.read.ReaderRegistry;
import java.util.Collection;
import java.util.Collections;
import javassist.ClassPool;
import javax.annotation.Nonnull;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
private final TopologyId VPP_TOPOLOGY_ID = TopologyId.getDefaultInstance("vpp-topology");
private final NodeId VPP_TOPOLOGY_NODE_ID = NodeId.getDefaultInstance("vpp");
- private final DataBroker bindingBroker;
+ private final org.opendaylight.controller.md.sal.binding.api.DataBroker bindingBroker;
private final ReaderRegistry readerRegistry;
private final InstanceIdentifier<Node> mountPointPath;
private final WriterRegistry writerRegistry;
private ObjectRegistration<DOMMountPoint> mountPointRegistration;
private DOMDataBroker broker;
- public VppDataBrokerInitializationProvider(@Nonnull final DataBroker bindingBroker,
+ public VppDataBrokerInitializationProvider(@Nonnull final org.opendaylight.controller.md.sal.binding.api.DataBroker bindingBroker,
final ReaderRegistry readerRegistry,
final WriterRegistry writerRegistry) {
this.bindingBroker = checkNotNull(bindingBroker, "bindingBroker should not be null");
private DOMDataBroker initVppDataBroker(final SchemaContext globalContext,
final BindingNormalizedNodeSerializer serializer) {
- final ReadableVppDataTree operationalData =
- new VppOperationalDataTree(serializer, globalContext, readerRegistry); // TODO make configurable
+ final ReadableDataTree operationalData =
+ new OperationalDataTree(serializer, globalContext, readerRegistry); // TODO make configurable
final DataTree dataTree =
InMemoryDataTreeFactory.getInstance().create(TreeType.CONFIGURATION); // TODO make configurable
dataTree.setSchemaContext(globalContext);
- final VppDataTree configDataProxy = new VppConfigDataTree(serializer, dataTree, writerRegistry); // TODO make configurable
- return new VppDataBroker(operationalData, configDataProxy);
+ final ModifiableDataTree configDataProxy =
+ new ConfigDataTree(serializer, dataTree, writerRegistry); // TODO make configurable
+ return new DataBroker(operationalData, configDataProxy);
}
/**
final DOMDataReadOnlyTransaction readTx = broker.newReadOnlyTransaction();
final YangInstanceIdentifier
- id = YangInstanceIdentifier.builder().node(VppState.QNAME).node(BridgeDomains.QNAME).build();
+ id = YangInstanceIdentifier.builder().node(VppState.QNAME).node(BridgeDomains.QNAME).build();
LOG.trace("initialVppStateSynchronization id: {}", id);