Frank Kobzik has uploaded a new change for review.

Change subject: core: fix creating instance type via ui
......................................................................

core: fix creating instance type via ui

Previously when user was creating an instance type via ui, graphics
device was not created.

This patch adds creating graphics from params on adding new instance
type/template.

Change-Id: I782cde707241312483ce5f668a0fb45d7d3d33ee
Signed-off-by: Frantisek Kobzik <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GraphicsParameters.java
2 files changed, 23 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/37562/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
index 824b134..e311ced 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java
@@ -44,6 +44,8 @@
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.ArchitectureType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
+import org.ovirt.engine.core.common.businessentities.GraphicsDevice;
+import org.ovirt.engine.core.common.businessentities.GraphicsType;
 import org.ovirt.engine.core.common.businessentities.Permissions;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
@@ -280,6 +282,7 @@
                 addPermission();
                 addVmTemplateImages(srcDeviceIdToTargetDeviceIdMapping);
                 addVmInterfaces(srcDeviceIdToTargetDeviceIdMapping);
+                Set<GraphicsType> graphicsToSkip = 
getParameters().getGraphicsDevices().keySet();
                 if (isVmInDb) {
                     VmDeviceUtils.copyVmDevices(getVmId(),
                             getVmTemplateId(),
@@ -288,7 +291,7 @@
                             getParameters().isConsoleEnabled(),
                             getParameters().isVirtioScsiEnabled(),
                             VmDeviceUtils.isBalloonEnabled(getVmId()),
-                            getParameters().getGraphicsDevices().keySet(),
+                            graphicsToSkip,
                             false);
                 } else {
                     // for instance type and new template without a VM
@@ -299,12 +302,13 @@
                             getParameters().isConsoleEnabled(),
                             getParameters().isVirtioScsiEnabled(),
                             getParameters().isBalloonEnabled(),
-                            getParameters().getGraphicsDevices().keySet(),
+                            graphicsToSkip,
                             false);
                 }
 
                 updateWatchdog(getVmTemplateId());
                 updateRngDevice(getVmTemplateId());
+                addGraphicsDevice();
 
                 setSucceeded(true);
                 return null;
@@ -323,6 +327,21 @@
         }
     }
 
+    /**
+     * Add graphics based on parameters.
+     */
+    private void addGraphicsDevice() {
+        for (GraphicsDevice graphicsDevice : 
getParameters().getGraphicsDevices().values()) {
+            if (graphicsDevice == null) {
+                continue;
+            }
+
+            graphicsDevice.setVmId(getVmTemplateId());
+            GraphicsParameters parameters = new 
GraphicsParameters(graphicsDevice).setVm(false);
+            getBackend().runInternalAction(VdcActionType.AddGraphicsDevice, 
parameters);
+        }
+    }
+
     private boolean doClusterRelatedChecks() {
         // A Template cannot be added in a cluster without a defined 
architecture
         if (getVdsGroup().getArchitecture() == ArchitectureType.undefined) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GraphicsParameters.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GraphicsParameters.java
index cf87ab7..d739ae3 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GraphicsParameters.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GraphicsParameters.java
@@ -16,15 +16,13 @@
         return vm;
     }
 
-    public void setVm(boolean vm) {
+    public GraphicsParameters setVm(boolean vm) {
         this.vm = vm;
+        return this;
     }
 
     public GraphicsDevice getDev() {
         return dev;
     }
 
-    public void setDev(GraphicsDevice dev) {
-        this.dev = dev;
-    }
 }


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

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

Reply via email to