import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
-
+import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import javax.inject.Singleton;
-
+import org.opendaylight.genius.infra.Datastore.Configuration;
+import org.opendaylight.genius.infra.TypedReadWriteTransaction;
+import org.opendaylight.genius.infra.TypedWriteTransaction;
import org.opendaylight.genius.mdsalutil.ActionInfo;
import org.opendaylight.genius.mdsalutil.FlowEntity;
import org.opendaylight.genius.mdsalutil.InstructionInfo;
* @param internetBgpVpnId internetVpn id as long
* @param vpnId id of router associated to internet bgpvpn as long
*/
- public void installDefaultRoute(BigInteger dpnId, String routerId, long internetBgpVpnId, long vpnId) {
+ public void installDefaultRoute(TypedWriteTransaction<Configuration> tx, BigInteger dpnId, String routerId,
+ long internetBgpVpnId, long vpnId) {
FlowEntity flowEntity = buildIPv6FallbacktoExternalVpn(dpnId, routerId, internetBgpVpnId, vpnId, true);
LOG.trace("installDefaultRoute: flowEntity: {} ", flowEntity);
- mdsalManager.installFlow(flowEntity);
+ mdsalManager.addFlow(tx, flowEntity);
}
- public void removeDefaultRoute(BigInteger dpnId, String routerId, long internetBgpVpnId, long vpnId) {
+ public void removeDefaultRoute(TypedReadWriteTransaction<Configuration> tx, BigInteger dpnId, String routerId,
+ long internetBgpVpnId, long vpnId) throws ExecutionException, InterruptedException {
FlowEntity flowEntity = buildIPv6FallbacktoExternalVpn(dpnId, routerId, internetBgpVpnId, vpnId, false);
LOG.trace("removeDefaultRoute: flowEntity: {} ", flowEntity);
- mdsalManager.removeFlow(flowEntity);
+ mdsalManager.removeFlow(tx, flowEntity);
}
public String getIPv6FlowRefL3(BigInteger dpnId, short tableId, String destPrefix, String routerId) {
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.SettableFuture;
-
import java.math.BigInteger;
import java.net.Inet4Address;
import java.net.Inet6Address;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
-
import org.apache.commons.lang3.StringUtils;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.genius.utils.JvmGlobalLocks;
import org.opendaylight.infrautils.jobcoordinator.JobCoordinator;
import org.opendaylight.infrautils.utils.concurrent.ListenableFutures;
+import org.opendaylight.infrautils.utils.concurrent.LoggingFutures;
import org.opendaylight.netvirt.neutronvpn.api.enums.IpVersionChoice;
import org.opendaylight.netvirt.neutronvpn.api.utils.NeutronUtils;
import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInstances;
}
for (BigInteger dpnId : dpnIds) {
if (add) {
- ipV6InternetDefRt.installDefaultRoute(dpnId, rtrId.getValue(), internetBgpVpnId, vpnId);
+ LoggingFutures.addErrorLogging(
+ txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
+ tx -> ipV6InternetDefRt.installDefaultRoute(tx, dpnId, rtrId.getValue(), internetBgpVpnId,
+ vpnId)), LOG, "Error adding default route");
} else {
- ipV6InternetDefRt.removeDefaultRoute(dpnId, rtrId.getValue(), internetBgpVpnId, vpnId);
+ LoggingFutures.addErrorLogging(
+ txRunner.callWithNewReadWriteTransactionAndSubmit(Datastore.CONFIGURATION,
+ tx -> ipV6InternetDefRt.removeDefaultRoute(tx, dpnId, rtrId.getValue(), internetBgpVpnId,
+ vpnId)), LOG,
+ "Error removing default route");
}
}
}