Tomas Jelinek has uploaded a new change for review. Change subject: userportal,webadmin: implement VM builder ......................................................................
userportal,webadmin: implement VM builder Instance types Phase 1: extract and merge common code as builders from list models. This only implements the builder from UnitVmModel to VM for the save action. Change-Id: I54d938896e469c73800297c3d66185a439243a41 Signed-off-by: Tomas Jelinek <tjeli...@redhat.com> --- A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/HaVmToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsAndIdVmToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationSupportVmToUnitBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUntiToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmToVmBuilder.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/VmSpecificUnitToVmBuilder.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java 12 files changed, 284 insertions(+), 218 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/13915/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBuilder.java new file mode 100644 index 0000000..b1c1496 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBuilder.java @@ -0,0 +1,56 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import java.util.Map; + +import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.VDSGroup; +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VmOsType; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +/** + * Misc fields common for all who need to build the VM <-> UnitVmModel + */ +public class CommonUnitToVmBuilder extends BaseSyncBuilder<UnitVmModel, VM> { + + @SuppressWarnings("unchecked") + @Override + protected void build(UnitVmModel frontend, VM backend) { + backend.setVmType(frontend.getVmType()); + + backend.setVmOs((VmOsType) frontend.getOSType().getSelectedItem()); + backend.setNumOfMonitors((Integer) frontend.getNumOfMonitors().getSelectedItem()); + backend.setAllowConsoleReconnect((Boolean) frontend.getAllowConsoleReconnect().getEntity()); + backend.setVmMemSizeMb((Integer) frontend.getMemSize().getEntity()); + backend.setMinAllocatedMem((Integer) frontend.getMinAllocatedMemory().getEntity()); + backend.setTimeZone((frontend.getTimeZone().getIsAvailable() && frontend.getTimeZone().getSelectedItem() != null) ? ((Map.Entry<String, String>) frontend.getTimeZone() + .getSelectedItem()).getKey() + : ""); //$NON-NLS-1$ + backend.setNumOfSockets((Integer) frontend.getNumOfSockets().getSelectedItem()); + backend.setCpuPerSocket(Integer.parseInt(frontend.getTotalCPUCores().getEntity().toString()) + / (Integer) frontend.getNumOfSockets().getSelectedItem()); + + backend.setAutoSuspend(false); + backend.setStateless((Boolean) frontend.getIsStateless().getEntity()); + backend.setSmartcardEnabled((Boolean) frontend.getIsSmartcardEnabled().getEntity()); + backend.setDeleteProtected((Boolean) frontend.getIsDeleteProtected().getEntity()); + backend.setDefaultBootSequence(frontend.getBootSequence()); + backend.setAutoStartup((Boolean) frontend.getIsHighlyAvailable().getEntity()); + backend.setVmDomain(frontend.getDomain().getIsAvailable() ? (String) frontend.getDomain().getSelectedItem() + : ""); //$NON-NLS-1$ + backend.setVdsGroupId(((VDSGroup) frontend.getCluster().getSelectedItem()).getId()); + backend.setIsoPath(frontend.getCdImage().getIsChangable() ? (String) frontend.getCdImage().getSelectedItem() + : ""); //$NON-NLS-1$ + + EntityModel displayProtocolSelectedItem = (EntityModel) frontend.getDisplayProtocol().getSelectedItem(); + backend.setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); + + EntityModel prioritySelectedItem = (EntityModel) frontend.getPriority().getSelectedItem(); + backend.setPriority((Integer) prioritySelectedItem.getEntity()); + + backend.setVncKeyboardLayout((String) frontend.getVncKeyboardLayout().getSelectedItem()); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/HaVmToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/HaVmToVmBuilder.java new file mode 100644 index 0000000..a1b7ff8 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/HaVmToVmBuilder.java @@ -0,0 +1,14 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; + +public class HaVmToVmBuilder extends BaseSyncBuilder<VM, VM> { + + @Override + protected void build(VM frontend, VM backend) { + backend.setDedicatedVmForVds(frontend.getDedicatedVmForVds()); + backend.setMigrationSupport(frontend.getMigrationSupport()); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsAndIdVmToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsAndIdVmToVmBuilder.java new file mode 100644 index 0000000..29b497c --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsAndIdVmToVmBuilder.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; + + +public class KernelParamsAndIdVmToVmBuilder extends BaseSyncBuilder<VM, VM> { + + @Override + protected void build(VM source, VM destination) { + destination.setId(source.getId()); + destination.setInitrdUrl(source.getInitrdUrl()); + destination.setKernelUrl(source.getKernelUrl()); + destination.setKernelParams(source.getKernelParams()); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBuilder.java new file mode 100644 index 0000000..d7a77b2 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBuilder.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + + +public class KernelParamsUnitToVmBuilder extends BaseSyncBuilder<UnitVmModel, VM> { + + @Override + protected void build(UnitVmModel source, VM destination) { + destination.setInitrdUrl((String) source.getInitrd_path().getEntity()); + destination.setKernelUrl((String) source.getKernel_path().getEntity()); + destination.setKernelParams((String) source.getKernel_parameters().getEntity()); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationSupportVmToUnitBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationSupportVmToUnitBuilder.java new file mode 100644 index 0000000..d0eead1 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationSupportVmToUnitBuilder.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.MigrationSupport; +import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +public class MigrationSupportVmToUnitBuilder extends BaseSyncBuilder<UnitVmModel, VM> { + + @Override + protected void build(UnitVmModel frontend, VM backend) { + backend.setCpuPinning((String) frontend.getCpuPinning().getEntity()); + + VDS defaultHost = (VDS) frontend.getDefaultHost().getSelectedItem(); + if ((Boolean) frontend.getIsAutoAssign().getEntity()) { + backend.setDedicatedVmForVds(null); + } else { + backend.setDedicatedVmForVds(defaultHost.getId()); + } + + backend.setMigrationSupport((MigrationSupport) frontend.getMigrationMode().getSelectedItem()); + backend.setUseHostCpuFlags((Boolean) frontend.getHostCpu().getEntity()); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBuilder.java new file mode 100644 index 0000000..c705ba5 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBuilder.java @@ -0,0 +1,17 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.Quota; +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +public class QuotaUnitToVmBuilder extends BaseSyncBuilder<UnitVmModel, VM> { + + @Override + protected void build(UnitVmModel frontend, VM backend) { + if (frontend.getQuota().getSelectedItem() != null) { + backend.setQuotaId(((Quota) frontend.getQuota().getSelectedItem()).getId()); + } + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUntiToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUntiToVmBuilder.java new file mode 100644 index 0000000..66b73f0 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUntiToVmBuilder.java @@ -0,0 +1,15 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.UsbPolicy; +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +public class UsbPolicyUntiToVmBuilder extends BaseSyncBuilder<UnitVmModel, VM> { + + @Override + protected void build(UnitVmModel frontend, VM backend) { + backend.setUsbPolicy((UsbPolicy) frontend.getUsbPolicy().getSelectedItem()); + } + +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmToVmBuilder.java new file mode 100644 index 0000000..0e5edd1 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmToVmBuilder.java @@ -0,0 +1,11 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; + +public class UsbPolicyVmToVmBuilder extends BaseSyncBuilder<VM, VM> { + @Override + protected void build(VM frontend, VM backend) { + backend.setUsbPolicy(frontend.getUsbPolicy()); + } +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/VmSpecificUnitToVmBuilder.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/VmSpecificUnitToVmBuilder.java new file mode 100644 index 0000000..7f63d51 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/VmSpecificUnitToVmBuilder.java @@ -0,0 +1,23 @@ +package org.ovirt.engine.ui.uicommonweb.builders.vm; + +import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.businessentities.VmTemplate; +import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder; +import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel; + +public class VmSpecificUnitToVmBuilder extends BaseSyncBuilder<UnitVmModel, VM> { + + @Override + protected void build(UnitVmModel frontend, VM backend) { + + String name = (String) frontend.getName().getEntity(); + + VmTemplate template = (VmTemplate) frontend.getTemplate().getSelectedItem(); + backend.setVmtGuid(template.getId()); + backend.setName(name); + + backend.setVmDescription((String) frontend.getDescription().getEntity()); + backend.setCustomProperties(frontend.getCustomPropertySheet().getEntity()); + + } +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java index df4513a..e1789e8 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java @@ -4,7 +4,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; -import java.util.Map; import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.AddVmFromScratchParameters; @@ -20,15 +19,12 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DisplayType; -import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.StorageDomain; -import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; -import org.ovirt.engine.core.common.businessentities.VmOsType; import org.ovirt.engine.core.common.businessentities.VmPool; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmType; @@ -50,6 +46,14 @@ import org.ovirt.engine.ui.uicommonweb.ConsoleOptionsFrontendPersister.ConsoleContext; import org.ovirt.engine.ui.uicommonweb.Linq; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor; +import org.ovirt.engine.ui.uicommonweb.builders.vm.CommonUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsAndIdVmToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationSupportVmToUnitBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUntiToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.VmSpecificUnitToVmBuilder; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; @@ -611,57 +615,30 @@ } } + @SuppressWarnings("unchecked") public void PostNameUniqueCheck(UserPortalListModel userPortalListModel) { UnitVmModel model = (UnitVmModel) userPortalListModel.getWindow(); UserPortalItemModel selectedItem = (UserPortalItemModel) userPortalListModel.getSelectedItem(); VM vm = (VM) selectedItem.getEntity(); - VM tempVar = new VM(); - tempVar.setId(vm.getId()); - tempVar.setVmType(model.getVmType()); - tempVar.setVmOs((VmOsType) model.getOSType().getSelectedItem()); - tempVar.setNumOfMonitors((Integer) model.getNumOfMonitors().getSelectedItem()); - tempVar.setAllowConsoleReconnect((Boolean) model.getAllowConsoleReconnect().getEntity()); - tempVar.setVmDomain(model.getDomain().getIsAvailable() ? (String) model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$ - tempVar.setVmMemSizeMb((Integer) model.getMemSize().getEntity()); - tempVar.setMinAllocatedMem((Integer) model.getMinAllocatedMemory().getEntity()); - tempVar.setVdsGroupId(((VDSGroup) model.getCluster().getSelectedItem()).getId()); - tempVar.setTimeZone(model.getTimeZone().getIsAvailable() && model.getTimeZone().getSelectedItem() != null ? ((Map.Entry<String, String>) model.getTimeZone() - .getSelectedItem()).getKey() - : ""); //$NON-NLS-1$ - tempVar.setNumOfSockets((Integer) model.getNumOfSockets().getSelectedItem()); - tempVar.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity().toString()) - / (Integer) model.getNumOfSockets().getSelectedItem()); - tempVar.setDeleteProtected((Boolean) model.getIsDeleteProtected().getEntity()); - tempVar.setUsbPolicy((UsbPolicy) model.getUsbPolicy().getSelectedItem()); - tempVar.setAutoSuspend(false); - tempVar.setStateless((Boolean) model.getIsStateless().getEntity()); - tempVar.setSmartcardEnabled((Boolean) model.getIsSmartcardEnabled().getEntity()); - tempVar.setDefaultBootSequence(model.getBootSequence()); - tempVar.setAutoStartup((Boolean) model.getIsHighlyAvailable().getEntity()); - tempVar.setIsoPath(model.getCdImage().getIsChangable() ? (String) model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$ - tempVar.setInitrdUrl(vm.getInitrdUrl()); - tempVar.setKernelUrl(vm.getKernelUrl()); - tempVar.setKernelParams(vm.getKernelParams()); - tempVar.setVncKeyboardLayout(vm.getVncKeyboardLayout()); - VM newvm = tempVar; + VM newVm = new VM(); + new BuilderExecutor<VM, VM>( + new KernelParamsAndIdVmToVmBuilder()).build(vm, newVm); - EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); - newvm.setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); - - EntityModel prioritySelectedItem = (EntityModel) model.getPriority().getSelectedItem(); - newvm.setPriority((Integer) prioritySelectedItem.getEntity()); + new BuilderExecutor<UnitVmModel, VM>( + new CommonUnitToVmBuilder(), + new UsbPolicyUntiToVmBuilder()).build(model, newVm); AddVmTemplateParameters addVmTemplateParameters = - new AddVmTemplateParameters(newvm, + new AddVmTemplateParameters(newVm, (String) model.getName().getEntity(), (String) model.getDescription().getEntity()); addVmTemplateParameters.setPublicUse((Boolean) model.getIsTemplatePublic().getEntity()); if (model.getQuota().getSelectedItem() != null) { - newvm.setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); + newVm.setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); } addVmTemplateParameters.setDiskInfoDestinationMap(model.getDisksAllocationModel() @@ -1300,6 +1277,7 @@ } } + @SuppressWarnings("unchecked") public void PostVmNameUniqueCheck(UserPortalListModel userPortalListModel) { @@ -1310,66 +1288,13 @@ // Save changes. VmTemplate template = (VmTemplate) model.getTemplate().getSelectedItem(); - gettempVm().setVmType(model.getVmType()); - gettempVm().setVmtGuid(template.getId()); - gettempVm().setName(name); - gettempVm().setVmOs((VmOsType) model.getOSType().getSelectedItem()); - gettempVm().setNumOfMonitors((Integer) model.getNumOfMonitors().getSelectedItem()); - gettempVm().setAllowConsoleReconnect((Boolean) model.getAllowConsoleReconnect().getEntity()); - gettempVm().setVmDescription((String) model.getDescription().getEntity()); - gettempVm().setVmDomain(model.getDomain().getIsAvailable() ? (String) model.getDomain() - .getSelectedItem() : ""); //$NON-NLS-1$ - gettempVm().setVmMemSizeMb((Integer) model.getMemSize().getEntity()); - gettempVm().setMinAllocatedMem((Integer) model.getMinAllocatedMemory().getEntity()); - Guid newClusterID = ((VDSGroup) model.getCluster().getSelectedItem()).getId(); - gettempVm().setVdsGroupId(newClusterID); - gettempVm().setTimeZone((model.getTimeZone().getIsAvailable() && model.getTimeZone() - .getSelectedItem() != null) ? ((Map.Entry<String, String>) model.getTimeZone() - .getSelectedItem()).getKey() : ""); //$NON-NLS-1$ - gettempVm().setNumOfSockets((Integer) model.getNumOfSockets().getSelectedItem()); - gettempVm().setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity().toString()) - / (Integer) model.getNumOfSockets().getSelectedItem()); - gettempVm().setUsbPolicy((UsbPolicy) model.getUsbPolicy().getSelectedItem()); - gettempVm().setAutoSuspend(false); - gettempVm().setStateless((Boolean) model.getIsStateless().getEntity()); - gettempVm().setDeleteProtected((Boolean) model.getIsDeleteProtected().getEntity()); - gettempVm().setSmartcardEnabled((Boolean) model.getIsSmartcardEnabled().getEntity()); - gettempVm().setDefaultBootSequence(model.getBootSequence()); - gettempVm().setIsoPath(model.getCdImage().getIsChangable() ? (String) model.getCdImage() - .getSelectedItem() : ""); //$NON-NLS-1$ - gettempVm().setAutoStartup((Boolean) model.getIsHighlyAvailable().getEntity()); - gettempVm().setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); - - gettempVm().setInitrdUrl((String) model.getInitrd_path().getEntity()); - gettempVm().setKernelUrl((String) model.getKernel_path().getEntity()); - gettempVm().setKernelParams((String) model.getKernel_parameters().getEntity()); - - gettempVm().setCustomProperties(model.getCustomPropertySheet().getEntity()); - - EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); - gettempVm().setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); - - EntityModel prioritySelectedItem = (EntityModel) model.getPriority().getSelectedItem(); - gettempVm().setPriority((Integer) prioritySelectedItem.getEntity()); - - if (model.getQuota().getSelectedItem() != null) { - gettempVm().setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); - } - - gettempVm().setCpuPinning((String) model.getCpuPinning() - .getEntity()); - - VDS defaultHost = (VDS) model.getDefaultHost().getSelectedItem(); - if ((Boolean) model.getIsAutoAssign().getEntity()) - { - gettempVm().setDedicatedVmForVds(null); - } - else - { - gettempVm().setDedicatedVmForVds(defaultHost.getId()); - } - - gettempVm().setMigrationSupport((MigrationSupport) model.getMigrationMode().getSelectedItem()); + new BuilderExecutor<UnitVmModel, VM>( + new CommonUnitToVmBuilder(), + new KernelParamsUnitToVmBuilder(), + new MigrationSupportVmToUnitBuilder(), + new QuotaUnitToVmBuilder(), + new UsbPolicyUntiToVmBuilder(), + new VmSpecificUnitToVmBuilder()).build(model, gettempVm()); if (model.getIsNew()) { @@ -1448,6 +1373,7 @@ } else { + Guid newClusterID = ((VDSGroup) model.getCluster().getSelectedItem()).getId(); Guid oldClusterID = ((VM) selectedItem.getEntity()).getVdsGroupId(); if (oldClusterID.equals(newClusterID) == false) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java index 3357e4f..329cac6 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java @@ -23,6 +23,7 @@ public class NewVmModelBehavior extends VmModelBehaviorBase { + @SuppressWarnings("unchecked") @Override public void Initialize(SystemTreeItemModel systemTreeSelectedItem) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index 8270d53..bc47194 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -34,15 +34,11 @@ import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DisplayType; -import org.ovirt.engine.core.common.businessentities.MigrationSupport; -import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.StorageDomain; -import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.businessentities.VmOsType; import org.ovirt.engine.core.common.businessentities.VmTemplate; import org.ovirt.engine.core.common.businessentities.VmType; import org.ovirt.engine.core.common.businessentities.storage_pool; @@ -72,6 +68,18 @@ import org.ovirt.engine.ui.uicommonweb.TagsEqualityComparer; import org.ovirt.engine.ui.uicommonweb.TypeResolver; import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor; +import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor.BuilderExecutionFinished; +import org.ovirt.engine.ui.uicommonweb.builders.disk.DiskInfoDestinationMapBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.CommonUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.HaVmToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsAndIdVmToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationSupportVmToUnitBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUntiToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyVmToVmBuilder; +import org.ovirt.engine.ui.uicommonweb.builders.vm.VmSpecificUnitToVmBuilder; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel; import org.ovirt.engine.ui.uicommonweb.models.ConsoleModelsCache; @@ -1344,8 +1352,10 @@ @SuppressWarnings("unchecked") final ArrayList<Disk> vmDisks = (ArrayList<Disk>) returnValue; VmModelHelper.sendWarningForNonExportableDisks(model, vmDisks, VmModelHelper.WarningType.VM_EXPORT); + } - }), entity.getId()); + }), + entity.getId()); } private void RunOnce() @@ -1589,7 +1599,6 @@ /** * Load active hosts bound to active cluster. - * */ private void RunOnceLoadHosts(VM vm) { RunOnceModel model = (RunOnceModel) getWindow(); @@ -1602,8 +1611,8 @@ final RunOnceModel model = (RunOnceModel) target; final List<VDS> hosts = (ArrayList<VDS>) returnValue; final List<VDS> activeHosts = new ArrayList<VDS>(); - for(VDS host : hosts) { - if(VDSStatus.Up.equals(host.getStatus())) { + for (VDS host : hosts) { + if (VDSStatus.Up.equals(host.getStatus())) { activeHosts.add(host); } } @@ -1611,7 +1620,7 @@ model.getDefaultHost().setItems(activeHosts); // hide host tab when no active host is available - if(activeHosts.isEmpty()) { + if (activeHosts.isEmpty()) { model.setIsHostTabVisible(false); } } @@ -1791,55 +1800,24 @@ } } + @SuppressWarnings("unchecked") public void PostNameUniqueCheck() { UnitVmModel model = (UnitVmModel) getWindow(); VM vm = (VM) getSelectedItem(); - VM tempVar = new VM(); - tempVar.setId(vm.getId()); - tempVar.setVmType(model.getVmType()); - if (model.getQuota().getSelectedItem() != null) { - tempVar.setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); - } - tempVar.setVmOs((VmOsType) model.getOSType().getSelectedItem()); - tempVar.setNumOfMonitors((Integer) model.getNumOfMonitors().getSelectedItem()); - tempVar.setAllowConsoleReconnect((Boolean) model.getAllowConsoleReconnect().getEntity()); - tempVar.setVmDomain(model.getDomain().getIsAvailable() ? (String) model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$ - tempVar.setVmMemSizeMb((Integer) model.getMemSize().getEntity()); - tempVar.setMinAllocatedMem((Integer) model.getMinAllocatedMemory().getEntity()); - tempVar.setVdsGroupId(((VDSGroup) model.getCluster().getSelectedItem()).getId()); - tempVar.setTimeZone(model.getTimeZone().getIsAvailable() && model.getTimeZone().getSelectedItem() != null ? ((Map.Entry<String, String>) model.getTimeZone() - .getSelectedItem()).getKey() - : ""); //$NON-NLS-1$ - tempVar.setNumOfSockets((Integer) model.getNumOfSockets().getSelectedItem()); - tempVar.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity().toString()) - / (Integer) model.getNumOfSockets().getSelectedItem()); - tempVar.setAutoSuspend(false); - tempVar.setStateless((Boolean) model.getIsStateless().getEntity()); - tempVar.setSmartcardEnabled((Boolean) model.getIsSmartcardEnabled().getEntity()); - tempVar.setDeleteProtected((Boolean) model.getIsDeleteProtected().getEntity()); - tempVar.setDefaultBootSequence(model.getBootSequence()); - tempVar.setAutoStartup((Boolean) model.getIsHighlyAvailable().getEntity()); - tempVar.setIsoPath(model.getCdImage().getIsChangable() ? (String) model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$ - tempVar.setUsbPolicy(vm.getUsbPolicy()); - tempVar.setInitrdUrl(vm.getInitrdUrl()); - tempVar.setKernelUrl(vm.getKernelUrl()); - tempVar.setKernelParams(vm.getKernelParams()); - tempVar.setDedicatedVmForVds(vm.getDedicatedVmForVds()); - tempVar.setMigrationSupport(vm.getMigrationSupport()); - tempVar.setVncKeyboardLayout(vm.getVncKeyboardLayout()); + VM newVm = new VM(); + new BuilderExecutor<VM, VM>( + new KernelParamsAndIdVmToVmBuilder(), + new HaVmToVmBuilder(), + new UsbPolicyVmToVmBuilder()).build(vm, newVm); - VM newvm = tempVar; - - EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); - newvm.setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); - - EntityModel prioritySelectedItem = (EntityModel) model.getPriority().getSelectedItem(); - newvm.setPriority((Integer) prioritySelectedItem.getEntity()); + new BuilderExecutor<UnitVmModel, VM>( + new CommonUnitToVmBuilder(), + new QuotaUnitToVmBuilder()).build(model, newVm); AddVmTemplateParameters addVmTemplateParameters = - new AddVmTemplateParameters(newvm, + new AddVmTemplateParameters(newVm, (String) model.getName().getEntity(), (String) model.getDescription().getEntity()); addVmTemplateParameters.setPublicUse((Boolean) model.getIsTemplatePublic().getEntity()); @@ -1864,6 +1842,7 @@ } }, this); + } private void Migrate() @@ -2355,76 +2334,18 @@ } + @SuppressWarnings("unchecked") private void onSave() { - UnitVmModel model = (UnitVmModel) getWindow(); - VM selectedItem = (VM) getSelectedItem(); - String name = (String) model.getName().getEntity(); - - // Save changes. - VmTemplate template = (VmTemplate) model.getTemplate().getSelectedItem(); - - getcurrentVm().setVmType(model.getVmType()); - getcurrentVm().setVmtGuid(template.getId()); - getcurrentVm().setName(name); - if (model.getQuota().getSelectedItem() != null) { - getcurrentVm().setQuotaId(((Quota) model.getQuota().getSelectedItem()).getId()); - } - getcurrentVm().setVmOs((VmOsType) model.getOSType().getSelectedItem()); - getcurrentVm().setNumOfMonitors((Integer) model.getNumOfMonitors().getSelectedItem()); - getcurrentVm().setAllowConsoleReconnect((Boolean) model.getAllowConsoleReconnect().getEntity()); - getcurrentVm().setVmDescription((String) model.getDescription().getEntity()); - getcurrentVm().setVmDomain(model.getDomain().getIsAvailable() ? (String) model.getDomain().getSelectedItem() - : ""); //$NON-NLS-1$ - getcurrentVm().setVmMemSizeMb((Integer) model.getMemSize().getEntity()); - getcurrentVm().setMinAllocatedMem((Integer) model.getMinAllocatedMemory().getEntity()); - Guid newClusterID = ((VDSGroup) model.getCluster().getSelectedItem()).getId(); - getcurrentVm().setVdsGroupId(newClusterID); - getcurrentVm().setTimeZone((model.getTimeZone().getIsAvailable() && model.getTimeZone().getSelectedItem() != null) ? ((Map.Entry<String, String>) model.getTimeZone() - .getSelectedItem()).getKey() - : ""); //$NON-NLS-1$ - getcurrentVm().setNumOfSockets((Integer) model.getNumOfSockets().getSelectedItem()); - getcurrentVm().setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity().toString()) - / (Integer) model.getNumOfSockets().getSelectedItem()); - getcurrentVm().setUsbPolicy((UsbPolicy) model.getUsbPolicy().getSelectedItem()); - getcurrentVm().setAutoSuspend(false); - getcurrentVm().setStateless((Boolean) model.getIsStateless().getEntity()); - getcurrentVm().setSmartcardEnabled((Boolean) model.getIsSmartcardEnabled().getEntity()); - getcurrentVm().setDeleteProtected((Boolean) model.getIsDeleteProtected().getEntity()); - getcurrentVm().setDefaultBootSequence(model.getBootSequence()); - getcurrentVm().setIsoPath(model.getCdImage().getIsChangable() ? (String) model.getCdImage().getSelectedItem() - : ""); //$NON-NLS-1$ - getcurrentVm().setAutoStartup((Boolean) model.getIsHighlyAvailable().getEntity()); - - getcurrentVm().setInitrdUrl((String) model.getInitrd_path().getEntity()); - getcurrentVm().setKernelUrl((String) model.getKernel_path().getEntity()); - getcurrentVm().setKernelParams((String) model.getKernel_parameters().getEntity()); - - getcurrentVm().setCustomProperties(model.getCustomPropertySheet().getEntity()); - - EntityModel displayProtocolSelectedItem = (EntityModel) model.getDisplayProtocol().getSelectedItem(); - getcurrentVm().setDefaultDisplayType((DisplayType) displayProtocolSelectedItem.getEntity()); - - EntityModel prioritySelectedItem = (EntityModel) model.getPriority().getSelectedItem(); - getcurrentVm().setPriority((Integer) prioritySelectedItem.getEntity()); - - getcurrentVm().setCpuPinning((String) model.getCpuPinning() - .getEntity()); - getcurrentVm().setVncKeyboardLayout((String) model.getVncKeyboardLayout().getSelectedItem()); - - if ((Boolean) model.getIsAutoAssign().getEntity()) { - getcurrentVm().setDedicatedVmForVds(null); - } - else { - VDS defaultHost = (VDS) model.getDefaultHost().getSelectedItem(); - getcurrentVm().setDedicatedVmForVds(defaultHost.getId()); - } - - getcurrentVm().setMigrationSupport((MigrationSupport) model.getMigrationMode().getSelectedItem()); - - getcurrentVm().setUseHostCpuFlags((Boolean) model.getHostCpu().getEntity()); - + final UnitVmModel model = (UnitVmModel) getWindow(); + new BuilderExecutor<UnitVmModel, VM>( + new CommonUnitToVmBuilder(), + new VmSpecificUnitToVmBuilder(), + new MigrationSupportVmToUnitBuilder(), + new KernelParamsUnitToVmBuilder(), + new UsbPolicyUntiToVmBuilder(), + new QuotaUnitToVmBuilder()).build(model, getcurrentVm()); if (model.getIsNew()) { @@ -2498,6 +2419,8 @@ vmListModel); } }; + + VmTemplate template = (VmTemplate) model.getTemplate().getSelectedItem(); AsyncDataProvider.GetTemplateDiskList(_asyncQuery, template.getId()); } else @@ -2537,7 +2460,8 @@ // runEditVM: should be true if Cluster hasn't changed or if // Cluster has changed and Editing it in the Backend has succeeded: - Guid oldClusterID = selectedItem.getVdsGroupId(); + Guid newClusterID = ((VDSGroup) model.getCluster().getSelectedItem()).getId(); + Guid oldClusterID = ((VM) getSelectedItem()).getVdsGroupId(); if (oldClusterID.equals(newClusterID) == false) { ChangeVMClusterParameters parameters = @@ -2608,6 +2532,25 @@ } } + protected void addVmFromTemplate(final UnitVmModel model, HashMap<Guid, DiskImage> dict) { + AddVmFromTemplateParameters param = + new AddVmFromTemplateParameters(getcurrentVm(), + dict, Guid.Empty); + + ArrayList<VdcActionParametersBase> parameters = new ArrayList<VdcActionParametersBase>(); + parameters.add(param); + Frontend.RunMultipleAction(VdcActionType.AddVmFromTemplate, parameters, + new IFrontendMultipleActionAsyncCallback() { + @Override + public void Executed(FrontendMultipleActionAsyncResult result) { + VmListModel vmListModel1 = (VmListModel) result.getState(); + vmListModel1.getWindow().StopProgress(); + vmListModel1.Cancel(); + } + }, + VmListModel.this); + } + private void RetrieveIsoImages() { Object tempVar = getSelectedItem(); -- To view, visit http://gerrit.ovirt.org/13915 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I54d938896e469c73800297c3d66185a439243a41 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tomas Jelinek <tjeli...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches