Lior Vernia has uploaded a new change for review.

Change subject: engine: Cache VM interfaces when cloning from snapshot
......................................................................

engine: Cache VM interfaces when cloning from snapshot

The previous implementation didn't cache the interfaces, therefore
though their vNIC profile IDs were updated, that didn't really take
effect when looking for the profile to assign to the cloned
interfaces.

Change-Id: I37096b1e8596c7c52fc5ced61008ab1e17a6051d
Bug-Url: https://bugzilla.redhat.com/1178508
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java
2 files changed, 12 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/36587/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
index a1a5b80..0a97715 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java
@@ -50,6 +50,8 @@
  */
 public abstract class AddVmAndCloneImageCommand<T extends AddVmParameters> 
extends AddVmCommand<T> {
 
+    private Collection<VmNetworkInterface> configurationVmInterfaces;
+
     protected AddVmAndCloneImageCommand(Guid commandId) {
         super(commandId);
     }
@@ -375,9 +377,16 @@
     @Override
     protected List<VmNic> getVmInterfaces() {
         if (_vmInterfaces == null) {
-            _vmInterfaces = Entities.<VmNic, VmNetworkInterface> 
upcast(getVmFromConfiguration().getInterfaces());
+            _vmInterfaces = Entities.<VmNic, VmNetworkInterface> 
upcast(getConfigurationVmInterfaces());
         }
         return _vmInterfaces;
+    }
+
+    private Collection<VmNetworkInterface> getConfigurationVmInterfaces() {
+        if (configurationVmInterfaces == null) {
+            configurationVmInterfaces = 
getVmFromConfiguration().getInterfaces();
+        }
+        return configurationVmInterfaces;
     }
 
     @Override
@@ -388,7 +397,7 @@
                         getVdsGroup().getcompatibility_version(),
                         AuditLogType.ADD_VM_FROM_SNAPSHOT_INVALID_INTERFACES);
 
-        for (VmNetworkInterface iface : 
getVmFromConfiguration().getInterfaces()) {
+        for (VmNetworkInterface iface : getConfigurationVmInterfaces()) {
             vnicProfileHelper.updateNicWithVnicProfileForUser(iface, 
getCurrentUser());
         }
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java
index c49d6bf..8614e06 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Entities.java
@@ -175,7 +175,7 @@
         return sb.toString();
     }
 
-    public static <B, G extends B> List<B> upcast(List<G> entities) {
+    public static <B, G extends B> List<B> upcast(Collection<G> entities) {
         List<B> baseEntities = new ArrayList<B>(entities.size());
         for (G entity : entities) {
             baseEntities.add(entity);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I37096b1e8596c7c52fc5ced61008ab1e17a6051d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to