import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.Set;
+import java.util.concurrent.ExecutionException;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.genius.mdsalutil.NWUtil;
+import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.netvirt.vpnmanager.VpnUtil;
import org.opendaylight.netvirt.vpnmanager.api.intervpnlink.InterVpnLinkCache;
import org.opendaylight.netvirt.vpnmanager.api.intervpnlink.InterVpnLinkDataComposite;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.VpnInstanceOpDataEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.VpnTargets;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.vpntargets.VpnTarget;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.vpn.instance.op.data.vpn.instance.op.data.entry.vpntargets.VpnTargetKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netvirt.inter.vpn.link.rev160311.inter.vpn.links.InterVpnLink;
import org.opendaylight.yangtools.yang.common.Uint64;
import org.slf4j.Logger;
*/
public List<Uint64> selectSuitableDpns(InterVpnLink interVpnLink) {
int numberOfDpns = Integer.getInteger(NBR_OF_DPNS_PROPERTY_NAME, 1);
- List<Uint64> dpnIdPool = NWUtil.getOperativeDPNs(dataBroker).stream()
- .map(dpn -> dpn)
- .collect(Collectors.toList());
+ List<Uint64> dpnIdPool = new ArrayList<>();
+ try {
+ dpnIdPool = NWUtil.getOperativeDPNs(dataBroker).stream().map(dpn -> dpn).collect(Collectors.toList());
+ } catch (ExecutionException | InterruptedException e) {
+ LOG.error("selectSuitableDpns: Exception while reading Operative DPNs", e);
+ }
LOG.trace("selectSuitableDpns for {} with numberOfDpns={} and availableDpns={}",
interVpnLink.getName(), numberOfDpns, dpnIdPool);
int poolSize = dpnIdPool.size();
LOG.trace("vpn targets not available for {}", name);
return new ArrayList<>();
}
- List<VpnTarget> vpnTargets = targets.getVpnTarget();
+ Map<VpnTargetKey, VpnTarget> vpnTargets = targets.getVpnTarget();
if (vpnTargets == null) {
LOG.trace("vpnTarget values not available for {}", name);
return new ArrayList<>();
}
- return vpnTargets.stream()
+ return vpnTargets.values().stream()
.filter(target -> Objects.equals(target.getVrfRTType(), rtType)
|| Objects.equals(target.getVrfRTType(), VpnTarget.VrfRTType.Both))
.map(VpnTarget::getVrfRTValue)
if (ivl.getInterVpnLinkName().equals(ivpnLinkToMatch.getName())) {
return false; // ivl and ivpnLinlToMatch are the same InterVpnLink
}
- String vpn1Name = ivl.getFirstEndpointVpnUuid().orNull();
- String vpn2Name = ivl.getSecondEndpointVpnUuid().orNull();
+ String vpn1Name = ivl.getFirstEndpointVpnUuid().orElse(null);
+ String vpn2Name = ivl.getSecondEndpointVpnUuid().orElse(null);
if (vpn1Name == null) {
return false;
}