Martin Mucha has uploaded a new change for review.

Change subject: core, webadmin: removed duplicity, reused 
UpdateNicsParametersFactory
......................................................................

core, webadmin: removed duplicity, reused UpdateNicsParametersFactory

Change-Id: I5b121ffacdda2e40d9ad266507249e9f00dd3327
Signed-off-by: Martin Mucha <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateAndReorderVmNics.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsParametersFactory.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsTemplateInterfaceParametersFactory.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsVmInterfaceParametersFactory.java
M 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VnicInstanceType.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java
9 files changed, 233 insertions(+), 181 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/33/40033/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateAndReorderVmNics.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateAndReorderVmNics.java
index 7eb6e4c..1633cd5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateAndReorderVmNics.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateAndReorderVmNics.java
@@ -3,17 +3,11 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 import javax.inject.Inject;
 
 import org.ovirt.engine.core.bll.network.vm.ReorderNics;
-import org.ovirt.engine.core.common.action.AddVmInterfaceParameters;
-import org.ovirt.engine.core.common.action.RemoveVmInterfaceParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
@@ -24,6 +18,8 @@
 import org.ovirt.engine.core.common.queries.OsQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.UpdateNicsParametersFactory;
+import 
org.ovirt.engine.core.common.utils.UpdateNicsVmInterfaceParametersFactory;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.Version;
 import org.slf4j.Logger;
@@ -66,7 +62,7 @@
     }
 
     private void updateNics() {
-        UpdateNicsVmInterfaceParametersFactory parametersFactory = 
getParametersFactory();
+        UpdateNicsParametersFactory parametersFactory = getParametersFactory();
         invokeActionType(VdcActionType.AddVmInterface, 
parametersFactory.createCreateVnicParameters());
         invokeActionType(VdcActionType.UpdateVmInterface, 
parametersFactory.createUpdateVnicParameters());
         invokeActionType(VdcActionType.RemoveVmInterface, 
parametersFactory.createRemoveVnicParameters());
@@ -86,7 +82,7 @@
         }
     }
 
-    private UpdateNicsVmInterfaceParametersFactory getParametersFactory() {
+    private UpdateNicsParametersFactory getParametersFactory() {
         List<VmInterfaceType> supportedInterfaceTypes = getInterfaceTypes();
         return new 
UpdateNicsVmInterfaceParametersFactory(updatedVmNetworkInterfaces,
                 getDefaultNicType(supportedInterfaceTypes),
@@ -96,7 +92,7 @@
     }
 
     private List<VmNetworkInterface> getExistingNics() {
-        IdQueryParameters parameters = new IdQueryParameters(this.vmId);
+        IdQueryParameters parameters = new IdQueryParameters(vmId);
         VdcQueryReturnValue result = 
callerCommand.runInternalQuery(VdcQueryType.GetVmInterfacesByVmId, parameters);
 
         return result.getReturnValue();
@@ -137,97 +133,4 @@
         return interfaceTypes;
     }
 
-    private static class UpdateNicsVmInterfaceParametersFactory {
-        private final Iterable<VmNetworkInterface> existingVnics;
-        private final Iterable<VmNetworkInterface> vmNetworkInterfaces;
-        private final Collection<VmInterfaceType> supportedInterfaceTypes;
-        private final Guid vmId;
-        private final Integer defaultTypeValue;
-
-        private final List<VdcActionParametersBase> createVnicParameters = new 
ArrayList<>();
-        private final List<VdcActionParametersBase> updateVnicParameters = new 
ArrayList<>();
-        private final List<VdcActionParametersBase> removeVnicParameters = new 
ArrayList<>();
-
-        public 
UpdateNicsVmInterfaceParametersFactory(Iterable<VmNetworkInterface> 
vmNetworkInterfaces,
-                VmInterfaceType defaultType,
-                Collection<VmInterfaceType> supportedInterfaceTypes,
-                Guid vmId,
-                Iterable<VmNetworkInterface> existingVnics) {
-            this.vmNetworkInterfaces = vmNetworkInterfaces;
-            this.supportedInterfaceTypes = supportedInterfaceTypes;
-            this.vmId = vmId;
-            this.existingVnics = existingVnics;
-            defaultTypeValue = defaultType == null ? null : 
defaultType.getValue();
-
-            init();
-        }
-
-        private void init() {
-            final Set<String> vnicsEncountered = new HashSet<>();
-            Map<String, VmNetworkInterface> existingVnicsMap = 
mapVnicsNamesToVnic(existingVnics);
-
-            // iterate over edited VNICs, see if any need to be added or have 
been assigned a different profile
-            for (VmNetworkInterface editedVnic : vmNetworkInterfaces) {
-                String vnicName = editedVnic.getName();
-                VmNetworkInterface existingVnic = 
existingVnicsMap.get(vnicName);
-                if (existingVnic == null) {
-                    editedVnic.setType(defaultTypeValue);
-                    
createVnicParameters.add(createAddInterfaceParameter(editedVnic));
-                } else {
-                    vnicsEncountered.add(vnicName);
-                    Guid existingProfileId = existingVnic.getVnicProfileId();
-                    Guid editedProfileId = editedVnic.getVnicProfileId();
-                    if (supportedInterfaceTypes != null && 
!supportedInterfaceTypes.contains(VmInterfaceType.forValue(
-                            existingVnic.getType()))) {
-                        existingVnic.setType(defaultTypeValue);
-                    } else if (supportedInterfaceTypes == null) {
-                        existingVnic.setType(defaultTypeValue);
-                    }
-
-                    if ((editedProfileId == null && existingProfileId != null)
-                            || (editedProfileId != null && 
!editedProfileId.equals(existingProfileId))) {
-                        existingVnic.setVnicProfileId(editedProfileId);
-                        
existingVnic.setNetworkName(editedVnic.getNetworkName());
-                        
updateVnicParameters.add(createAddInterfaceParameter(existingVnic));
-                    }
-                }
-            }
-
-            // iterate over existing VNICs, see if any have not been 
encountered and thus removed in editing
-            for (VmNetworkInterface existingVnic : existingVnics) {
-                if (!vnicsEncountered.contains(existingVnic.getName())) {
-                    
removeVnicParameters.add(createRemoveInterfaceParameter(existingVnic));
-                }
-            }
-        }
-
-        private VdcActionParametersBase 
createRemoveInterfaceParameter(VmNetworkInterface existingVnic) {
-            return new RemoveVmInterfaceParameters(vmId, existingVnic.getId());
-        }
-
-        private VdcActionParametersBase 
createAddInterfaceParameter(VmNetworkInterface editedVnic) {
-            editedVnic.setVmTemplateId(null);
-            return new AddVmInterfaceParameters(vmId, editedVnic);
-        }
-
-        private Map<String, VmNetworkInterface> 
mapVnicsNamesToVnic(Iterable<VmNetworkInterface> existingVnics) {
-            Map<String, VmNetworkInterface> existingVnicNameToVnicMap = new 
HashMap<>();
-            for (VmNetworkInterface vnic : existingVnics) {
-                existingVnicNameToVnicMap.put(vnic.getName(), vnic);
-            }
-            return existingVnicNameToVnicMap;
-        }
-
-        public List<VdcActionParametersBase> createCreateVnicParameters() {
-            return createVnicParameters;
-        }
-
-        public List<VdcActionParametersBase> createUpdateVnicParameters() {
-            return updateVnicParameters;
-        }
-
-        public List<VdcActionParametersBase> createRemoveVnicParameters() {
-            return removeVnicParameters;
-        }
-    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsParametersFactory.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsParametersFactory.java
new file mode 100644
index 0000000..5b0bffa
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsParametersFactory.java
@@ -0,0 +1,111 @@
+package org.ovirt.engine.core.common.utils;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import org.ovirt.engine.core.compat.Guid;
+
+public abstract class UpdateNicsParametersFactory {
+    private Iterable<VmNetworkInterface> existingVnics;
+    private Iterable<VmNetworkInterface> updatedVmNetworkInterfaces;
+    private Collection<VmInterfaceType> supportedInterfaceTypes;
+
+    /**
+     * id of object to which given nics ( {@link #existingVnics}, {@link 
#updatedVmNetworkInterfaces}) are associated.
+     * at a moment of writing this, id of template or VM can be passed here.
+     * */
+    protected Guid idOfNicsOwner;
+    private Integer defaultTypeValue;
+
+    private List<VdcActionParametersBase> createVnicParameters = new 
ArrayList<>();
+    private List<VdcActionParametersBase> updateVnicParameters = new 
ArrayList<>();
+    private List<VdcActionParametersBase> removeVnicParameters = new 
ArrayList<>();
+
+    //required by checkstyle settings.
+    protected UpdateNicsParametersFactory() {}
+
+    public UpdateNicsParametersFactory(Iterable<VmNetworkInterface> 
updatedVmNetworkInterfaces,
+            VmInterfaceType defaultType,
+            Collection<VmInterfaceType> supportedInterfaceTypes,
+            Guid idOfNicsOwner,
+            Iterable<VmNetworkInterface> existingVnics) {
+        this.updatedVmNetworkInterfaces = updatedVmNetworkInterfaces;
+        this.supportedInterfaceTypes = supportedInterfaceTypes;
+        this.idOfNicsOwner = idOfNicsOwner;
+        this.existingVnics = existingVnics;
+        defaultTypeValue = defaultType == null ? null : defaultType.getValue();
+
+        init();
+    }
+
+    private void init() {
+        final Set<String> vnicsEncountered = new HashSet<>();
+        Map<String, VmNetworkInterface> existingVnicsMap = 
mapVnicsNamesToVnic(existingVnics);
+
+        // iterate over edited VNICs, see if any need to be added or have been 
assigned a different profile
+        for (VmNetworkInterface editedVnic : updatedVmNetworkInterfaces) {
+            String vnicName = editedVnic.getName();
+            VmNetworkInterface existingVnic = existingVnicsMap.get(vnicName);
+            if (existingVnic == null) {
+                editedVnic.setType(defaultTypeValue);
+                
createVnicParameters.add(createAddInterfaceParameter(editedVnic));
+            } else {
+                vnicsEncountered.add(vnicName);
+                Guid existingProfileId = existingVnic.getVnicProfileId();
+                Guid editedProfileId = editedVnic.getVnicProfileId();
+                if (supportedInterfaceTypes != null && 
!supportedInterfaceTypes.contains(VmInterfaceType.forValue(
+                        existingVnic.getType()))) {
+                    existingVnic.setType(defaultTypeValue);
+                } else if (supportedInterfaceTypes == null) {
+                    existingVnic.setType(defaultTypeValue);
+                }
+
+                if ((editedProfileId == null && existingProfileId != null)
+                        || (editedProfileId != null && 
!editedProfileId.equals(existingProfileId))) {
+                    existingVnic.setVnicProfileId(editedProfileId);
+                    existingVnic.setNetworkName(editedVnic.getNetworkName());
+                    
updateVnicParameters.add(createAddInterfaceParameter(existingVnic));
+                }
+            }
+        }
+
+        // iterate over existing VNICs, see if any have not been encountered 
and thus removed in editing
+        for (VmNetworkInterface existingVnic : existingVnics) {
+            if (!vnicsEncountered.contains(existingVnic.getName())) {
+                
removeVnicParameters.add(createRemoveInterfaceParameter(existingVnic));
+            }
+        }
+    }
+
+    protected abstract VdcActionParametersBase 
createRemoveInterfaceParameter(VmNetworkInterface existingVnic);
+
+    protected abstract VdcActionParametersBase 
createAddInterfaceParameter(VmNetworkInterface editedVnic);
+
+    private Map<String, VmNetworkInterface> 
mapVnicsNamesToVnic(Iterable<VmNetworkInterface> existingVnics) {
+        Map<String, VmNetworkInterface> existingVnicNameToVnicMap = new 
HashMap<>();
+        for (VmNetworkInterface vnic : existingVnics) {
+            existingVnicNameToVnicMap.put(vnic.getName(), vnic);
+        }
+        return existingVnicNameToVnicMap;
+    }
+
+    public List<VdcActionParametersBase> createCreateVnicParameters() {
+        return createVnicParameters;
+    }
+
+    public List<VdcActionParametersBase> createUpdateVnicParameters() {
+        return updateVnicParameters;
+    }
+
+    public List<VdcActionParametersBase> createRemoveVnicParameters() {
+        return removeVnicParameters;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsTemplateInterfaceParametersFactory.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsTemplateInterfaceParametersFactory.java
new file mode 100644
index 0000000..11917a7
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsTemplateInterfaceParametersFactory.java
@@ -0,0 +1,32 @@
+package org.ovirt.engine.core.common.utils;
+
+import java.util.Collection;
+
+import org.ovirt.engine.core.common.action.AddVmTemplateInterfaceParameters;
+import org.ovirt.engine.core.common.action.RemoveVmTemplateInterfaceParameters;
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import org.ovirt.engine.core.compat.Guid;
+
+public class UpdateNicsTemplateInterfaceParametersFactory extends 
UpdateNicsParametersFactory {
+
+    //required by checkstyle settings.
+    private UpdateNicsTemplateInterfaceParametersFactory(){}
+
+    public 
UpdateNicsTemplateInterfaceParametersFactory(Iterable<VmNetworkInterface> 
vmNetworkInterfaces,
+            VmInterfaceType defaultType,
+            Collection<VmInterfaceType> supportedInterfaceTypes,
+            Guid templateId,
+            Iterable<VmNetworkInterface> existingVnics) {
+        super(vmNetworkInterfaces, defaultType, supportedInterfaceTypes, 
templateId, existingVnics);
+    }
+
+    protected VdcActionParametersBase 
createRemoveInterfaceParameter(VmNetworkInterface existingVnic) {
+        return new RemoveVmTemplateInterfaceParameters(idOfNicsOwner, 
existingVnic.getId());
+    }
+
+    protected VdcActionParametersBase 
createAddInterfaceParameter(VmNetworkInterface editedVnic) {
+        return new AddVmTemplateInterfaceParameters(idOfNicsOwner, editedVnic);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsVmInterfaceParametersFactory.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsVmInterfaceParametersFactory.java
new file mode 100644
index 0000000..c107d25
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/UpdateNicsVmInterfaceParametersFactory.java
@@ -0,0 +1,34 @@
+package org.ovirt.engine.core.common.utils;
+
+import java.util.Collection;
+
+import org.ovirt.engine.core.common.action.AddVmInterfaceParameters;
+import org.ovirt.engine.core.common.action.RemoveVmInterfaceParameters;
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import org.ovirt.engine.core.compat.Guid;
+
+public class UpdateNicsVmInterfaceParametersFactory extends 
UpdateNicsParametersFactory {
+
+    //required by checkstyle settings.
+    private UpdateNicsVmInterfaceParametersFactory() {
+    }
+
+    public UpdateNicsVmInterfaceParametersFactory(Iterable<VmNetworkInterface> 
vmNetworkInterfaces,
+            VmInterfaceType defaultType,
+            Collection<VmInterfaceType> supportedInterfaceTypes,
+            Guid vmId,
+            Iterable<VmNetworkInterface> existingVnics) {
+        super(vmNetworkInterfaces, defaultType, supportedInterfaceTypes, vmId, 
existingVnics);
+    }
+
+    protected VdcActionParametersBase 
createRemoveInterfaceParameter(VmNetworkInterface existingVnic) {
+        return new RemoveVmInterfaceParameters(idOfNicsOwner, 
existingVnic.getId());
+    }
+
+    protected VdcActionParametersBase 
createAddInterfaceParameter(VmNetworkInterface editedVnic) {
+        editedVnic.setVmTemplateId(null);
+        return new AddVmInterfaceParameters(idOfNicsOwner, editedVnic);
+    }
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
index 71341f0..11e15ce 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml
@@ -252,6 +252,9 @@
         <include name="common/utils/CommonConstants.java"/>
         <include name="common/businessentities/Entities.java"/>
         <include name="common/utils/ToStringBuilder.java"/>
+        <include name="common/utils/UpdateNicsParametersFactory.java"/>
+        <include 
name="common/utils/UpdateNicsTemplateInterfaceParametersFactory.java"/>
+
 
         <!-- TODO: Remove when UI will be refactored to use 
FenceProxySourceType -->
         <include name="common/utils/pm/FenceProxySourceTypeHelper.java"/>
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java
index 5eadf24..122a000 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/BaseInterfaceCreatingManager.java
@@ -1,18 +1,16 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import 
org.ovirt.engine.core.common.utils.UpdateNicsTemplateInterfaceParametersFactory;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
 
 public abstract class BaseInterfaceCreatingManager {
 
@@ -41,64 +39,32 @@
         getNicsQuery.asyncCallback = new INewAsyncCallback() {
             @Override
             public void onSuccess(Object model, Object result) {
-                Iterable<VmNetworkInterface> existingVnics = 
(Iterable<VmNetworkInterface>) result;
-                if (existingVnics == null) {
-                    existingVnics = new ArrayList<VmNetworkInterface>();
-                }
+                UpdateNicsTemplateInterfaceParametersFactory factory = new 
UpdateNicsTemplateInterfaceParametersFactory(
+                        
VnicInstanceType.getNetworkInterfaces(vnicsWithProfiles),
+                        defaultType,
+                        supportedInterfaceTypes,
+                        vmId, //TODO MM: this is probably actually templateId; 
verify that.
+                        getNonNullExistingVnicsFromResult(result));
 
-                Map<String, VmNetworkInterface> existingVnicForName = new 
HashMap<String, VmNetworkInterface>();
-                for (VmNetworkInterface vnic : existingVnics) {
-                    existingVnicForName.put(vnic.getName(), vnic);
-                }
-
-                final ArrayList<VdcActionParametersBase> createVnicParameters =
-                        new ArrayList<VdcActionParametersBase>();
-                final ArrayList<VdcActionParametersBase> updateVnicParameters =
-                        new ArrayList<VdcActionParametersBase>();
-                final ArrayList<VdcActionParametersBase> removeVnicParameters =
-                        new ArrayList<VdcActionParametersBase>();
-                final Set<String> vnicsEncountered = new HashSet<String>();
-
-                // iterate over edited VNICs, see if any need to be added or 
have been assigned a different profile
-                for (VnicInstanceType vnicWithProfile : vnicsWithProfiles) {
-                    VmNetworkInterface editedVnic = 
vnicWithProfile.getNetworkInterface();
-                    String vnicName = editedVnic.getName();
-                    VmNetworkInterface existingVnic = 
existingVnicForName.get(vnicName);
-                    if (existingVnic == null) {
-                        editedVnic.setType(defaultType == null ? null : 
defaultType.getValue());
-                        
createVnicParameters.add(createAddInterfaceParameter(vmId, editedVnic));
-                    } else {
-                        vnicsEncountered.add(vnicName);
-                        Guid existingProfileId = 
existingVnic.getVnicProfileId();
-                        Guid editedProfileId = editedVnic.getVnicProfileId();
-                        if (supportedInterfaceTypes != null && 
!supportedInterfaceTypes.contains(VmInterfaceType.forValue(existingVnic.getType())))
 {
-                            existingVnic.setType(defaultType == null ? null : 
defaultType.getValue());
-                        } else if (supportedInterfaceTypes == null) {
-                            existingVnic.setType(defaultType == null ? null : 
defaultType.getValue());
-                        }
-
-                        if ((editedProfileId == null && existingProfileId != 
null)
-                                || (editedProfileId != null && 
!editedProfileId.equals(existingProfileId))) {
-                            existingVnic.setVnicProfileId(editedProfileId);
-                            
existingVnic.setNetworkName(editedVnic.getNetworkName());
-                            
updateVnicParameters.add(createAddInterfaceParameter(vmId, existingVnic));
-                        }
-                    }
-                }
-
-                // iterate over existing VNICs, see if any have not been 
encountered and thus removed in editing
-                for (VmNetworkInterface existingVnic : existingVnics) {
-                    if (!vnicsEncountered.contains(existingVnic.getName())) {
-                        
removeVnicParameters.add(createRemoveInterfaceParameter(vmId, 
existingVnic.getId()));
-                    }
-                }
-
-                doNicManipulation(createVnicParameters, updateVnicParameters, 
removeVnicParameters, unitVmModel.getIsNew(), vmId, unitVmModel);
+                doNicManipulation(factory.createCreateVnicParameters(),
+                        factory.createUpdateVnicParameters(),
+                        factory.createRemoveVnicParameters(),
+                        unitVmModel.getIsNew(),
+                        vmId,
+                        unitVmModel);
             }
 
         };
 
         getNics(getNicsQuery, vmId, unitVmModel);
+    }
+
+    private Iterable<VmNetworkInterface> 
getNonNullExistingVnicsFromResult(Object result) {
+        if (result == null) {
+            return new ArrayList<>();
+        } else {
+            return (Iterable<VmNetworkInterface>) result;
+        }
     }
 
     protected abstract VdcActionParametersBase 
createAddInterfaceParameter(Guid id, VmNetworkInterface editedVnic);
@@ -108,10 +74,10 @@
     protected abstract void getNics(AsyncQuery getNicsQuery, Guid id, 
UnitVmModel unitVmModel);
 
     protected abstract void doNicManipulation(
-            ArrayList<VdcActionParametersBase> createVnicParameters,
-            final ArrayList<VdcActionParametersBase> updateVnicParameters,
-            final ArrayList<VdcActionParametersBase> removeVnicParameters,
-            final boolean isAddingNewVm,
-            final Guid id,
-            final UnitVmModel unitVmModel);
+            List<VdcActionParametersBase> createVnicParameters,
+            List<VdcActionParametersBase> updateVnicParameters,
+            List<VdcActionParametersBase> removeVnicParameters,
+            boolean isAddingNewVm,
+            Guid id,
+            UnitVmModel unitVmModel);
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index ee41533..59a4e21 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -855,15 +855,7 @@
 
     public List<VmNetworkInterface> getUpdatedNetworkInterfaces() {
         Collection<VnicInstanceType> vnicsWithProfiles = 
getNicsWithLogicalNetworks().getItems();
-        return vnicsWithProfilesToNetworkInterfaces(vnicsWithProfiles);
-    }
-
-    private List<VmNetworkInterface> 
vnicsWithProfilesToNetworkInterfaces(Collection<VnicInstanceType> 
vnicsWithProfiles) {
-        List<VmNetworkInterface> result = new 
ArrayList<>(vnicsWithProfiles.size());
-        for (VnicInstanceType vnicsWithProfile : vnicsWithProfiles) {
-            result.add(vnicsWithProfile.getNetworkInterface());
-        }
-        return result;
+        return VnicInstanceType.getNetworkInterfaces(vnicsWithProfiles);
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VnicInstanceType.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VnicInstanceType.java
index 252390e..14b55ee 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VnicInstanceType.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VnicInstanceType.java
@@ -1,5 +1,8 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
+import java.util.LinkedList;
+import java.util.List;
+
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.businessentities.network.VnicProfileView;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
@@ -12,6 +15,14 @@
         this.networkInterface = networkInterface;
     }
 
+    public static List<VmNetworkInterface> 
getNetworkInterfaces(Iterable<VnicInstanceType> vnicsWithProfiles) {
+        List<VmNetworkInterface> result = new LinkedList<>();
+        for (VnicInstanceType vnicsWithProfile : vnicsWithProfiles) {
+            result.add(vnicsWithProfile.getNetworkInterface());
+        }
+        return result;
+    }
+
     public VmNetworkInterface getNetworkInterface() {
         return networkInterface;
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java
index 7eb71ae..b7facfa 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/instancetypes/InstanceTypeInterfaceCreatingManager.java
@@ -1,5 +1,7 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes;
 
+import java.util.List;
+
 import org.ovirt.engine.core.common.action.AddVmTemplateInterfaceParameters;
 import org.ovirt.engine.core.common.action.RemoveVmTemplateInterfaceParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -13,8 +15,6 @@
 import org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
-
-import java.util.ArrayList;
 
 public class InstanceTypeInterfaceCreatingManager extends 
BaseInterfaceCreatingManager {
 
@@ -39,9 +39,9 @@
 
     @Override
     protected void doNicManipulation(
-            final ArrayList<VdcActionParametersBase> createVnicParameters,
-            final ArrayList<VdcActionParametersBase> updateVnicParameters,
-            final ArrayList<VdcActionParametersBase> removeVnicParameters,
+            final List<VdcActionParametersBase> createVnicParameters,
+            final List<VdcActionParametersBase> updateVnicParameters,
+            final List<VdcActionParametersBase> removeVnicParameters,
             final boolean isAddingNewVm,
             final Guid id,
             final UnitVmModel unitVmModel) {


-- 
To view, visit https://gerrit.ovirt.org/40033
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5b121ffacdda2e40d9ad266507249e9f00dd3327
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Mucha <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to