@Override
  public TemplateProfile prepare(RegisterTemplateCmd cmd) throws ResourceAllocationException {
    TemplateProfile profile = super.prepare(cmd);
    String url = profile.getUrl();

    if ((!url.toLowerCase().endsWith("vhd"))
        && (!url.toLowerCase().endsWith("vhd.zip"))
        && (!url.toLowerCase().endsWith("vhd.bz2"))
        && (!url.toLowerCase().endsWith("vhd.gz"))
        && (!url.toLowerCase().endsWith("qcow2"))
        && (!url.toLowerCase().endsWith("qcow2.zip"))
        && (!url.toLowerCase().endsWith("qcow2.bz2"))
        && (!url.toLowerCase().endsWith("qcow2.gz"))
        && (!url.toLowerCase().endsWith("ova"))
        && (!url.toLowerCase().endsWith("ova.zip"))
        && (!url.toLowerCase().endsWith("ova.bz2"))
        && (!url.toLowerCase().endsWith("ova.gz"))
        && (!url.toLowerCase().endsWith("img"))
        && (!url.toLowerCase().endsWith("raw"))) {
      throw new InvalidParameterValueException(
          "Please specify a valid " + cmd.getFormat().toLowerCase());
    }

    if ((cmd.getFormat().equalsIgnoreCase("vhd")
            && (!url.toLowerCase().endsWith("vhd")
                && !url.toLowerCase().endsWith("vhd.zip")
                && !url.toLowerCase().endsWith("vhd.bz2")
                && !url.toLowerCase().endsWith("vhd.gz")))
        || (cmd.getFormat().equalsIgnoreCase("qcow2")
            && (!url.toLowerCase().endsWith("qcow2")
                && !url.toLowerCase().endsWith("qcow2.zip")
                && !url.toLowerCase().endsWith("qcow2.bz2")
                && !url.toLowerCase().endsWith("qcow2.gz")))
        || (cmd.getFormat().equalsIgnoreCase("ova")
            && (!url.toLowerCase().endsWith("ova")
                && !url.toLowerCase().endsWith("ova.zip")
                && !url.toLowerCase().endsWith("ova.bz2")
                && !url.toLowerCase().endsWith("ova.gz")))
        || (cmd.getFormat().equalsIgnoreCase("raw")
            && (!url.toLowerCase().endsWith("img") && !url.toLowerCase().endsWith("raw")))) {
      throw new InvalidParameterValueException(
          "Please specify a valid URL. URL:"
              + url
              + " is an invalid for the format "
              + cmd.getFormat().toLowerCase());
    }

    profile.setUrl(validateUrl(url));
    return profile;
  }
  @Override
  public TemplateProfile prepare(RegisterIsoCmd cmd) throws ResourceAllocationException {
    TemplateProfile profile = super.prepare(cmd);
    String url = profile.getUrl();

    if ((!url.toLowerCase().endsWith("iso"))
        && (!url.toLowerCase().endsWith("iso.zip"))
        && (!url.toLowerCase().endsWith("iso.bz2"))
        && (!url.toLowerCase().endsWith("iso.gz"))) {
      throw new InvalidParameterValueException("Please specify a valid iso");
    }

    profile.setUrl(validateUrl(url));
    return profile;
  }
Exemplo n.º 3
0
  protected VMTemplateVO persistTemplate(TemplateProfile profile) {
    Long zoneId = profile.getZoneId();
    VMTemplateVO template =
        new VMTemplateVO(
            profile.getTemplateId(),
            profile.getName(),
            profile.getFormat(),
            profile.getIsPublic(),
            profile.getFeatured(),
            profile.getIsExtractable(),
            TemplateType.USER,
            profile.getUrl(),
            profile.getRequiresHVM(),
            profile.getBits(),
            profile.getAccountId(),
            profile.getCheckSum(),
            profile.getDisplayText(),
            profile.getPasswordEnabled(),
            profile.getGuestOsId(),
            profile.getBootable(),
            profile.getHypervisorType(),
            profile.getTemplateTag(),
            profile.getDetails());

    if (zoneId == null || zoneId == -1) {
      List<DataCenterVO> dcs = _dcDao.listAllIncludingRemoved();

      for (DataCenterVO dc : dcs) {
        _tmpltDao.addTemplateToZone(template, dc.getId());
      }
      template.setCrossZones(true);
    } else {
      _tmpltDao.addTemplateToZone(template, zoneId);
    }
    return template;
  }