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