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

Reply via email to