Beispiel #1
0
  public NetworkServiceDescriptor parseNSDCSAR(String nsd_csar) throws Exception {

    InputStream input = new FileInputStream(new File(nsd_csar));
    readFiles(input);

    readMetaData();
    NSDTemplate nsdTemplate = Utils.bytesToNSDTemplate(this.template);
    NetworkServiceDescriptor nsd = toscaParser.parseNSDTemplate(nsdTemplate);

    return nsd;
  }
Beispiel #2
0
  public NetworkServiceDescriptor onboardNSD(byte[] bytes, String projectId)
      throws NotFoundException, PluginException, VimException, IOException, IncompatibleVNFPackage {

    File temp = File.createTempFile("CSAR", null);
    FileOutputStream fos = new FileOutputStream(temp);
    fos.write(bytes);
    InputStream input = new FileInputStream(temp);
    ArrayList<String> ids = new ArrayList<>();

    readFiles(input);

    NSDTemplate nsdTemplate = Utils.bytesToNSDTemplate(this.template);
    NetworkServiceDescriptor nsd = toscaParser.parseNSDTemplate(nsdTemplate);

    for (VirtualNetworkFunctionDescriptor vnfd : nsd.getVnfd()) {
      if (!folderNames.contains(vnfd.getType())) {
        throw new NotFoundException("No Scripts specified for the VNFD of type: " + vnfd.getType());
      }
      Set<Script> vnfScripts = new HashSet<>();
      for (Script script : scripts) {
        String[] splitted_name = script.getName().split("!_!");
        log.debug(splitted_name[0]);
        log.debug(script.getName());

        if (splitted_name.length == 2) {
          String folder_name = splitted_name[0];
          if (folder_name.equals(vnfd.getType())) {
            Script s = new Script();
            s.setName(splitted_name[1]);
            s.setPayload(script.getPayload());
            vnfScripts.add(s);
          }
        }
      }
      ids.add(saveVNFD(vnfd, projectId, vnfScripts));
    }
    nsd.getVnfd().clear();

    for (String id : ids) {

      String vnfdId = "";

      Iterable<VirtualNetworkFunctionDescriptor> vnfds = vnfdRepository.findByProjectId(projectId);
      for (VirtualNetworkFunctionDescriptor vnfd : vnfds) {
        if (vnfd.getVnfPackageLocation().equals(id)) {

          vnfdId = vnfd.getId();
        }
      }

      VirtualNetworkFunctionDescriptor vnfd = new VirtualNetworkFunctionDescriptor();
      vnfd.setId(vnfdId);
      nsd.getVnfd().add(vnfd);
    }

    input.close();
    fos.close();
    this.template.close();
    this.metadata.close();

    return nsd;
  }