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

Reply via email to