Tomas Jelinek has uploaded a new change for review.

Change subject: frontend: do not update nics which did not changed
......................................................................

frontend: do not update nics which did not changed

Edit VM dialog -> if the nic->network assignment did
not change do not send the UpdateVmInterface - do
it only for the changed nics.

This logic has already been present for the create VM
from template, so generalized it.

Change-Id: I11e32d013acf9fbf8dd3623d051403721786690b
Signed-off-by: Tomas Jelinek <[email protected]>
Bug-Url: https://bugzilla.redhat.com/988043
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java
1 file changed, 57 insertions(+), 40 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/14/17314/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java
index 05210b4..a232c82 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmNetworkCreatingManager.java
@@ -52,45 +52,13 @@
      */
     public void updateOrCreateIfNothingToUpdate(final Guid vmId,
                                                 final 
List<NicWithLogicalNetworks> nicsWithLogicalNetworks) {
-        AsyncQuery getVmNicsQuery = new AsyncQuery();
-        getVmNicsQuery.asyncCallback = new INewAsyncCallback() {
-            @Override
-            public void onSuccess(Object model, Object result) {
-                List<VmNetworkInterface> createdNics = 
(List<VmNetworkInterface>) result;
-
-                if (createdNics == null || createdNics.size() == 0) {
-                    // there are no networks created - create according to the 
setup
-                    createNetworks(vmId, nicsWithLogicalNetworks);
-                } else {
-                    // there are some networks created - update according to 
the setup in the window
-                    ArrayList<VdcActionParametersBase> parameters = new 
ArrayList<VdcActionParametersBase>();
-
-                    for (VmNetworkInterface created : createdNics) {
-                        for (NicWithLogicalNetworks edited : 
nicsWithLogicalNetworks) {
-                            // can not use getId() because they have different 
IDs - one is already created, one is not
-                            // yet
-                            boolean sameNic = 
edited.getNetworkInterface().getName().equals(created.getName());
-
-                            boolean bothNetworksNull = 
created.getNetworkName() == null && 
edited.getNetworkInterface().getNetworkName() == null;
-
-                            boolean sameNetworkNames = 
created.getNetworkName() != null && 
created.getNetworkName().equals(edited.getNetworkInterface().getNetworkName());
-
-                            boolean assignedNetworkChanged = 
!(bothNetworksNull || sameNetworkNames);
-
-                            if (sameNic && assignedNetworkChanged) {
-                                
created.setNetworkName(edited.getNetworkInterface().getNetworkName());
-                                parameters.add(new 
AddVmInterfaceParameters(vmId, created));
-                                break;
-                            }
-                        }
-
-                    }
-
-                    updateNetworksFromParams(vmId, parameters);
-                }
-            }
-        };
-        AsyncDataProvider.getVmNicList(getVmNicsQuery, vmId);
+           new UpdatedNicsUpdater() {
+               @Override
+               protected void onNoNicsDefinedOnVm() {
+                   // there are no networks created - create according to the 
setup
+                   createNetworks(vmId, nicsWithLogicalNetworks);
+               }
+           }.execute(vmId, nicsWithLogicalNetworks);
     }
 
     /**
@@ -100,7 +68,7 @@
      * @param nicsWithLogicalNetworks list of nics as edited in the window
      */
     public void updateNetworks(final Guid vmId, final 
List<NicWithLogicalNetworks> nicsWithLogicalNetworks) {
-        updateNetworksFromParams(vmId, createAddVmInterfaceParams(vmId, 
nicsWithLogicalNetworks));
+        new UpdatedNicsUpdater().execute(vmId, nicsWithLogicalNetworks);
     }
 
     /**
@@ -153,4 +121,53 @@
 
         void queryFailed();
     }
+
+    class UpdatedNicsUpdater {
+
+        public void execute(final Guid vmId, final 
List<NicWithLogicalNetworks> nicsWithLogicalNetworks) {
+            AsyncQuery getVmNicsQuery = new AsyncQuery();
+            getVmNicsQuery.asyncCallback = new INewAsyncCallback() {
+                @Override
+                public void onSuccess(Object model, Object result) {
+                    List<VmNetworkInterface> createdNics = 
(List<VmNetworkInterface>) result;
+
+                    if (createdNics == null || createdNics.size() == 0) {
+                        onNoNicsDefinedOnVm();
+                    } else {
+                        // there are some networks created - update according 
to the setup in the window
+                        ArrayList<VdcActionParametersBase> parameters = new 
ArrayList<VdcActionParametersBase>();
+
+                        for (VmNetworkInterface created : createdNics) {
+                            for (NicWithLogicalNetworks edited : 
nicsWithLogicalNetworks) {
+                                // can not use getId() because they have 
different IDs - one is already created, one is not
+                                // yet
+                                boolean sameNic = 
edited.getNetworkInterface().getName().equals(created.getName());
+
+                                boolean bothNetworksNull = 
created.getNetworkName() == null && 
edited.getNetworkInterface().getNetworkName() == null;
+
+                                boolean sameNetworkNames = 
created.getNetworkName() != null && 
created.getNetworkName().equals(edited.getNetworkInterface().getNetworkName());
+
+                                boolean assignedNetworkChanged = 
!(bothNetworksNull || sameNetworkNames);
+
+                                if (sameNic && assignedNetworkChanged) {
+                                    
created.setNetworkName(edited.getNetworkInterface().getNetworkName());
+                                    parameters.add(new 
AddVmInterfaceParameters(vmId, created));
+                                    break;
+                                }
+                            }
+
+                        }
+
+                        updateNetworksFromParams(vmId, parameters);
+                    }
+                }
+            };
+            AsyncDataProvider.getVmNicList(getVmNicsQuery, vmId);
+        }
+
+        protected void onNoNicsDefinedOnVm() {
+            // do nothing by default
+        }
+
+    }
 }


-- 
To view, visit http://gerrit.ovirt.org/17314
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to