public static Version getEffective(VM vm, Supplier<Cluster> clusterSupplier) { return getEffective(vm != null ? vm.getStaticData() : null, clusterSupplier); }
public static Version getEffective(VmBase vmBase, Cluster cluster) { Version vmCustomCompatibilityVersion = vmBase != null ? vmBase.getCustomCompatibilityVersion() : null; Version clusterCompatibilityVersion = cluster != null ? cluster.getCompatibilityVersion() : null; return getEffective(vmCustomCompatibilityVersion, clusterCompatibilityVersion, Version.getLast()); }
private void copyRngDeviceFromTemplateOrInstanceType(AddVmParameters params, VmStatic vmStatic, Cluster cluster, Guid templateId, Guid instanceTypeId) { List<VmRngDevice> devices = VmHelper.getRngDevicesForEntity( this, instanceTypeId != null ? instanceTypeId : templateId); if (devices != null && !devices.isEmpty()) { final VmRngDevice rngDevice = devices.get(0); final Version effectiveVersion = CompatibilityVersionUtils.getEffective(vmStatic.getCustomCompatibilityVersion(), cluster.getCompatibilityVersion(), null); rngDevice.updateSourceByVersion(effectiveVersion); boolean supported = EnumSet.of( RngUtils.RngValidationResult.VALID, RngUtils.RngValidationResult.UNSUPPORTED_URANDOM_OR_RANDOM) .contains(RngUtils.validate(cluster, rngDevice)); if (shouldCopyDevice(supported, templateId, instanceTypeId)) { params.setUpdateRngDevice(true); params.setRngDevice(rngDevice); } } }
private boolean isRestoreMemoryVolumeSupported() { Version oldVmEffectiveVersion = getVm().getCompatibilityVersion(); // before edit Version newVmCustomCompatibilityVersion = getModel().getCustomCompatibilityVersion() == null ? null : getModel().getCustomCompatibilityVersion().getSelectedItem(); Version newClusterVersion = getModel().getSelectedCluster() == null ? null : getModel().getSelectedCluster().getCompatibilityVersion(); Version newVmEffectiveVersion = CompatibilityVersionUtils.getEffective(newVmCustomCompatibilityVersion, newClusterVersion, Version.getLast()); return oldVmEffectiveVersion.equals(newVmEffectiveVersion); }