Muli Salem has uploaded a new change for review. Change subject: core: Align Import Behaviour (#844396) ......................................................................
core: Align Import Behaviour (#844396) https://bugzilla.redhat.com/844396 This patch changes the logging of ImportVmCommand and ImportVmTemplateCommand to behave the same. Signed-off-by: Muli Salem <[email protected]> Change-Id: I2e4abea497806421abed1159de07842b31711f1e --- 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/MoveOrCopyTemplateCommand.java 3 files changed, 48 insertions(+), 41 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/25/7325/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 28030e3..e563d8c 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 @@ -495,7 +495,7 @@ public Void runInTransaction() { AddVmStatic(); AddVmDynamic(); - AddVmNetwork(); + addVmInterfaces(); AddVmStatistics(); getCompensationContext().stateChanged(); return null; @@ -810,25 +810,35 @@ protected boolean macAdded = false; - protected void AddVmNetwork() { - addInterfacesFromTemplate(); - auditInvalidInterfaces(); - } - - private void addInterfacesFromTemplate() { + protected void addVmInterfaces() { VmInterfaceManager vmInterfaceManager = new VmInterfaceManager(); + List<String> invalidNetworkNames = new ArrayList<String>(); + List<String> invalidIfaceNames = new ArrayList<String>(); + Map<String, Network> networksInVdsByName = + Entities.entitiesByName(getNetworkDAO().getAllForCluster(getVm().getvds_group_id())); for (VmNetworkInterface iface : getVm().getInterfaces()) { - if (iface.getId() == null) { - iface.setId(Guid.NewGuid()); + initInterface(iface); + + if (!VmInterfaceManager.isValidVmNetwork(iface, networksInVdsByName)) { + invalidNetworkNames.add(iface.getNetworkName()); + invalidIfaceNames.add(iface.getName()); } - fillMacAddressIfMissing(iface); - iface.setVmTemplateId(null); - iface.setVmId(getVmId()); - iface.setVmName(getVm().getvm_name()); macAdded = vmInterfaceManager.add(iface, getCompensationContext(), getParameters().isImportAsNewEntity()); } + + auditInvalidInterfaces(invalidNetworkNames, invalidIfaceNames); + } + + private void initInterface(VmNetworkInterface iface) { + if (iface.getId() == null) { + iface.setId(Guid.NewGuid()); + } + fillMacAddressIfMissing(iface); + iface.setVmTemplateId(null); + iface.setVmId(getVmId()); + iface.setVmName(getVm().getvm_name()); } private void AddVmDynamic() { @@ -929,31 +939,6 @@ return AuditLogType.IMPORTEXPORT_IMPORT_VM_FAILED; } return super.getAuditLogTypeValue(); - } - - /** - * log to audit-log if VmInterfaces are attached on non VmNetworks - */ - 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, networksInVdsByName)) { - networks.append(iface.getNetworkName()).append(","); - ifaces.append(iface.getName()).append(","); - } - } - - if (networks.length() > 0) { - networks.deleteCharAt(networks.length() - 1); // remove the last comma - AuditLogableBase logable = new AuditLogableBase(); - logable.AddCustomValue("Newtorks", networks.toString()); - logable.AddCustomValue("Interfaces", ifaces.toString()); - AuditLogDirector.log(logable, AuditLogType.IMPORTEXPORT_IMPORT_VM_INTERFACES_ON_NON_VM_NETWORKS); - } } private static Log log = LogFactory.getLog(ImportVmCommand.class); 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 9ac8da2..07c1dac 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 @@ -344,6 +344,8 @@ protected void AddVmInterfaces() { List<VmNetworkInterface> interfaces = getVmTemplate().getInterfaces(); + List<String> invalidNetworkNames = new ArrayList<String>(); + List<String> invalidIfaceNames = new ArrayList<String>(); Map<String, Network> networksInVdsByName = Entities.entitiesByName(getNetworkDAO().getAllForCluster(getVm().getvds_group_id())); String networkName; @@ -363,9 +365,9 @@ iDynamic.setName(iface.getName()); if (VmInterfaceManager.isValidVmNetwork(iface, networksInVdsByName)) { iDynamic.setNetworkName(networkName); - } - else { - log.warnFormat("Imported template interface {0} has an invalid network name {1}, network name was set to empty string" , iface.getName(), networkName); + } else { + invalidNetworkNames.add(iface.getNetworkName()); + invalidIfaceNames.add(iface.getName()); iDynamic.setNetworkName(StringUtils.EMPTY); } iDynamic.setSpeed(iface.getSpeed()); @@ -376,6 +378,8 @@ DbFacade.getInstance().getVmNetworkStatisticsDAO().save(iStat); getCompensationContext().snapshotNewEntity(iStat); } + + auditInvalidInterfaces(invalidNetworkNames, invalidIfaceNames); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java index 8003b7a..1bfc0f0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java @@ -38,6 +38,8 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; @@ -354,4 +356,20 @@ } return true; } + + /** + * Log to audit-log the list of VmInterfaces that are attached to invalid networks. A network is invalid if it is a + * Non-VM Network, or if the Network is not in the Cluster + * + * @param invalidIfaceNames + * @param invalidNetworkNames + */ + protected void auditInvalidInterfaces(List<String> invalidNetworkNames, List<String> invalidIfaceNames) { + if (invalidNetworkNames.size() > 0) { + AuditLogableBase logable = new AuditLogableBase(); + logable.AddCustomValue("Networks", StringUtils.join(invalidNetworkNames, ',')); + logable.AddCustomValue("Interfaces", StringUtils.join(invalidIfaceNames, ',')); + AuditLogDirector.log(logable, AuditLogType.IMPORTEXPORT_IMPORT_VM_INTERFACES_ON_NON_VM_NETWORKS); + } + } } -- To view, visit http://gerrit.ovirt.org/7325 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2e4abea497806421abed1159de07842b31711f1e 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
