package org.ovirt.engine.ui.uicommonweb.builders.vm; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.vms.IconCache; import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; /** * Builder which maps VmBase properties (VM or Template) that are to be persisted on all VM operations - even in * {@link org.ovirt.engine.ui.uicommonweb.models.pools.PoolListModel#buildVmOnSave} * If you are adding Yet Another VmBase Field, in most cases this will be the place to add the mapping. * If you are adding a more specific property you may need to add it instead to {@link CommonUnitToVmBaseBuilder} or * {@link FullUnitToVmBaseBuilder} * * This is not shared with the instance types. If you are adding a field which is supposed to be used also by instance types, * please add it to {@link HwOnlyCoreUnitToVmBaseBuilder} */ public class CoreUnitToVmBaseBuilder extends HwOnlyCoreUnitToVmBaseBuilder { @Override protected void build(UnitVmModel model, VmBase vm) { super.build(model, vm); vm.setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity()); vm.setVmType(model.getVmType().getSelectedItem()); vm.setClusterId(model.getSelectedCluster() != null ? model.getSelectedCluster().getId() : null); vm.setTimeZone(model.getTimeZone().getIsAvailable() && model.getTimeZone().getSelectedItem() != null ? model.getTimeZone() .getSelectedItem().getTimeZoneKey() : ""); //$NON-NLS-1$ vm.setIsoPath(model.getCdImage().getIsChangable() ? model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$ vm.setDeleteProtected(model.getIsDeleteProtected().getEntity()); vm.setOsId(model.getOSType().getSelectedItem()); Guid largeIconId = IconCache.getInstance().getId(model.getIcon().getEntity().getIcon()); vm.setLargeIconId(largeIconId); vm.setSmallIconId(model.getIcon().getEntity().getSmallIconId() != null ? model.getIcon().getEntity().getSmallIconId() : AsyncDataProvider.getInstance().isCustomIconId(largeIconId) ? null : AsyncDataProvider.getInstance().getSmallByLargeOsDefaultIconId(largeIconId)); vm.setVncKeyboardLayout(model.getVncKeyboardLayout().getSelectedItem()); vm.setSerialNumberPolicy(model.getSerialNumberPolicy().getSelectedSerialNumberPolicy()); vm.setCustomSerialNumber(model.getSerialNumberPolicy().getCustomSerialNumber().getEntity()); vm.setBootMenuEnabled(model.getBootMenuEnabled().getEntity()); vm.setSpiceFileTransferEnabled(Boolean.TRUE.equals(model.getSpiceFileTransferEnabled().getEntity())); vm.setSpiceCopyPasteEnabled(Boolean.TRUE.equals(model.getSpiceCopyPasteEnabled().getEntity())); vm.setAutoConverge(model.getAutoConverge().getSelectedItem()); vm.setMigrateCompressed(model.getMigrateCompressed().getSelectedItem()); vm.setCustomProperties(model.getCustomPropertySheet().serialize()); vm.setConsoleDisconnectAction(model.getConsoleDisconnectAction().getSelectedItem()); if (model.getCpuSharesAmount().getIsAvailable() && model.getCpuSharesAmount().getEntity() != null) { vm.setCpuShares(model.getCpuSharesAmount().getEntity()); } vm.setCustomCompatibilityVersion(model.getCustomCompatibilityVersion().getSelectedItem()); } }