@Override
public void connectUni(String uniId) {
List<RetailSvcIdType> allIpvcs = MefServicesUtils.getAllIpvcsServiceIds(dataBroker);
- allIpvcs = (allIpvcs != null) ? allIpvcs : Collections.emptyList();
+ allIpvcs = allIpvcs != null ? allIpvcs : Collections.emptyList();
for (RetailSvcIdType ipvcSerId : allIpvcs) {
InstanceIdentifier<Ipvc> ipvcId = MefServicesUtils.getIpvcInstanceIdentifier(ipvcSerId);
}
List<Uni> toConnect = new ArrayList<>();
- List<Uni> unis = (ipvc.getUnis() != null) ? ipvc.getUnis().getUni() : null;
- unis = (unis != null) ? unis : Collections.emptyList();
+ List<Uni> unis = ipvc.getUnis() != null ? ipvc.getUnis().getUni() : null;
+ unis = unis != null ? unis : Collections.emptyList();
for (Uni uni : unis) {
if (uni.getUniId().getValue().equals(uniId)) {
Log.info("Connecting Uni {} to svc id {}", uniId, ipvcSerId);
public void disconnectUni(String uniId) {
List<RetailSvcIdType> allIpvcs = MefServicesUtils.getAllIpvcsServiceIds(dataBroker);
- allIpvcs = (allIpvcs != null) ? allIpvcs : Collections.emptyList();
+ allIpvcs = allIpvcs != null ? allIpvcs : Collections.emptyList();
for (RetailSvcIdType ipvcSerId : allIpvcs) {
InstanceIdentifier<Ipvc> ipvcId = MefServicesUtils.getIpvcInstanceIdentifier(ipvcSerId);
}
List<Uni> toRemove = new ArrayList<>();
- List<Uni> unis = (ipvc.getUnis() != null) ? ipvc.getUnis().getUni() : null;
- unis = (unis != null) ? unis : Collections.emptyList();
+ List<Uni> unis = ipvc.getUnis() != null ? ipvc.getUnis().getUni() : null;
+ unis = unis != null ? unis : Collections.emptyList();
for (Uni uni : unis) {
if (uni.getUniId().getValue().equals(uniId)) {
Log.info("Disconnecting Uni {} from svc id {}", uniId, ipvcSerId);
createVpnInstance(vpnName, ipvcId);
String rd = waitForRd(vpnName);
+ updateOperationalDataStoreWithVrfId(ipvcId, vpnName, rd);
+
List<Uni> unis = new ArrayList<>();
if (ipvc.getUnis() != null && ipvc.getUnis() != null) {
unis = ipvc.getUnis().getUni();
}
}
+ private void updateOperationalDataStoreWithVrfId(InstanceIdentifier<Ipvc> ipvcId, String vpnName, String vrfId) {
+ WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
+ MefServicesUtils.addOperIpvcVpnElan(ipvcId, vpnName, vrfId, tx);
+ MdsalUtils.commitTransaction(tx);
+ }
+
private void createVpnInstance(final String vpnName, InstanceIdentifier<Ipvc> ipvcId) {
synchronized (vpnName.intern()) {
WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
return;
}
String vpnName = operIpvcVpn.getVpnId();
- String rd = (String) waitForRd(vpnName);
+ String rd = waitForRd(vpnName);
List<Uni> originalUni = origIpvc.getUnis() != null && origIpvc.getUnis().getUni() != null
? origIpvc.getUnis().getUni() : Collections.emptyList();
List<Uni> updateUni = updateIpvc.getUnis() != null && updateIpvc.getUnis().getUni() != null
private void waitForInterfaceDpn(String vpnName, String rd, String interfaceName) {
InstanceIdentifier<VpnInstanceOpDataEntry> vpnId = NetvirtVpnUtils.getVpnInstanceOpDataIdentifier(rd);
DataWaitGetter<VpnInstanceOpDataEntry> getInterfByName = (vpn) -> {
- if (vpn.getVpnToDpnList() == null)
+ if (vpn.getVpnToDpnList() == null) {
return null;
+ }
for (VpnToDpnList is : vpn.getVpnToDpnList()) {
- if (is.getVpnInterfaces() == null)
+ if (is.getVpnInterfaces() == null) {
continue;
+ }
for (VpnInterfaces i : is.getVpnInterfaces()) {
- if (i.getInterfaceName().equals(interfaceName))
+ if (i.getInterfaceName().equals(interfaceName)) {
return interfaceName;
+ }
}
}
return null;
}
public static void addOperIpvcVpnElan(InstanceIdentifier<Ipvc> identifier, String vpnId, WriteTransaction tx) {
+ addOperIpvcVpnElan(identifier, vpnId, null, tx);
+ }
+
+ public static void addOperIpvcVpnElan(InstanceIdentifier<Ipvc> identifier, String vpnId, String vrfId, WriteTransaction tx) {
synchronized (vpnId.intern()) {
InstanceIdentifier<IpvcVpn> path = identifier.augmentation(IpvcVpn.class);
IpvcVpnBuilder ipvcVpnBuilder = new IpvcVpnBuilder();
ipvcVpnBuilder.setVpnId(vpnId);
+ if (vrfId != null) {
+ ipvcVpnBuilder.setVrfId(vrfId);
+ }
tx.merge(LogicalDatastoreType.OPERATIONAL, path, ipvcVpnBuilder.build(), true);
}