Martin Betak has uploaded a new change for review.

Change subject: frontend: Builders on frontend
......................................................................

frontend: Builders on frontend

Change-Id: I7cbd0f8c79ae13dd368a7542262397168c363f57
Signed-off-by: Martin Betak <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/BuilderExecutor.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsVmBaseToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsVmBaseToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/SingleQxlUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUnitToVmBaseBuilder.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmBaseToVmBaseBuilder.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/pools/PoolListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.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/VmListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java
18 files changed, 292 insertions(+), 284 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/23474/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/BuilderExecutor.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/BuilderExecutor.java
index f57eeaa..be33032 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/BuilderExecutor.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/BuilderExecutor.java
@@ -22,6 +22,14 @@
     private BuilderList<S, D> builders;
 
     /**
+     * Helper method that constructs the @{link BuilderExecutor} from given 
builders and immediately utilizes him
+     * to perform build from <code>source</code> to <code>destination</code>.
+     */
+    public static <S, D> void build(S source, D destination, Builder<S, D>... 
builders) {
+        new BuilderExecutor<S, D>(builders).build(source, destination);
+    }
+
+    /**
      * Asynchronous version of this class. Use it when any builder in the 
chain is asynchronous
      *
      * @param callback
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..908a52a
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/CommonUnitToVmBaseBuilder.java
@@ -0,0 +1,31 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.DisplayType;
+import org.ovirt.engine.core.common.businessentities.VmBase;
+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;
+
+public class CommonUnitToVmBaseBuilder extends BaseSyncBuilder<UnitVmModel, 
VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        vm.setVmType(model.getVmType().getSelectedItem());
+        vm.setVdsGroupId(model.getSelectedCluster().getId());
+        vm.setTimeZone(model.getTimeZone().getIsAvailable() && 
model.getTimeZone().getSelectedItem() != null ? model.getTimeZone()
+                .getSelectedItem().getTimeZoneKey() : ""); //$NON-NLS-1$
+        vm.setDefaultBootSequence(model.getBootSequence());
+        vm.setDomain(model.getDomain().getIsAvailable() ? 
model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$
+        vm.setIsoPath(model.getCdImage().getIsChangable() ? 
model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$
+        vm.setMemSizeMb(model.getMemSize().getEntity());
+        vm.setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
+        vm.setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
+        vm.setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
+        vm.setSsoMethod(model.extractSelectedSsoMethod());
+        vm.setNumOfSockets(model.getNumOfSockets().getSelectedItem());
+        
vm.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity()) / 
model.getNumOfSockets().getSelectedItem());
+        vm.setDeleteProtected(model.getIsDeleteProtected().getEntity());
+        vm.setOsId(model.getOSType().getSelectedItem());
+        vm.setVncKeyboardLayout(vm.getVncKeyboardLayout());
+        
vm.setDefaultDisplayType(model.getDisplayProtocol().getSelectedItem().getEntity());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..ade567c
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsUnitToVmBaseBuilder.java
@@ -0,0 +1,19 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class DedicatedVmForVdsUnitToVmBaseBuilder extends 
BaseSyncBuilder<UnitVmModel, VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        // host migration configuration
+        VDS defaultHost = model.getDefaultHost().getSelectedItem();
+        if (model.getIsAutoAssign().getEntity()) {
+            vm.setDedicatedVmForVds(null);
+        } else {
+            vm.setDedicatedVmForVds(defaultHost.getId());
+        }
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsVmBaseToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsVmBaseToVmBaseBuilder.java
new file mode 100644
index 0000000..f5ed458
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/DedicatedVmForVdsVmBaseToVmBaseBuilder.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+
+public class DedicatedVmForVdsVmBaseToVmBaseBuilder extends 
BaseSyncBuilder<VmBase, VmBase> {
+    @Override
+    protected void build(VmBase source, VmBase destination) {
+        destination.setDedicatedVmForVds(source.getDedicatedVmForVds());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..0d54260
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsUnitToVmBaseBuilder.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class KernelParamsUnitToVmBaseBuilder extends 
BaseSyncBuilder<UnitVmModel, VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        vm.setInitrdUrl(model.getInitrd_path().getEntity());
+        vm.setKernelUrl(model.getKernel_path().getEntity());
+        vm.setKernelParams(model.getKernel_parameters().getEntity());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToVmBaseBuilder.java
new file mode 100644
index 0000000..baae745
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/KernelParamsVmBaseToVmBaseBuilder.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+
+/**
+ * Created by mbetak on 1/20/14.
+ */
+public class KernelParamsVmBaseToVmBaseBuilder extends BaseSyncBuilder<VmBase, 
VmBase> {
+    @Override
+    protected void build(VmBase source, VmBase destination) {
+        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/MigrationOptionsUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..e6c25d8
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsUnitToVmBaseBuilder.java
@@ -0,0 +1,13 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class MigrationOptionsUnitToVmBaseBuilder extends 
BaseSyncBuilder<UnitVmModel, VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        vm.setMigrationSupport(model.getMigrationMode().getSelectedItem());
+        vm.setMigrationDowntime(model.getSelectedMigrationDowntime());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsVmBaseToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsVmBaseToVmBaseBuilder.java
new file mode 100644
index 0000000..874a1e8
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/MigrationOptionsVmBaseToVmBaseBuilder.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+
+public class MigrationOptionsVmBaseToVmBaseBuilder extends 
BaseSyncBuilder<VmBase, VmBase> {
+    @Override
+    protected void build(VmBase source, VmBase destination) {
+        destination.setMigrationSupport(source.getMigrationSupport());
+        destination.setMigrationDowntime(source.getMigrationDowntime());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..d2b3b95
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/QuotaUnitToVmBaseBuilder.java
@@ -0,0 +1,14 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class QuotaUnitToVmBaseBuilder extends BaseSyncBuilder<UnitVmModel, 
VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        if (model.getQuota().getIsAvailable() && 
model.getQuota().getSelectedItem() != null) {
+            vm.setQuotaId(model.getQuota().getSelectedItem().getId());
+        }
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/SingleQxlUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/SingleQxlUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..64a3891
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/SingleQxlUnitToVmBaseBuilder.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class SingleQxlUnitToVmBaseBuilder extends BaseSyncBuilder<UnitVmModel, 
VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        vm.setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUnitToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUnitToVmBaseBuilder.java
new file mode 100644
index 0000000..76264a0
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyUnitToVmBaseBuilder.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class UsbPolicyUnitToVmBaseBuilder extends BaseSyncBuilder<UnitVmModel, 
VmBase> {
+    @Override
+    protected void build(UnitVmModel model, VmBase vm) {
+        vm.setUsbPolicy(model.getUsbPolicy().getSelectedItem());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmBaseToVmBaseBuilder.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmBaseToVmBaseBuilder.java
new file mode 100644
index 0000000..b2a33c5
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/UsbPolicyVmBaseToVmBaseBuilder.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.ui.uicommonweb.builders.vm;
+
+import org.ovirt.engine.core.common.businessentities.VmBase;
+import org.ovirt.engine.ui.uicommonweb.builders.BaseSyncBuilder;
+
+public class UsbPolicyVmBaseToVmBaseBuilder extends BaseSyncBuilder<VmBase, 
VmBase> {
+    @Override
+    protected void build(VmBase source, VmBase destination) {
+        destination.setUsbPolicy(source.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..b16b5b2
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/builders/vm/VmSpecificUnitToVmBuilder.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;
+import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
+
+public class VmSpecificUnitToVmBuilder extends BaseSyncBuilder<UnitVmModel, 
VM> {
+    @Override
+    protected void build(UnitVmModel model, VM vm) {
+        vm.setVmtGuid(model.getTemplate().getSelectedItem().getId());
+        vm.setVmDescription(model.getDescription().getEntity());
+        vm.setComment(model.getComment().getEntity());
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java
index d80a5e1..400e736 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/pools/PoolListModel.java
@@ -33,6 +33,13 @@
 import org.ovirt.engine.ui.uicommonweb.Cloner;
 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.CommonUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationOptionsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SingleQxlUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUnitToVmBaseBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -455,55 +462,19 @@
                             
pool.setSpiceProxy(model.getSpiceProxy().getEntity());
                         }
 
-                        Guid default_host;
-                        VDS defaultHost = 
model.getDefaultHost().getSelectedItem();
-                        if (model.getIsAutoAssign().getEntity())
-                        {
-                            default_host = null;
-                        }
-                        else
-                        {
-                            default_host = defaultHost.getId();
-                        }
-
 
                         VM vm = new VM();
                         
vm.setVmtGuid((model.getTemplate().getSelectedItem()).getId());
+                        BuilderExecutor.build(model, vm.getStaticData(),
+                                              new CommonUnitToVmBaseBuilder(),
+                                              new 
KernelParamsUnitToVmBaseBuilder(),
+                                              new 
MigrationOptionsUnitToVmBaseBuilder(),
+                                              new 
DedicatedVmForVdsUnitToVmBaseBuilder(),
+                                              new 
SingleQxlUnitToVmBaseBuilder(),
+                                              new 
UsbPolicyUnitToVmBaseBuilder());
                         vm.setName(name);
-                        vm.setVmOs(model.getOSType().getSelectedItem());
-                        
vm.setDeleteProtected(model.getIsDeleteProtected().getEntity());
-                        vm.setSsoMethod(model.extractSelectedSsoMethod());
-                        
vm.setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-                        
vm.setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
-                        
vm.setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
-                        vm.setVmDomain(model.getDomain().getIsAvailable() ? 
model.getDomain()
-                                .getSelectedItem() : ""); //$NON-NLS-1$
-                        vm.setVmMemSizeMb(model.getMemSize().getEntity());
-                        
vm.setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
-                        vm.setVdsGroupId(model.getSelectedCluster().getId());
-                        vm.setTimeZone((model.getTimeZone().getIsAvailable() 
&& model.getTimeZone()
-                                .getSelectedItem() != null) ? 
model.getTimeZone().getSelectedItem().getTimeZoneKey()
-                                : ""); //$NON-NLS-1$
-                        
vm.setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-                        
vm.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
-                                / model.getNumOfSockets().getSelectedItem());
-                        
vm.setUsbPolicy(model.getUsbPolicy().getSelectedItem());
                         vm.setStateless(false);
-                        vm.setDefaultBootSequence(model.getBootSequence());
-                        vm.setIsoPath(model.getCdImage().getIsChangable() ? 
model.getCdImage()
-                                .getSelectedItem() : ""); //$NON-NLS-1$
-                        vm.setDedicatedVmForVds(default_host);
-                        vm.setKernelUrl(model.getKernel_path().getEntity());
-                        
vm.setKernelParams(model.getKernel_parameters().getEntity());
-                        vm.setInitrdUrl(model.getInitrd_path().getEntity());
-                        
vm.setMigrationSupport(model.getMigrationMode().getSelectedItem());
-                        
vm.setMigrationDowntime(model.getSelectedMigrationDowntime());
-                        
vm.setDefaultVncKeyboardLayout(model.getVncKeyboardLayout().getSelectedItem());
-
-                        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-                        
vm.setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
                         
vm.setCustomProperties(model.getCustomPropertySheet().serialize());
-                        vm.setVmType(model.getVmType().getSelectedItem());
                         
vm.setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity());
 
                         AddVmPoolWithVmsParameters param =
@@ -511,7 +482,7 @@
 
                         param.setStorageDomainId(Guid.Empty);
                         
param.setDiskInfoDestinationMap(model.getDisksAllocationModel()
-                                .getImageToDestinationDomainMap());
+                                                                
.getImageToDestinationDomainMap());
                         
param.setConsoleEnabled(model.getIsConsoleDeviceEnabled().getEntity());
                         
param.setVirtioScsiEnabled(model.getIsVirtioScsiEnabled().getEntity());
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
index ea239d9..d2169f2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
@@ -31,6 +31,14 @@
 import org.ovirt.engine.ui.uicommonweb.Cloner;
 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.CommonUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationOptionsUnitToVmBaseBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SingleQxlUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUnitToVmBaseBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -428,63 +436,26 @@
         }
 
         // Save changes.
-        template.setVmType(model.getVmType().getSelectedItem());
+        BuilderExecutor.build(model, template,
+                              new CommonUnitToVmBaseBuilder(),
+                              new KernelParamsUnitToVmBaseBuilder(),
+                              new MigrationOptionsUnitToVmBaseBuilder(),
+                              new QuotaUnitToVmBaseBuilder(),
+                              new DedicatedVmForVdsUnitToVmBaseBuilder(),
+                              new SingleQxlUnitToVmBaseBuilder(),
+                              new UsbPolicyUnitToVmBaseBuilder());
         template.setName(name);
-        template.setOsId(model.getOSType().getSelectedItem());
-        template.setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
         
template.setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity());
         template.setDescription(model.getDescription().getEntity());
         template.setComment(model.getComment().getEntity());
-        template.setDomain(model.getDomain().getIsAvailable() ? 
model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$
-        template.setMemSizeMb(model.getMemSize().getEntity());
-        template.setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
 
-        template.setVdsGroupId((model.getSelectedCluster()).getId());
-        template.setTimeZone((model.getTimeZone().getIsAvailable() && 
model.getTimeZone().getSelectedItem() != null) ? (model.getTimeZone()
-                .getSelectedItem()).getTimeZoneKey()
-                : ""); //$NON-NLS-1$
-        template.setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-        
template.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
-                / model.getNumOfSockets().getSelectedItem());
-        template.setUsbPolicy(model.getUsbPolicy().getSelectedItem());
         template.setStateless(model.getIsStateless().getEntity());
         template.setRunAndPause(model.getIsRunAndPause().getEntity());
-        template.setDeleteProtected(model.getIsDeleteProtected().getEntity());
-        template.setSsoMethod(model.extractSelectedSsoMethod());
-        
template.setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-        template.setDefaultBootSequence(model.getBootSequence());
-        template.setIsoPath(model.getCdImage().getIsChangable() ? 
model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$
         template.setAutoStartup(model.getIsHighlyAvailable().getEntity());
-        template.setKernelUrl(model.getKernel_path().getEntity());
-        template.setKernelParams(model.getKernel_parameters().getEntity());
-        template.setInitrdUrl(model.getInitrd_path().getEntity());
-        
template.setVncKeyboardLayout(model.getVncKeyboardLayout().getSelectedItem());
         template.setCreatedByUserId(selectedItem.getCreatedByUserId());
-        template.setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
-        template.setMigrationDowntime(model.getSelectedMigrationDowntime());
-
-        if (model.getQuota().getIsAvailable() && 
model.getQuota().getSelectedItem() != null) {
-            template.setQuotaId(model.getQuota().getSelectedItem().getId());
-        }
-
-        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-        
template.setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
 
         EntityModel<Integer> prioritySelectedItem = 
model.getPriority().getSelectedItem();
         template.setPriority(prioritySelectedItem.getEntity());
-
-        // host migration configuration
-        VDS defaultHost = model.getDefaultHost().getSelectedItem();
-        if (model.getIsAutoAssign().getEntity())
-        {
-            template.setDedicatedVmForVds(null);
-        }
-        else
-        {
-            template.setDedicatedVmForVds(defaultHost.getId());
-        }
-
-        
template.setMigrationSupport(model.getMigrationMode().getSelectedItem());
 
         model.startProgress(null);
 
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 de00a7a..7daea8e 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
@@ -42,6 +42,16 @@
 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.CommonUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsVmBaseToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationOptionsUnitToVmBaseBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SingleQxlUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyVmBaseToVmBaseBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.ConsoleModelsCache;
@@ -595,40 +605,21 @@
 
         VM tempVar = new VM();
         tempVar.setId(vm.getId());
-        tempVar.setVmType(model.getVmType().getSelectedItem());
-        tempVar.setVmOs(model.getOSType().getSelectedItem());
 
-        tempVar.setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
-        tempVar.setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
+        BuilderExecutor.build(model, tempVar.getStaticData(),
+                              new CommonUnitToVmBaseBuilder(),
+                              new QuotaUnitToVmBaseBuilder(),
+                              new SingleQxlUnitToVmBaseBuilder());
+        BuilderExecutor.build(vm.getStaticData(), tempVar.getStaticData(),
+                              new KernelParamsVmBaseToVmBaseBuilder(),
+                              new UsbPolicyVmBaseToVmBaseBuilder());
         
tempVar.setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity());
-        tempVar.setVmDomain(model.getDomain().getIsAvailable() ? 
model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$
-        tempVar.setVmMemSizeMb(model.getMemSize().getEntity());
-        tempVar.setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
 
-        tempVar.setVdsGroupId(model.getSelectedCluster().getId());
-        tempVar.setTimeZone(model.getTimeZone().getIsAvailable() && 
model.getTimeZone().getSelectedItem() != null ? model.getTimeZone()
-                .getSelectedItem().getTimeZoneKey() : ""); //$NON-NLS-1$
-        tempVar.setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-        
tempVar.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
-                / model.getNumOfSockets().getSelectedItem());
-        tempVar.setDeleteProtected(model.getIsDeleteProtected().getEntity());
-        tempVar.setSsoMethod(model.extractSelectedSsoMethod());
         tempVar.setStateless(model.getIsStateless().getEntity());
         tempVar.setRunAndPause(model.getIsRunAndPause().getEntity());
-        tempVar.setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-        tempVar.setDefaultBootSequence(model.getBootSequence());
         tempVar.setAutoStartup(model.getIsHighlyAvailable().getEntity());
-        tempVar.setIsoPath(model.getCdImage().getIsChangable() ? 
model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$
-        tempVar.setUsbPolicy(vm.getUsbPolicy());
-        tempVar.setInitrdUrl(vm.getInitrdUrl());
-        tempVar.setKernelUrl(vm.getKernelUrl());
-        tempVar.setKernelParams(vm.getKernelParams());
-        tempVar.setDefaultVncKeyboardLayout(vm.getDefaultVncKeyboardLayout());
         tempVar.setMigrationDowntime(vm.getMigrationDowntime());
         VM newvm = tempVar;
-
-        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-        newvm.setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
 
         EntityModel<Integer> prioritySelectedItem = 
model.getPriority().getSelectedItem();
         newvm.setPriority(prioritySelectedItem.getEntity());
@@ -639,10 +630,6 @@
                         model.getDescription().getEntity());
 
         
addVmTemplateParameters.setPublicUse(model.getIsTemplatePublic().getEntity());
-
-        if (model.getQuota().getSelectedItem() != null) {
-            newvm.setQuotaId(model.getQuota().getSelectedItem().getId());
-        }
 
         
addVmTemplateParameters.setDiskInfoDestinationMap(model.getDisksAllocationModel()
                 .getImageToDestinationDomainMap());
@@ -1021,68 +1008,29 @@
         // Save changes.
         VmTemplate template = model.getTemplate().getSelectedItem();
 
-        gettempVm().setVmType(model.getVmType().getSelectedItem());
+        BuilderExecutor.build(model, gettempVm().getStaticData(),
+                              new CommonUnitToVmBaseBuilder(),
+                              new KernelParamsUnitToVmBaseBuilder(),
+                              new QuotaUnitToVmBaseBuilder(),
+                              new MigrationOptionsUnitToVmBaseBuilder(),
+                              new DedicatedVmForVdsUnitToVmBaseBuilder(),
+                              new SingleQxlUnitToVmBaseBuilder(),
+                              new UsbPolicyUnitToVmBaseBuilder());
+
         gettempVm().setVmtGuid(template.getId());
         gettempVm().setName(name);
-        gettempVm().setVmOs(model.getOSType().getSelectedItem());
-        
gettempVm().setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
-        gettempVm().setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
         
gettempVm().setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity());
         gettempVm().setVmDescription(model.getDescription().getEntity());
-        gettempVm().setVmDomain(model.getDomain().getIsAvailable() ? 
model.getDomain()
-                .getSelectedItem() : ""); //$NON-NLS-1$
-        gettempVm().setVmMemSizeMb(model.getMemSize().getEntity());
-        
gettempVm().setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
-        Guid newClusterID = model.getSelectedCluster().getId();
-        gettempVm().setVdsGroupId(newClusterID);
-        gettempVm().setTimeZone((model.getTimeZone().getIsAvailable() && 
model.getTimeZone()
-                .getSelectedItem() != null) ? model.getTimeZone()
-                .getSelectedItem().getTimeZoneKey() : ""); //$NON-NLS-1$
-        gettempVm().setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-        
gettempVm().setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
-                / model.getNumOfSockets().getSelectedItem());
-        gettempVm().setUsbPolicy(model.getUsbPolicy().getSelectedItem());
         gettempVm().setStateless(model.getIsStateless().getEntity());
         gettempVm().setRunAndPause(model.getIsRunAndPause().getEntity());
-        
gettempVm().setDeleteProtected(model.getIsDeleteProtected().getEntity());
-        gettempVm().setSsoMethod(model.extractSelectedSsoMethod());
-        
gettempVm().setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-        gettempVm().setDefaultBootSequence(model.getBootSequence());
-        gettempVm().setIsoPath(model.getCdImage().getIsChangable() ? 
model.getCdImage()
-                .getSelectedItem() : ""); //$NON-NLS-1$
         gettempVm().setAutoStartup(model.getIsHighlyAvailable().getEntity());
-        
gettempVm().setDefaultVncKeyboardLayout(model.getVncKeyboardLayout().getSelectedItem());
-
-        gettempVm().setInitrdUrl(model.getInitrd_path().getEntity());
-        gettempVm().setKernelUrl(model.getKernel_path().getEntity());
-        gettempVm().setKernelParams(model.getKernel_parameters().getEntity());
 
         
gettempVm().setCustomProperties(model.getCustomPropertySheet().serialize());
-
-        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-        
gettempVm().setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
 
         EntityModel<Integer> prioritySelectedItem = 
model.getPriority().getSelectedItem();
         gettempVm().setPriority(prioritySelectedItem.getEntity());
 
-        if (model.getQuota().getSelectedItem() != null) {
-            gettempVm().setQuotaId(model.getQuota().getSelectedItem().getId());
-        }
-
         gettempVm().setCpuPinning(model.getCpuPinning().getEntity());
-        gettempVm().setMigrationDowntime(model.getSelectedMigrationDowntime());
-
-        VDS defaultHost = model.getDefaultHost().getSelectedItem();
-        if (model.getIsAutoAssign().getEntity())
-        {
-            gettempVm().setDedicatedVmForVds(null);
-        }
-        else
-        {
-            gettempVm().setDedicatedVmForVds(defaultHost.getId());
-        }
-
-        
gettempVm().setMigrationSupport(model.getMigrationMode().getSelectedItem());
 
         if (model.getIsNew())
         {
@@ -1141,6 +1089,7 @@
         else
         {
             Guid oldClusterID = ((VM) 
selectedItem.getEntity()).getVdsGroupId();
+            Guid newClusterID = model.getSelectedCluster().getId();
             if (oldClusterID.equals(newClusterID) == false)
             {
                 
Frontend.getInstance().runAction(VdcActionType.ChangeVMCluster, new 
ChangeVMClusterParameters(newClusterID,
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 a3c57c4..ebb14f8 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
@@ -61,6 +61,19 @@
 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.Builder;
+import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CommonUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsVmBaseToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsVmBaseToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationOptionsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationOptionsVmBaseToVmBaseBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.SingleQxlUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyVmBaseToVmBaseBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.ConsoleModelsCache;
@@ -1305,45 +1318,21 @@
 
         VM tempVar = new VM();
         tempVar.setId(vm.getId());
-        tempVar.setVmType(model.getVmType().getSelectedItem());
-        if (model.getQuota().getSelectedItem() != null) {
-            tempVar.setQuotaId(model.getQuota().getSelectedItem().getId());
-        }
-        tempVar.setVmOs(model.getOSType().getSelectedItem());
-        tempVar.setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
-        tempVar.setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
+        BuilderExecutor.build(model, tempVar.getStaticData(),
+                              new CommonUnitToVmBaseBuilder(),
+                              new QuotaUnitToVmBaseBuilder(),
+                              new SingleQxlUnitToVmBaseBuilder());
+        BuilderExecutor.build(vm.getStaticData(), tempVar.getStaticData(),
+                              new KernelParamsVmBaseToVmBaseBuilder(),
+                              new DedicatedVmForVdsVmBaseToVmBaseBuilder(),
+                              new MigrationOptionsVmBaseToVmBaseBuilder(),
+                              new UsbPolicyVmBaseToVmBaseBuilder());
         
tempVar.setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity());
-        tempVar.setVmDomain(model.getDomain().getIsAvailable() ? 
model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$
-        tempVar.setVmMemSizeMb(model.getMemSize().getEntity());
-        tempVar.setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
-        tempVar.setVdsGroupId(model.getSelectedCluster().getId());
-        tempVar.setTimeZone(model.getTimeZone().getIsAvailable() && 
model.getTimeZone().getSelectedItem() != null ? (model.getTimeZone()
-                .getSelectedItem()).getTimeZoneKey()
-                : ""); //$NON-NLS-1$
-        tempVar.setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-        
tempVar.setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
-                / model.getNumOfSockets().getSelectedItem());
         tempVar.setStateless(model.getIsStateless().getEntity());
         tempVar.setRunAndPause(model.getIsRunAndPause().getEntity());
-        tempVar.setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-        tempVar.setDeleteProtected(model.getIsDeleteProtected().getEntity());
-        tempVar.setSsoMethod(model.extractSelectedSsoMethod());
-        tempVar.setDefaultBootSequence(model.getBootSequence());
         tempVar.setAutoStartup(model.getIsHighlyAvailable().getEntity());
-        tempVar.setIsoPath(model.getCdImage().getIsChangable() ? 
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.setDefaultVncKeyboardLayout(vm.getDefaultVncKeyboardLayout());
-        tempVar.setMigrationDowntime(vm.getMigrationDowntime());
 
         VM newvm = tempVar;
-
-        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-        newvm.setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
 
         EntityModel<Integer> prioritySelectedItem = 
model.getPriority().getSelectedItem();
         newvm.setPriority(prioritySelectedItem.getEntity());
@@ -1876,71 +1865,35 @@
         // Save changes.
         VmTemplate template = model.getTemplate().getSelectedItem();
 
-        getcurrentVm().setVmType(model.getVmType().getSelectedItem());
+        BuilderExecutor.build(model, getcurrentVm().getStaticData(),
+                              new CommonUnitToVmBaseBuilder(),
+                              new QuotaUnitToVmBaseBuilder(),
+                              new KernelParamsUnitToVmBaseBuilder(),
+                              new DedicatedVmForVdsUnitToVmBaseBuilder(),
+                              new MigrationOptionsUnitToVmBaseBuilder(),
+                              new UsbPolicyUnitToVmBaseBuilder());
+
         getcurrentVm().setVmtGuid(template.getId());
         getcurrentVm().setName(name);
-        if (model.getQuota().getSelectedItem() != null) {
-            
getcurrentVm().setQuotaId(model.getQuota().getSelectedItem().getId());
-        }
-        getcurrentVm().setVmOs(model.getOSType().getSelectedItem());
-        
getcurrentVm().setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
         
getcurrentVm().setSingleQxlPci(model.getIsSingleQxlEnabled().getEntity());
         
getcurrentVm().setAllowConsoleReconnect(model.getAllowConsoleReconnect().getEntity());
         getcurrentVm().setVmDescription(model.getDescription().getEntity());
         getcurrentVm().setComment(model.getComment().getEntity());
-        getcurrentVm().setVmDomain(model.getDomain().getIsAvailable() ? 
model.getDomain().getSelectedItem()
-                : ""); //$NON-NLS-1$
-        getcurrentVm().setVmMemSizeMb(model.getMemSize().getEntity());
-        
getcurrentVm().setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
-        Guid newClusterID = model.getSelectedCluster().getId();
-        getcurrentVm().setVdsGroupId(newClusterID);
-        getcurrentVm().setTimeZone((model.getTimeZone().getIsAvailable() && 
model.getTimeZone().getSelectedItem() != null) ? model.getTimeZone()
-                .getSelectedItem().getTimeZoneKey()
-                : ""); //$NON-NLS-1$
-        
getcurrentVm().setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-        
getcurrentVm().setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
-                / model.getNumOfSockets().getSelectedItem());
-        getcurrentVm().setUsbPolicy(model.getUsbPolicy().getSelectedItem());
         getcurrentVm().setStateless(model.getIsStateless().getEntity());
         getcurrentVm().setRunAndPause(model.getIsRunAndPause().getEntity());
-        
getcurrentVm().setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-        
getcurrentVm().setDeleteProtected(model.getIsDeleteProtected().getEntity());
-        getcurrentVm().setSsoMethod(model.extractSelectedSsoMethod());
-        getcurrentVm().setDefaultBootSequence(model.getBootSequence());
-        getcurrentVm().setIsoPath(model.getCdImage().getIsChangable() ? 
model.getCdImage().getSelectedItem()
-                : ""); //$NON-NLS-1$
         
getcurrentVm().setAutoStartup(model.getIsHighlyAvailable().getEntity());
-
-        getcurrentVm().setInitrdUrl(model.getInitrd_path().getEntity());
-        getcurrentVm().setKernelUrl(model.getKernel_path().getEntity());
-        
getcurrentVm().setKernelParams(model.getKernel_parameters().getEntity());
 
         
getcurrentVm().setCustomProperties(model.getCustomPropertySheet().serialize());
         getcurrentVm().setBalloonEnabled(balloonEnabled(model));
-
-        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-        
getcurrentVm().setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
 
         EntityModel<Integer> prioritySelectedItem = 
model.getPriority().getSelectedItem();
         getcurrentVm().setPriority(prioritySelectedItem.getEntity());
 
         getcurrentVm().setCpuPinning(model.getCpuPinning().getEntity());
-        
getcurrentVm().setDefaultVncKeyboardLayout(model.getVncKeyboardLayout().getSelectedItem());
 
         if (model.getCpuSharesAmount().getIsAvailable() && 
model.getCpuSharesAmount().getEntity() != null) {  // $NON-NLS-1$
             
getcurrentVm().setCpuShares(model.getCpuSharesAmount().getEntity());
         }
-
-        if (model.getIsAutoAssign().getEntity()) {
-            getcurrentVm().setDedicatedVmForVds(null);
-        }
-        else {
-            VDS defaultHost = model.getDefaultHost().getSelectedItem();
-            getcurrentVm().setDedicatedVmForVds(defaultHost.getId());
-        }
-
-        
getcurrentVm().setMigrationSupport(model.getMigrationMode().getSelectedItem());
-        
getcurrentVm().setMigrationDowntime(model.getSelectedMigrationDowntime());
 
         getcurrentVm().setUseHostCpuFlags(model.getHostCpu().getEntity());
 
@@ -2059,6 +2012,7 @@
             // 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 = model.getSelectedCluster().getId();
             if (oldClusterID.equals(newClusterID) == false)
             {
                 ChangeVMClusterParameters parameters =
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java
index b361a41..08521eb 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java
@@ -33,6 +33,13 @@
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.Linq.SnapshotByCreationDateCommparer;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.builders.BuilderExecutor;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.CommonUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.DedicatedVmForVdsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.KernelParamsUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.MigrationOptionsUnitToVmBaseBuilder;
+import org.ovirt.engine.ui.uicommonweb.builders.vm.QuotaUnitToVmBaseBuilder;
+import 
org.ovirt.engine.ui.uicommonweb.builders.vm.UsbPolicyUnitToVmBaseBuilder;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -612,57 +619,25 @@
         // Save changes.
         VmTemplate template = model.getTemplate().getSelectedItem();
 
-        getcurrentVm().setVmType(model.getVmType().getSelectedItem());
+        BuilderExecutor.build(model, template,
+                              new CommonUnitToVmBaseBuilder(),
+                              new KernelParamsUnitToVmBaseBuilder(),
+                              new QuotaUnitToVmBaseBuilder(),
+                              new MigrationOptionsUnitToVmBaseBuilder(),
+                              new DedicatedVmForVdsUnitToVmBaseBuilder(),
+                              new UsbPolicyUnitToVmBaseBuilder());
+
         getcurrentVm().setVmtGuid(template.getId());
         getcurrentVm().setName(name);
-        getcurrentVm().setVmOs(model.getOSType().getSelectedItem());
-        
getcurrentVm().setNumOfMonitors(model.getNumOfMonitors().getSelectedItem());
         getcurrentVm().setVmDescription(model.getDescription().getEntity());
         getcurrentVm().setComment(model.getComment().getEntity());
-        getcurrentVm().setVmDomain(model.getDomain().getIsAvailable() ?
-                model.getDomain().getSelectedItem() : ""); //$NON-NLS-1$
-        getcurrentVm().setVmMemSizeMb(model.getMemSize().getEntity());
-        
getcurrentVm().setMinAllocatedMem(model.getMinAllocatedMemory().getEntity());
-        Guid newClusterID = model.getSelectedCluster().getId();
-        getcurrentVm().setVdsGroupId(newClusterID);
-        getcurrentVm().setTimeZone(
-                (model.getTimeZone().getIsAvailable() && 
model.getTimeZone().getSelectedItem() != null) ?
-                        
(model.getTimeZone().getSelectedItem()).getTimeZoneKey() : ""); //$NON-NLS-1$
-        
getcurrentVm().setNumOfSockets(model.getNumOfSockets().getSelectedItem());
-        
getcurrentVm().setCpuPerSocket(Integer.parseInt(model.getTotalCPUCores().getEntity())
 /
-                model.getNumOfSockets().getSelectedItem());
-        getcurrentVm().setUsbPolicy(model.getUsbPolicy().getSelectedItem());
         getcurrentVm().setStateless(model.getIsStateless().getEntity());
-        
getcurrentVm().setSmartcardEnabled(model.getIsSmartcardEnabled().getEntity());
-        
getcurrentVm().setDeleteProtected(model.getIsDeleteProtected().getEntity());
-        getcurrentVm().setSsoMethod(model.extractSelectedSsoMethod());
-        getcurrentVm().setDefaultBootSequence(model.getBootSequence());
-        getcurrentVm().setIsoPath(model.getCdImage().getIsChangable() ?
-                model.getCdImage().getSelectedItem() : ""); //$NON-NLS-1$
         
getcurrentVm().setAutoStartup(model.getIsHighlyAvailable().getEntity());
-        getcurrentVm().setInitrdUrl(model.getInitrd_path().getEntity());
-        getcurrentVm().setKernelUrl(model.getKernel_path().getEntity());
-        
getcurrentVm().setKernelParams(model.getKernel_parameters().getEntity());
         
getcurrentVm().setCustomProperties(model.getCustomProperties().getEntity());
-        if (model.getQuota().getIsAvailable() && 
model.getQuota().getSelectedItem() != null) {
-            
getcurrentVm().setQuotaId(model.getQuota().getSelectedItem().getId());
-        }
-
-        
getcurrentVm().setDefaultVncKeyboardLayout(model.getVncKeyboardLayout().getSelectedItem());
-
-        
getcurrentVm().setMigrationDowntime(model.getSelectedMigrationDowntime());
-
-        EntityModel<DisplayType> displayProtocolSelectedItem = 
model.getDisplayProtocol().getSelectedItem();
-        
getcurrentVm().setDefaultDisplayType(displayProtocolSelectedItem.getEntity());
 
         EntityModel<Integer> prioritySelectedItem = 
model.getPriority().getSelectedItem();
         getcurrentVm().setPriority(prioritySelectedItem.getEntity());
 
-        VDS defaultHost = model.getDefaultHost().getSelectedItem();
-        getcurrentVm().setDedicatedVmForVds(
-                model.getIsAutoAssign().getEntity() ? null : 
defaultHost.getId());
-
-        
getcurrentVm().setMigrationSupport(model.getMigrationMode().getSelectedItem());
         getcurrentVm().setUseHostCpuFlags(model.getHostCpu().getEntity());
         getcurrentVm().setDiskMap(behavior.getVm().getDiskMap());
 


-- 
To view, visit http://gerrit.ovirt.org/23474
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7cbd0f8c79ae13dd368a7542262397168c363f57
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Betak <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to