Muli Salem has uploaded a new change for review. Change subject: core: Change Network Validation (#844396) ......................................................................
core: Change Network Validation (#844396) https://bugzilla.redhat.com/844396 This patch changes the way VmInterfaceManager validates a network. The purpose is to allow better use of the method from ImportVmCommand and from ImportVmTemplateCommand. Signed-off-by: Muli Salem <[email protected]> Change-Id: I1081d3c323ac33ee6eb5a3b1aa3a589fe8bc36a6 --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java 3 files changed, 15 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/24/7324/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java index 80588e0..28030e3 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java @@ -33,6 +33,8 @@ import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DiskImageBase; import org.ovirt.engine.core.common.businessentities.DiskImageDynamic; +import org.ovirt.engine.core.common.businessentities.Entities; +import org.ovirt.engine.core.common.businessentities.Network; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus; @@ -934,10 +936,12 @@ */ private void auditInvalidInterfaces() { List<VmNetworkInterface> interfaces = getVm().getInterfaces(); + Map<String, Network> networksInVdsByName = + Entities.entitiesByName(getNetworkDAO().getAllForCluster(getVm().getvds_group_id())); StringBuilder networks = new StringBuilder(); StringBuilder ifaces = new StringBuilder(); for (VmNetworkInterface iface : interfaces) { - if (!VmInterfaceManager.isValidVmNetwork(iface, getVm().getvds_group_id())) { + if (!VmInterfaceManager.isValidVmNetwork(iface, networksInVdsByName)) { networks.append(iface.getNetworkName()).append(","); ifaces.append(iface.getName()).append(","); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java index ad8f428..9ac8da2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java @@ -25,6 +25,8 @@ import org.ovirt.engine.core.common.businessentities.CopyVolumeType; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DiskImageDynamic; +import org.ovirt.engine.core.common.businessentities.Entities; +import org.ovirt.engine.core.common.businessentities.Network; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StorageType; @@ -342,6 +344,8 @@ protected void AddVmInterfaces() { List<VmNetworkInterface> interfaces = getVmTemplate().getInterfaces(); + Map<String, Network> networksInVdsByName = + Entities.entitiesByName(getNetworkDAO().getAllForCluster(getVm().getvds_group_id())); String networkName; for (VmNetworkInterface iface : interfaces) { if (iface.getId() == null) { @@ -357,7 +361,7 @@ iStat.setVmId(getVmTemplateId()); iDynamic.setVmTemplateId(getVmTemplateId()); iDynamic.setName(iface.getName()); - if (VmInterfaceManager.isValidVmNetwork(iface, getVmTemplate().getvds_group_id())) { + if (VmInterfaceManager.isValidVmNetwork(iface, networksInVdsByName)) { iDynamic.setNetworkName(networkName); } else { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java index 85edfc8..25b67f2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java @@ -6,9 +6,8 @@ import org.ovirt.engine.core.bll.MacPoolManager; import org.ovirt.engine.core.bll.context.CompensationContext; import org.ovirt.engine.core.common.AuditLogType; -import org.ovirt.engine.core.common.businessentities.Entities; -import org.ovirt.engine.core.common.businessentities.VmNetworkInterface; import org.ovirt.engine.core.common.businessentities.Network; +import org.ovirt.engine.core.common.businessentities.VmNetworkInterface; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; @@ -78,16 +77,13 @@ } /** - * Checks if a Network belongs to the cluster and is a VM Network + * Checks if a Network is in the given list and is a VM Network + * * @param iface - * @param clusterId + * @param networksByName * @return */ - public static boolean isValidVmNetwork(VmNetworkInterface iface, Guid clusterId) { - Map<String, Network> networksByName = - Entities.entitiesByName(DbFacade.getInstance() - .getNetworkDAO() - .getAllForCluster(clusterId)); + public static boolean isValidVmNetwork(VmNetworkInterface iface, Map<String, Network> networksByName) { String networkName = iface.getNetworkName(); return (networksByName.containsKey(networkName) && networksByName.get(networkName).isVmNetwork()); } -- To view, visit http://gerrit.ovirt.org/7324 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1081d3c323ac33ee6eb5a3b1aa3a589fe8bc36a6 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Muli Salem <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
