From cf9670255dfab1dc71c97277ddadf078a898a5c1 Mon Sep 17 00:00:00 2001 From: Fengkai Li Date: Sat, 26 Dec 2015 14:14:33 +0800 Subject: [PATCH 1/1] Modify the second virtualNetworkMapping method in VNMappingUnit. And add some log in PNResourcesTracker. Change-Id: Ia6c7aa76ec8f1988815616af6d388a4f69e2db5c Signed-off-by: Fengkai Li --- .../nemo/intent/computation/PNResourcesTracker.java | 3 +++ .../nemo/intent/computation/VNMappingUnit.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/PNResourcesTracker.java b/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/PNResourcesTracker.java index 3308797..566f4ef 100644 --- a/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/PNResourcesTracker.java +++ b/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/PNResourcesTracker.java @@ -129,6 +129,9 @@ public class PNResourcesTracker { if (physicalResources.contains(resourceId)) { physicalResourceMap.remove(userId); try { + log.info("Physical network changed and affected the virtual network of " + + "user {}, start remapping.", userId.getValue()); + intentResolver.resolveIntent(userId); } catch (Exception e) { e.printStackTrace(); diff --git a/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/VNMappingUnit.java b/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/VNMappingUnit.java index 7413a49..bad4d7d 100644 --- a/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/VNMappingUnit.java +++ b/nemo-impl/src/main/java/org/opendaylight/nemo/intent/computation/VNMappingUnit.java @@ -247,6 +247,7 @@ public class VNMappingUnit implements AutoCloseable { public void virtualNetworkMapping(VirtualNetwork virtualNetwork, List unmappedVirtualLinks, UserVnPnMapping userVnPnMapping, List physicalPaths) throws VNMappingException { + UserId userId = virtualNetwork.getUserId(); List virtualLinks = virtualNetwork.getVirtualLinks().getVirtualLink(); List vnPnMappingResults = userVnPnMapping.getVnPnMappingResult(); PhysicalPath physicalPath; @@ -258,11 +259,17 @@ public class VNMappingUnit implements AutoCloseable { physicalPath = virtualLinkMapping(virtualNetwork.getNetworkId(), virtualLink, userVnPnMapping); if ( null == physicalPath ) { + // If mapping failed, reset the user physical resources. + pnResourcesTracker.resetResource(userId); + throw new VNMappingException("Failed mapping for the virtual link " + virtualLink.getLinkId().getValue() + " in the virtual network " + virtualNetwork.getNetworkId().getValue()); } + // Keep physical resource. + pnResourcesTracker.addPhysicalPath(userId, physicalPath); + physicalPaths.add(physicalPath); newVirtualLink = new VirtualLinkBuilder(virtualLink) -- 2.36.6