예제 #1
0
    @Override
    public int compare(Disk x, Disk y) {
      String xAlias = x.getDiskAlias();
      String yAlias = y.getDiskAlias();

      if (xAlias == null) {
        return 1;
      }

      if (yAlias == null) {
        return -1;
      }

      return xAlias.compareTo(yAlias);
    }
  private boolean checkCanPerformRegularUpdate() {
    boolean retValue = true;
    if (_oldDisk.getDiskInterface() != getParameters().getDiskInfo().getDiskInterface()) {
      List<VmNetworkInterface> allVmInterfaces =
          DbFacade.getInstance().getVmNetworkInterfaceDao().getAllForVm(getVmId());

      List<Disk> allVmDisks = getDiskDao().getAllForVm(getVmId());
      allVmDisks.removeAll(
          LinqUtils.filter(
              allVmDisks,
              new Predicate<Disk>() {
                @Override
                public boolean eval(Disk o) {
                  return o.getId().equals(_oldDisk.getId());
                }
              }));
      allVmDisks.add(getParameters().getDiskInfo());
      if (!checkPciAndIdeLimit(
          getVm().getnum_of_monitors(),
          allVmInterfaces,
          allVmDisks,
          getReturnValue().getCanDoActionMessages())) {
        retValue = false;
      }
    }

    // Validate update boot disk.
    if (retValue && getParameters().getDiskInfo().isBoot()) {
      VmHandler.updateDisksFromDb(getVm());
      for (Disk disk : getVm().getDiskMap().values()) {
        if (disk.isBoot() && !disk.getId().equals(_oldDisk.getId())) {
          retValue = false;
          addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_DISK_BOOT_IN_USE);
          getReturnValue()
              .getCanDoActionMessages()
              .add(String.format("$DiskName %1$s", disk.getDiskAlias()));
          break;
        }
      }
    }

    // Set disk alias name in the disk retrieved from the parameters.
    ImagesHandler.setDiskAlias(getParameters().getDiskInfo(), getVm());
    return retValue && validateShareableDisk();
  }
예제 #3
0
  public static DiskModel DiskToModel(Disk disk) {
    DiskModel diskModel = new DiskModel();
    diskModel.setIsNew(true);
    diskModel.getAlias().setEntity(disk.getDiskAlias());

    if (disk.getDiskStorageType() == DiskStorageType.IMAGE) {
      DiskImage diskImage = (DiskImage) disk;
      EntityModel sizeEntity = new EntityModel();
      sizeEntity.setEntity(diskImage.getSizeInGigabytes());
      diskModel.setSize(sizeEntity);
      ListModel volumeList = new ListModel();
      volumeList.setItems(
          (diskImage.getvolume_type() == VolumeType.Preallocated
              ? new ArrayList<VolumeType>(Arrays.asList(new VolumeType[] {VolumeType.Preallocated}))
              : DataProvider.GetVolumeTypeList()));
      volumeList.setSelectedItem(diskImage.getvolume_type());
      diskModel.setVolumeType(volumeList);
    }

    diskModel.setDisk(disk);

    return diskModel;
  }
 @Override
 public String getDiskAlias() {
   return _oldDisk.getDiskAlias();
 }