if (physicalResources.contains(resourceId)) {\r
physicalResourceMap.remove(userId);\r
try {\r
+ log.info("Physical network changed and affected the virtual network of " +\r
+ "user {}, start remapping.", userId.getValue());\r
+\r
intentResolver.resolveIntent(userId);\r
} catch (Exception e) {\r
e.printStackTrace();\r
public void virtualNetworkMapping(VirtualNetwork virtualNetwork, List<VirtualLink> unmappedVirtualLinks,\r
UserVnPnMapping userVnPnMapping, List<PhysicalPath> physicalPaths)\r
throws VNMappingException {\r
+ UserId userId = virtualNetwork.getUserId();\r
List<VirtualLink> virtualLinks = virtualNetwork.getVirtualLinks().getVirtualLink();\r
List<VnPnMappingResult> vnPnMappingResults = userVnPnMapping.getVnPnMappingResult();\r
PhysicalPath physicalPath;\r
physicalPath = virtualLinkMapping(virtualNetwork.getNetworkId(), virtualLink, userVnPnMapping);\r
\r
if ( null == physicalPath ) {\r
+ // If mapping failed, reset the user physical resources.\r
+ pnResourcesTracker.resetResource(userId);\r
+\r
throw new VNMappingException("Failed mapping for the virtual link " +\r
virtualLink.getLinkId().getValue() + " in the virtual network " +\r
virtualNetwork.getNetworkId().getValue());\r
}\r
\r
+ // Keep physical resource.\r
+ pnResourcesTracker.addPhysicalPath(userId, physicalPath);\r
+\r
physicalPaths.add(physicalPath);\r
\r
newVirtualLink = new VirtualLinkBuilder(virtualLink)\r