AclServiceUtils.buildServiceId(interfaceName, serviceIndex, ServiceModeIngress.class);
WriteTransaction writeTxn = dataBroker.newWriteOnlyTransaction();
- writeTxn.put(LogicalDatastoreType.CONFIGURATION, path, serviceInfo, true);
+ writeTxn.put(LogicalDatastoreType.CONFIGURATION, path, serviceInfo,
+ WriteTransaction.CREATE_MISSING_PARENTS);
- List<ListenableFuture<Void>> futures = new ArrayList<>();
- futures.add(writeTxn.submit());
- return futures;
+ return Collections.singletonList(writeTxn.submit());
});
}
import com.google.common.util.concurrent.ListenableFuture;
import java.math.BigInteger;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
NwConstants.EGRESS_ACL_SERVICE_INDEX), ServiceModeEgress.class);
WriteTransaction writeTxn = dataBroker.newWriteOnlyTransaction();
- writeTxn.put(LogicalDatastoreType.CONFIGURATION, path, serviceInfo, true);
+ writeTxn.put(LogicalDatastoreType.CONFIGURATION, path, serviceInfo,
+ WriteTransaction.CREATE_MISSING_PARENTS);
- List<ListenableFuture<Void>> futures = new ArrayList<>();
- futures.add(writeTxn.submit());
- return futures;
+ return Collections.singletonList(writeTxn.submit());
});
}
public <T extends DataObject> void put(LogicalDatastoreType type, Pair<InstanceIdentifier<T>, T> pair)
throws TransactionCommitFailedException {
- tx.put(type, pair.getKey(), pair.getValue(), true);
+ tx.put(type, pair.getKey(), pair.getValue(), WriteTransaction.CREATE_MISSING_PARENTS);
}
public <T extends DataObject> void put(Pair<DataTreeIdentifier<T>, T> pair)
throws TransactionCommitFailedException {
- tx.put(pair.getKey().getDatastoreType(), pair.getKey().getRootIdentifier(), pair.getValue(), true);
+ tx.put(pair.getKey().getDatastoreType(), pair.getKey().getRootIdentifier(), pair.getValue(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
public <T extends DataObject> void put(DataTreeIdentifierDataObjectPairBuilder<T> builder)
.setVpnLportTag(vpnPseudoLportTag).build();
LOG.trace("Adding lportTag={} to VpnToLportTag map for VPN with rd={}", vpnPseudoLportTag, vpnRd);
InstanceIdentifier<VpnToPseudoPortData> path = VpnServiceChainUtils.getVpnToPseudoPortTagIid(vpnRd);
- writeTxn.put(LogicalDatastoreType.CONFIGURATION, path, newValue, true);
+ writeTxn.put(LogicalDatastoreType.CONFIGURATION, path, newValue, WriteTransaction.CREATE_MISSING_PARENTS);
return Collections.singletonList(writeTxn.submit());
}
serviceIndex, DhcpMConstants.DEFAULT_FLOW_PRIORITY,
DhcpMConstants.COOKIE_VM_INGRESS_TABLE, instructions);
tx.put(LogicalDatastoreType.CONFIGURATION,
- buildServiceId(interfaceName, serviceIndex), serviceInfo, true);
+ buildServiceId(interfaceName, serviceIndex), serviceInfo, WriteTransaction.CREATE_MISSING_PARENTS);
}
public static void unbindDhcpService(String interfaceName, WriteTransaction tx) {
Optional<BoundServices> existingElanService = elanUtils.read(broker, LogicalDatastoreType.CONFIGURATION,
bindServiceId);
if (!existingElanService.isPresent()) {
- tx.put(LogicalDatastoreType.CONFIGURATION, bindServiceId, serviceInfo, true);
+ tx.put(LogicalDatastoreType.CONFIGURATION, bindServiceId, serviceInfo,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
}
DpnInterfaces dpnInterface = new DpnInterfacesBuilder().setDpId(dpId).setInterfaces(interfaceNames)
.setKey(new DpnInterfacesKey(dpId)).build();
tx.put(LogicalDatastoreType.OPERATIONAL,
- ElanUtils.getElanDpnInterfaceOperationalDataPath(elanInstanceName, dpId), dpnInterface, true);
+ ElanUtils.getElanDpnInterfaceOperationalDataPath(elanInstanceName, dpId), dpnInterface,
+ WriteTransaction.CREATE_MISSING_PARENTS);
return dpnInterface;
}
DpnInterfaces dpnInterface = new DpnInterfacesBuilder().setDpId(dpId).setInterfaces(interfaceNames)
.setKey(new DpnInterfacesKey(dpId)).build();
tx.put(LogicalDatastoreType.OPERATIONAL,
- ElanUtils.getElanDpnInterfaceOperationalDataPath(elanInstanceName, dpId), dpnInterface, true);
+ ElanUtils.getElanDpnInterfaceOperationalDataPath(elanInstanceName, dpId), dpnInterface,
+ WriteTransaction.CREATE_MISSING_PARENTS);
return dpnInterface;
}
.setKey(new ElanInterfaceMacKey(interfaceName)).build();
tx.put(LogicalDatastoreType.OPERATIONAL,
ElanUtils.getElanInterfaceMacEntriesOperationalDataPath(interfaceName), elanInterfaceMacTable,
- true);
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
}
Elan elanState = new ElanBuilder().setName(elanInstanceName).setElanInterfaces(interfaceLists)
.setKey(new ElanKey(elanInstanceName)).build();
tx.put(LogicalDatastoreType.OPERATIONAL, ElanUtils.getElanInstanceOperationalDataPath(elanInstanceName),
- elanState, true);
+ elanState, WriteTransaction.CREATE_MISSING_PARENTS);
}
}
package org.opendaylight.netvirt.elan.internal;
import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
import java.math.BigInteger;
-import java.util.ArrayList;
import java.util.Collections;
-import java.util.List;
import org.opendaylight.controller.liblldp.NetUtils;
import org.opendaylight.controller.liblldp.PacketException;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
if (!isVlanOrFlatProviderIface && oldMacEntry == null) {
InstanceIdentifier<MacEntry> elanMacEntryId =
ElanUtils.getMacEntryOperationalDataPath(elanName, physAddress);
- writeTx.put(LogicalDatastoreType.OPERATIONAL, elanMacEntryId, newMacEntry, true);
+ writeTx.put(LogicalDatastoreType.OPERATIONAL, elanMacEntryId, newMacEntry,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
- List<ListenableFuture<Void>> futures = new ArrayList<>();
- futures.add(writeTx.submit());
- return futures;
+ return Collections.singletonList(writeTx.submit());
});
}
macAddress, !isVlanOrFlatProviderIface, flowWritetx);
InstanceIdentifier<MacEntry> macEntryId =
ElanUtils.getInterfaceMacEntriesIdentifierOperationalDataPath(interfaceName, physAddress);
- flowWritetx.put(LogicalDatastoreType.OPERATIONAL, macEntryId, newMacEntry, true);
- List<ListenableFuture<Void>> futures = new ArrayList<>();
- futures.add(flowWritetx.submit());
- return futures;
+ flowWritetx.put(LogicalDatastoreType.OPERATIONAL, macEntryId, newMacEntry,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ return Collections.singletonList(flowWritetx.submit());
});
}
import java.util.Objects;
import java.util.stream.Collectors;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet;
T transformedItem = transform(nodePath, addedItem);
String nodeId = transformedId.firstKeyOf(Node.class).getNodeId().getValue();
LOG.trace("adding {} {} {}", getDescription(), nodeId, getKey(transformedItem));
- tx.put(datastoreType, transformedId, transformedItem, true);
+ tx.put(datastoreType, transformedId, transformedItem, WriteTransaction.CREATE_MISSING_PARENTS);
}
}
List<T> removed = new ArrayList<>(orig);
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
globalNodeMerger.mergeConfigData(nodeBuilder, srcNode, childPath);
nodeBuilder.addAugmentation(HwvtepGlobalAugmentation.class, dstBuilder.build());
Node dstNode = nodeBuilder.build();
- tx.put(CONFIGURATION, childPath, dstNode, true);
+ tx.put(CONFIGURATION, childPath, dstNode, WriteTransaction.CREATE_MISSING_PARENTS);
}
/**
childPsBuilder.addAugmentation(PhysicalSwitchAugmentation.class, dstBuilder.build());
Node childPSNode = childPsBuilder.build();
- tx.put(CONFIGURATION, childPsPath, childPSNode, true);
+ tx.put(CONFIGURATION, childPsPath, childPSNode, WriteTransaction.CREATE_MISSING_PARENTS);
}
/**
MacEntry macEntry = new MacEntryBuilder().setMacAddress(mac.getMacAddress()).setIpPrefix(mac.getIpPrefix())
.setInterface(interfaceName)
.setIsStaticAddress(true).setKey(new MacEntryKey(mac.getMacAddress())).build();
- tx.put(LogicalDatastoreType.OPERATIONAL, existingMacEntryId, macEntry, true);
+ tx.put(LogicalDatastoreType.OPERATIONAL, existingMacEntryId, macEntry,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
}
macEntry.getMacAddress());
Optional<MacEntry> existingMacEntry = elanUtils.read(broker, LogicalDatastoreType.OPERATIONAL, macEntryId);
if (!existingMacEntry.isPresent() && elanUtils.getElanMacTable(elanName) != null) {
- tx.put(LogicalDatastoreType.OPERATIONAL, macEntryId, macEntry, true);
+ tx.put(LogicalDatastoreType.OPERATIONAL, macEntryId, macEntry, WriteTransaction.CREATE_MISSING_PARENTS);
}
}
// Add the ElanState in the elan-state operational data-store
tx.put(LogicalDatastoreType.OPERATIONAL, getElanInstanceOperationalDataPath(elanInstanceName),
- elanInfo, true);
+ elanInfo, WriteTransaction.CREATE_MISSING_PARENTS);
// Add the ElanMacTable in the elan-mac-table operational data-store
MacTable elanMacTable = new MacTableBuilder().setKey(new MacTableKey(elanInstanceName)).build();
tx.put(LogicalDatastoreType.OPERATIONAL, getElanMacTableOperationalDataPath(elanInstanceName),
- elanMacTable, true);
+ elanMacTable, WriteTransaction.CREATE_MISSING_PARENTS);
ElanTagNameBuilder elanTagNameBuilder = new ElanTagNameBuilder().setElanTag(elanTag)
.setKey(new ElanTagNameKey(elanTag)).setName(elanInstanceName);
return serviceInfo;
}
- public static <T extends DataObject> void syncWrite(DataBroker broker, LogicalDatastoreType datastoreType,
- InstanceIdentifier<T> path, T data) {
- WriteTransaction tx = broker.newWriteOnlyTransaction();
- tx.put(datastoreType, path, data, true);
- CheckedFuture<Void, TransactionCommitFailedException> futures = tx.submit();
- try {
- futures.get();
- } catch (InterruptedException | ExecutionException e) {
- LOG.error("Error writing to datastore (path, data) : ({}, {})", path, data);
- throw new RuntimeException(e.getMessage());
- }
- }
-
public static BoundServices getBoundServices(String serviceName, short servicePriority, int flowPriority,
BigInteger cookie, List<Instruction> instructions) {
StypeOpenflowBuilder augBuilder = new StypeOpenflowBuilder().setFlowCookie(cookie).setFlowPriority(flowPriority)
import org.mockito.Mockito;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
originalData = getData(new LogicalSwitches[]{logicalSwitches[0], logicalSwitches[1]});
updatedData = getData(new LogicalSwitches[]{logicalSwitches[0], logicalSwitches[1], logicalSwitches[2]});
cmd.mergeOpUpdate(existingData, updatedData, originalData, haNodePath, tx);
- Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[2], logicalSwitches[2], true);
+ Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[2], logicalSwitches[2],
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
@Test
updatedData = getData(new LogicalSwitches[]{logicalSwitches[0],
logicalSwitches[1], logicalSwitches[2], logicalSwitches[3]});
cmd.mergeOpUpdate(existingData, updatedData, originalData, haNodePath, tx);
- Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[2], logicalSwitches[2], true);
- Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[3], logicalSwitches[3], true);
+ Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[2], logicalSwitches[2],
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[3], logicalSwitches[3],
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
@Test
originalData = getData(new LogicalSwitches[]{logicalSwitches[0], logicalSwitches[1]});
updatedData = getData(new LogicalSwitches[]{logicalSwitches[2], logicalSwitches[3]});
cmd.mergeOpUpdate(existingData, updatedData, originalData, haNodePath, tx);
- Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[2], logicalSwitches[2], true);
- Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[3], logicalSwitches[3], true);
+ Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[2], logicalSwitches[2],
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ Mockito.verify(tx).put(LogicalDatastoreType.OPERATIONAL, ids[3], logicalSwitches[3],
+ WriteTransaction.CREATE_MISSING_PARENTS);
Mockito.verify(tx).delete(LogicalDatastoreType.OPERATIONAL, ids[0]);
Mockito.verify(tx).delete(LogicalDatastoreType.OPERATIONAL, ids[1]);
}
if (nextHopAdd) {
RoutePaths routePaths = FibHelper.buildRoutePath(nextHop, label);
if (writeConfigTxn != null) {
- writeConfigTxn.put(LogicalDatastoreType.CONFIGURATION, routePathId, routePaths, true);
+ writeConfigTxn.put(LogicalDatastoreType.CONFIGURATION, routePathId, routePaths,
+ WriteTransaction.CREATE_MISSING_PARENTS);
} else {
MDSALUtil.syncWrite(broker, LogicalDatastoreType.CONFIGURATION, routePathId, routePaths);
}
.child(Node.class, nodeDpn.getKey()).augmentation(FlowCapableNode.class)
.child(Table.class, new TableKey(terminatingServiceTableFlowEntity.getTableId()))
.child(Flow.class, flowKey).build();
- tx.put(LogicalDatastoreType.CONFIGURATION, flowInstanceId, flowbld.build(), true);
+ tx.put(LogicalDatastoreType.CONFIGURATION, flowInstanceId, flowbld.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
private void removeTunnelTableEntry(BigInteger dpId, long label, WriteTransaction tx) {
.child(Table.class, new TableKey(flow.getTableId())).child(Flow.class, flowKey).build();
if (addOrRemove == NwConstants.ADD_FLOW) {
- tx.put(LogicalDatastoreType.CONFIGURATION, flowInstanceId, flow, true);
+ tx.put(LogicalDatastoreType.CONFIGURATION, flowInstanceId, flow, WriteTransaction.CREATE_MISSING_PARENTS);
} else {
tx.delete(LogicalDatastoreType.CONFIGURATION, flowInstanceId);
}
WriteTransaction writeOperTxn = dataBroker.newWriteOnlyTransaction();
LOG.debug("NAT Service : Add vpnInterface {} to Operational l3vpn:vpn-interfaces ", floatingIpInterface);
- writeOperTxn.put(LogicalDatastoreType.OPERATIONAL, vpnIfIdentifier, vpnIfBuilder.build(), true);
- if (writeOperTxn != null) {
- writeOperTxn.submit();
- }
+ writeOperTxn.put(LogicalDatastoreType.OPERATIONAL, vpnIfIdentifier, vpnIfBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ writeOperTxn.submit();
} else {
LOG.debug("NAT Service : No vpnInterface {} found in Configuration l3vpn:vpn-interfaces ",
floatingIpInterface);
VpnToDpnListBuilder vpnToDpnListBuilder = new VpnToDpnListBuilder(vpnToDpnList);
vpnToDpnListBuilder.setDpnState(VpnToDpnList.DpnState.Active).setVpnInterfaces(vpnInterfaces);
- writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(), true);
+ writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
/* If earlier state was inactive, it is considered new DPN coming back to the
* same VPN
*/
VpnToDpnListBuilder vpnToDpnListBuilder = new VpnToDpnListBuilder().setDpnId(dpnId);
vpnToDpnListBuilder.setDpnState(VpnToDpnList.DpnState.Active).setVpnInterfaces(vpnInterfaces);
- writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(), true);
+ writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
newDpnOnVpn = Boolean.TRUE;
}
}
LOG.warn("vpn interfaces are empty but ip addresses are present for the vpn {} in dpn {}",
vpnName, dpnId);
}
- writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, dpnInVpnBuilder.build(), true);
+ writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, dpnInVpnBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
} else {
writeTxn.delete(LogicalDatastoreType.OPERATIONAL, id.child(org.opendaylight.yang.gen.v1.urn
InstanceIdentifier<T> path, T data, DataBroker broker,
FutureCallback<Void> callback) {
WriteTransaction tx = broker.newWriteOnlyTransaction();
- tx.put(datastoreType, path, data, true);
+ tx.put(datastoreType, path, data, WriteTransaction.CREATE_MISSING_PARENTS);
Futures.addCallback(tx.submit(), callback);
}
.child(Flow.class, flow.getKey())
.build();
- tx.put(LogicalDatastoreType.CONFIGURATION, iidFlow, flow, true);
+ tx.put(LogicalDatastoreType.CONFIGURATION, iidFlow, flow, WriteTransaction.CREATE_MISSING_PARENTS);
}
public void appendFlowForDelete(NodeId node, Flow flow, WriteTransaction tx) {
final LogicalDatastoreType logicalDatastoreType, final InstanceIdentifier<D> path, D data) {
boolean result = false;
final WriteTransaction transaction = databroker.newWriteOnlyTransaction();
- transaction.put(logicalDatastoreType, path, data, true);
+ transaction.put(logicalDatastoreType, path, data, WriteTransaction.CREATE_MISSING_PARENTS);
CheckedFuture<Void, TransactionCommitFailedException> future = transaction.submit();
try {
future.checkedGet();
final LogicalDatastoreType logicalDatastoreType, final InstanceIdentifier<D> path, D data) {
boolean result = false;
final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
- transaction.put(logicalDatastoreType, path, data, true);
+ transaction.put(logicalDatastoreType, path, data, WriteTransaction.CREATE_MISSING_PARENTS);
CheckedFuture<Void, TransactionCommitFailedException> future = transaction.submit();
try {
future.checkedGet();
IngressElementCountersRequestConfigBuilder ecrcb = new IngressElementCountersRequestConfigBuilder();
ecrcb.setCounterRequests(counterRequests);
requestConfig = ecrcb.build();
- transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, requestConfig, true);
+ transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, requestConfig,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
private void putEgressElementCounterRequestInConfig(AcquireElementCountersRequestHandlerInput input,
EgressElementCountersRequestConfigBuilder ecrcb = new EgressElementCountersRequestConfigBuilder();
ecrcb.setCounterRequests(counterRequests);
requestConfig = ecrcb.build();
- transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, requestConfig, true);
+ transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, requestConfig,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
private void creatIngressEelementCountersContainerInConfig(ReadWriteTransaction transaction,
List<CounterRequests> counterRequests = new ArrayList<CounterRequests>();
iecrcb.setCounterRequests(counterRequests);
IngressElementCountersRequestConfig iecrc = iecrcb.build();
- transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, iecrc, true);
+ transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, iecrc,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
private void creatEgressEelementCountersContainerInConfig(ReadWriteTransaction transaction,
List<CounterRequests> counterRequests = new ArrayList<CounterRequests>();
eecrcb.setCounterRequests(counterRequests);
EgressElementCountersRequestConfig eecrc = eecrcb.build();
- transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, eecrc, true);
+ transaction.put(LogicalDatastoreType.CONFIGURATION, ecrcIdentifier, eecrc,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
private Integer allocateId(String idKey) {
InstanceIdentifier<T> path,
T data, FutureCallback<Void> callback) {
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
- tx.put(datastoreType, path, data, true);
+ tx.put(datastoreType, path, data, WriteTransaction.CREATE_MISSING_PARENTS);
CheckedFuture<Void, TransactionCommitFailedException> futures = tx.submit();
try {
futures.get();
VpnToDpnListBuilder vpnToDpnListBuilder = new VpnToDpnListBuilder(vpnToDpnList);
vpnToDpnListBuilder.setDpnState(VpnToDpnList.DpnState.Active).setVpnInterfaces(vpnInterfaces);
- writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(), true);
+ writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
/* If earlier state was inactive, it is considered new DPN coming back to the
* same VPN
*/
VpnToDpnListBuilder vpnToDpnListBuilder = new VpnToDpnListBuilder().setDpnId(dpnId);
vpnToDpnListBuilder.setDpnState(VpnToDpnList.DpnState.Active).setVpnInterfaces(vpnInterfaces);
- writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(), true);
+ writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, vpnToDpnListBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
newDpnOnVpn = Boolean.TRUE;
}
CheckedFuture<Void, TransactionCommitFailedException> futures = writeTxn.submit();
LOG.warn("vpn interfaces are empty but ip addresses are present for the vpn {} in dpn {}",
vpnName, dpnId);
}
- writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, dpnInVpnBuilder.build(), true);
+ writeTxn.put(LogicalDatastoreType.OPERATIONAL, id, dpnInVpnBuilder.build(),
+ WriteTransaction.CREATE_MISSING_PARENTS);
} else {
writeTxn.delete(LogicalDatastoreType.OPERATIONAL, id.child(VpnInterfaces.class,
if (writeConfigTxn != null) {
writeConfigTxn.put(LogicalDatastoreType.CONFIGURATION,
VpnOperDsUtils.getVpnInstanceToVpnIdIdentifier(vpnInstanceName),
- vpnInstanceToVpnId, true);
+ vpnInstanceToVpnId, WriteTransaction.CREATE_MISSING_PARENTS);
} else {
TransactionUtil.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION,
VpnOperDsUtils.getVpnInstanceToVpnIdIdentifier(vpnInstanceName),
if (writeConfigTxn != null) {
writeConfigTxn.put(LogicalDatastoreType.CONFIGURATION,
VpnUtil.getVpnIdToVpnInstanceIdentifier(vpnId),
- vpnIdToVpnInstance, true);
+ vpnIdToVpnInstance, WriteTransaction.CREATE_MISSING_PARENTS);
} else {
TransactionUtil.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION,
VpnUtil.getVpnIdToVpnInstanceIdentifier(vpnId),
WriteTransaction writeOperTxn) {
VpnInterface opInterface = VpnUtil.getVpnInterface(interfaceName, vpnName, aug, dpnId, Boolean.FALSE);
InstanceIdentifier<VpnInterface> interfaceId = VpnUtil.getVpnInterfaceIdentifier(interfaceName);
- writeOperTxn.put(LogicalDatastoreType.OPERATIONAL, interfaceId, opInterface, true);
+ writeOperTxn.put(LogicalDatastoreType.OPERATIONAL, interfaceId, opInterface,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
// TODO Clean up the exception handling
public static <T extends DataObject> void asyncWrite(DataBroker broker, LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path, T data, FutureCallback<Void> callback) {
WriteTransaction tx = broker.newWriteOnlyTransaction();
- tx.put(datastoreType, path, data, true);
+ tx.put(datastoreType, path, data, WriteTransaction.CREATE_MISSING_PARENTS);
Futures.addCallback(tx.submit(), callback);
}
public static <T extends DataObject> void syncWrite(DataBroker broker, LogicalDatastoreType datastoreType,
InstanceIdentifier<T> path, T data) {
WriteTransaction tx = broker.newWriteOnlyTransaction();
- tx.put(datastoreType, path, data, true);
+ tx.put(datastoreType, path, data, WriteTransaction.CREATE_MISSING_PARENTS);
CheckedFuture<Void, TransactionCommitFailedException> futures = tx.submit();
try {
futures.get();
: getBoundServicesForVpnInterface(dataBroker, vpnInstanceName, interfaceName);
writeTxn.put(LogicalDatastoreType.CONFIGURATION, InterfaceUtils.buildServiceId(interfaceName,
ServiceIndex.getIndex(NwConstants.L3VPN_SERVICE_NAME, NwConstants.L3VPN_SERVICE_INDEX)),
- serviceInfo, true);
- List<ListenableFuture<Void>> futures = new ArrayList<>();
- futures.add(writeTxn.submit());
- return futures;
+ serviceInfo, WriteTransaction.CREATE_MISSING_PARENTS);
+ return Collections.singletonList(writeTxn.submit());
});
}
.setErrorDescription(errorMsg)
.build();
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
- tx.put(LogicalDatastoreType.CONFIGURATION, vpnLinkStateIid, vpnLinkErrorState, true);
+ tx.put(LogicalDatastoreType.CONFIGURATION, vpnLinkStateIid, vpnLinkErrorState,
+ WriteTransaction.CREATE_MISSING_PARENTS);
tx.submit();
// Sending out an error Notification
subOpDpnManager.addInterfaceToDpn(subnetId, dpId, infName);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
subOpDpnManager.addPortOpDataEntry(infName, subnetId, dpId);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
@Test
subOpDpnManager.addPortOpDataEntry(infName, subnetId, dpId);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
@Test
vpnSubnetRouteHandler.onPortAddedToSubnet(subnetmap, portId);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp, true);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn, true);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
@Ignore
vpnSubnetRouteHandler.onPortRemovedFromSubnet(subnetmap, portId);
verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, portOpIdentifier);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn, true);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
vpnSubnetRouteHandler.onInterfaceUp(dpId, interfaceName, subnetId);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, instPortOp, portOp, true);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn, true);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, instPortOp, portOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
@Ignore
// TODO: subnetOpDpnManager is mocked so not sure how this delete ever worked.
//verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, dpnOpId);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, subOpIdentifier, subnetOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}
vpnSubnetRouteHandler.onSubnetAddedToVpn(subnetmap, true, elanTag);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn, true);
- verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp, true);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, dpnOpId, subnetToDpn,
+ WriteTransaction.CREATE_MISSING_PARENTS);
+ verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, portOpIdentifier, portOp,
+ WriteTransaction.CREATE_MISSING_PARENTS);
}