Ejemplo n.º 1
0
  /**
   * TODO
   *
   * @param virtualNetworkId TODO
   * @param virtualLink TODO
   * @param userVnPnMapping TODO
   * @return TODO
   */
  private PhysicalPath virtualLinkMapping(
      VirtualNetworkId virtualNetworkId, VirtualLink virtualLink, UserVnPnMapping userVnPnMapping)
      throws VNMappingException {
    List<VnPnMappingResult> vnPnMappingResults = userVnPnMapping.getVnPnMappingResult();
    VnPnMappingResult vnPnMappingResult =
        VNMappingUnitUtils.getVnPnMappingResult(
            vnPnMappingResults, new VirtualResourceEntityId(virtualLink.getSrcNodeId().getValue()));

    if (null == vnPnMappingResult) {
      throw new VNMappingException(
          "Can not get the vn-pn mapping result for "
              + "the virtual node "
              + virtualLink.getSrcNodeId().getValue());
    }

    PhysicalNodeId source =
        new PhysicalNodeId(vnPnMappingResult.getPhysicalResourceEntityId().getValue());

    vnPnMappingResult =
        VNMappingUnitUtils.getVnPnMappingResult(
            vnPnMappingResults,
            new VirtualResourceEntityId(virtualLink.getDestNodeId().getValue()));

    if (null == vnPnMappingResult) {
      throw new VNMappingException(
          "Can not get the vn-pn mapping result for "
              + "the virtual node "
              + virtualLink.getDestNodeId().getValue());
    }

    PhysicalNodeId target =
        new PhysicalNodeId(vnPnMappingResult.getPhysicalResourceEntityId().getValue());

    if (source.equals(target)) {
      PhysicalPath physicalPath =
          new PhysicalPathBuilder()
              .setPathId(new PhysicalPathId(UUID.randomUUID().toString()))
              .setPhysicalLink(
                  new ArrayList<
                      org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic
                          .physical.network.rev151010.physical.path.instance.PhysicalLink>(0))
              .setMetric(0L)
              .setBandwidth(virtualLink.getBandwidth())
              .setDelay(0L)
              .build();

      return physicalPath;
    }

    PhysicalPath physicalPath;

    if (0 == virtualLink.getBandwidth()) {
      physicalPath = pnComputationUnit.computePath(source, target);
    } else {
      physicalPath = pnComputationUnit.computePath(source, target, virtualLink.getBandwidth());
    }

    return physicalPath;
  }
Ejemplo n.º 2
0
 @org.junit.Test
 public void testGetVirtualLink() throws Exception {
   when(virtualLink.getSrcNodeId()).thenReturn(srcVirtualNodeId);
   when(virtualLink.getDestNodeId()).thenReturn(destVirtualNodeId);
   Assert.assertEquals(
       intentResolverUtils.getVirtualLink(virtualLinkList, srcVirtualNodeId, destVirtualNodeId),
       virtualLink);
 }