Alona Kaplan has uploaded a new change for review.

Change subject: webadmin: send vfs config update to the backend
......................................................................

webadmin: send vfs config update to the backend

When clicking 'ok' on the setup network window the are several commands
that should (and in some cases shouldn't) be sent to the backed.
SetupNetworks->CommitNetworkChanges->
Vfs config update:
UpdateVfsConfig->
Mulitple(AddVfsConfigNetwork)->Mulitple(RemoveVfsConfigNetwork)->
Mulitple(AddVfsConfigLabel)->Mulitple(RomoveVfsConfigLabel)

HostSetupNetworks.postOnSetupNetworks() was slightly changed to use fluent
command calls in order to make all this command calls more readable.

Change-Id: I262282d00bbb16a65f36a2463d3ffe8dbf6594c6
Signed-off-by: Alona Kaplan <alkap...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNicVfsConfig.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiAction.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcAction.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcMultipleAction.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigAction.java
8 files changed, 382 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/36848/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNicVfsConfig.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNicVfsConfig.java
index 9b756f7..f483607 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNicVfsConfig.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/HostNicVfsConfig.java
@@ -29,6 +29,25 @@
 
     private Set<String> labels = new HashSet<>();
 
+    public HostNicVfsConfig() {
+    }
+
+    public HostNicVfsConfig(HostNicVfsConfig vfsConfig) {
+        setId(vfsConfig.getId());
+        setNicId(vfsConfig.getNicId());
+        setMaxNumOfVfs(vfsConfig.getMaxNumOfVfs());
+        setNumOfVfs(vfsConfig.getNumOfVfs());
+        setNumOfFreeVfs(vfsConfig.getNumOfFreeVfs());
+
+        Set<Guid> networks = new HashSet<>();
+        networks.addAll(vfsConfig.getNetworks());
+        setNetworks(networks);
+
+        Set<String> labels = new HashSet<>();
+        labels.addAll(vfsConfig.getLabels());
+        setLabels(labels);
+    }
+
     public Guid getNicId() {
         return nicId;
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiAction.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiAction.java
new file mode 100644
index 0000000..a375bd2
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiAction.java
@@ -0,0 +1,89 @@
+package org.ovirt.engine.ui.uicommonweb;
+
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+
+public class UiAction {
+
+    private UiAction nextAction;
+    private Model model;
+    private UiAction parallelAction;
+    private int numOfParallelExecutions = 0;
+    private boolean stopProgressIfNoNextAction;
+
+    public UiAction(Model model) {
+        this(model, true);
+    }
+
+    public UiAction(Model model, boolean stopProgressIfNoNextAction) {
+        this.model = model;
+        this.stopProgressIfNoNextAction = stopProgressIfNoNextAction;
+    }
+
+    public final void runAction() {
+        if (model.getProgress() == null) {
+            model.startProgress(null);
+        }
+
+        if (shouldExecute()) {
+            internalRunAction();
+        } else {
+            runNextAction();
+        }
+
+        parallelAction.runAction(numOfParallelExecutions);
+    }
+
+    private final void runAction(int numOfParallelExecutions) {
+        this.numOfParallelExecutions = numOfParallelExecutions;
+        parallelAction.runAction();
+    }
+
+    void internalRunAction() {
+        onActionExecuted();
+        runNextAction();
+    }
+
+    protected void onActionExecuted() {
+        --numOfParallelExecutions;
+    }
+
+    public UiAction then(UiAction nextAction) {
+        this.nextAction = nextAction;
+        return nextAction;
+    }
+
+    public UiAction and(UiAction parallelAction) {
+        this.parallelAction = parallelAction;
+        return parallelAction;
+    }
+
+    protected boolean shouldExecute() {
+        return true;
+    }
+
+    private UiAction getNextAction() {
+        return nextAction;
+    }
+
+    protected void runNextAction() {
+        if (getNextAction() != null) {
+            getNextAction().runAction();
+        } else if (isStopProgressIfNoNextAction()) {
+            stopPropgress();
+        }
+    }
+
+    protected boolean isStopProgressIfNoNextAction() {
+        return stopProgressIfNoNextAction;
+    }
+
+    public Model getModel() {
+        return model;
+    }
+
+    void stopPropgress() {
+        if (numOfParallelExecutions == 0) {
+            model.stopProgress();
+        }
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcAction.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcAction.java
new file mode 100644
index 0000000..1e582d8
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcAction.java
@@ -0,0 +1,54 @@
+package org.ovirt.engine.ui.uicommonweb;
+
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.action.VdcReturnValueBase;
+import org.ovirt.engine.ui.frontend.Frontend;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
+
+public class UiVdcAction extends UiAction {
+
+    private VdcActionType actionType;
+    private VdcActionParametersBase parameters;
+
+    public UiVdcAction(VdcActionType actionType, VdcActionParametersBase 
parameters, Model model) {
+        super(model);
+        this.actionType = actionType;
+        this.parameters = parameters;
+    }
+
+    @Override
+    void internalRunAction() {
+        Frontend.getInstance().runAction(actionType, parameters,
+                createCallback());
+    }
+
+    private IFrontendActionAsyncCallback createCallback() {
+        return new IFrontendActionAsyncCallback() {
+            @Override
+            public void executed(FrontendActionAsyncResult result) {
+                onActionExecuted();
+                VdcReturnValueBase returnValueBase = result.getReturnValue();
+                if (returnValueBase != null && returnValueBase.getSucceeded()) 
{
+                    onSuccess();
+                } else {
+                    onFailure();
+                }
+            }
+        };
+    }
+
+    protected void onSuccess() {
+        runNextAction();
+    }
+
+    protected void onFailure() {
+        stopPropgress();
+    }
+
+    public UiAction then(VdcActionType actionType, VdcActionParametersBase 
parameters) {
+        return then(new UiVdcAction(actionType, parameters, getModel()));
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcMultipleAction.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcMultipleAction.java
new file mode 100644
index 0000000..85409fd
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/UiVdcMultipleAction.java
@@ -0,0 +1,49 @@
+package org.ovirt.engine.ui.uicommonweb;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.ui.frontend.Frontend;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
+
+public class UiVdcMultipleAction extends UiAction {
+
+    private VdcActionType actionType;
+    private Collection<? extends VdcActionParametersBase> parametersList;
+
+    public UiVdcMultipleAction(VdcActionType actionType,
+            Collection<? extends VdcActionParametersBase> parametersList,
+            Model
+            model) {
+        this(actionType, parametersList, model, true);
+    }
+
+    public UiVdcMultipleAction(VdcActionType actionType,
+            Collection<? extends VdcActionParametersBase> parametersList,
+            Model
+            model,
+            boolean stopProgressIfNoNextAction) {
+        super(model, stopProgressIfNoNextAction);
+        this.actionType = actionType;
+        this.parametersList = parametersList;
+    }
+
+    @Override
+    void internalRunAction() {
+        Frontend.getInstance().runMultipleAction(actionType, new 
ArrayList<>(parametersList),
+                createCallback());
+    }
+
+    private IFrontendMultipleActionAsyncCallback createCallback() {
+        return new IFrontendMultipleActionAsyncCallback() {
+            @Override
+            public void executed(FrontendMultipleActionAsyncResult result) {
+                UiVdcMultipleAction.super.internalRunAction();
+            }
+        };
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
index 30dcbe8..2f1affd 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/HostSetupNetworksModel.java
@@ -15,7 +15,7 @@
 
 import org.ovirt.engine.core.common.action.SetupNetworksParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
-import org.ovirt.engine.core.common.action.VdcReturnValueBase;
+import org.ovirt.engine.core.common.action.VdsActionParameters;
 import 
org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import 
org.ovirt.engine.core.common.businessentities.comparators.LexoNumericComparator;
@@ -34,6 +34,8 @@
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.BaseCommandTarget;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.UiAction;
+import org.ovirt.engine.ui.uicommonweb.UiVdcAction;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -55,8 +57,6 @@
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.EventDefinition;
-import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
-import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.UIMessages;
 
 /**
@@ -129,6 +129,7 @@
     // The purpose of this map is to keep the network parameters while moving 
the network from one nic to another
     private final Map<String, NetworkParameters> networkToLastDetachParams;
 
+    private Set<HostNicVfsConfig> originalVfsConfigs = new HashSet<>();
     private Map<Guid, HostNicVfsConfig> nicToVfsConfig = new HashMap<>();
 
     private NetworkOperationFactory operationFactory;
@@ -949,7 +950,8 @@
                 List<HostNicVfsConfig> allHostVfs = (List<HostNicVfsConfig>) 
returnValue;
 
                 for (HostNicVfsConfig vfsConfig : allHostVfs) {
-                    nicToVfsConfig.put(vfsConfig.getNicId(), vfsConfig);
+                    originalVfsConfigs.add(vfsConfig);
+                    nicToVfsConfig.put(vfsConfig.getNicId(), new 
HostNicVfsConfig(vfsConfig));
                 }
 
                 // chain the free bonds query
@@ -1052,7 +1054,7 @@
     }
 
     public void postOnSetupNetworks() {
-        final HostSetupNetworksModel model = (HostSetupNetworksModel) 
sourceListModel.getWindow();
+        final HostSetupNetworksModel model = getSetupNetworksModel();
 
         SetupNetworksParameters params = new SetupNetworksParameters();
         params.setInterfaces(model.getAllNics());
@@ -1061,32 +1063,39 @@
         params.setVdsId(getEntity().getId());
         params.setNetworksToSync(model.getNetworksToSync());
 
-        model.startProgress(null);
-        Frontend.getInstance().runAction(VdcActionType.SetupNetworks, params, 
new IFrontendActionAsyncCallback() {
+        UiAction closeAction = getCloseAction();
+        UiAction setupNetworks = new UiVdcAction(VdcActionType.SetupNetworks, 
params, model);
 
+        
setupNetworks.then(getCommitNetworkChangesAction()).then(getVfsConfigCommand()).then(closeAction);
+
+        setupNetworks.runAction();
+    }
+
+    public UiAction getCommitNetworkChangesAction() {
+        return new UiVdcAction(VdcActionType.CommitNetworkChanges,
+                new VdsActionParameters(getEntity().getId()),
+                getSetupNetworksModel()) {
             @Override
-            public void executed(FrontendActionAsyncResult result) {
-                VdcReturnValueBase returnValueBase = result.getReturnValue();
-                if (returnValueBase != null && returnValueBase.getSucceeded())
-                {
-                    EntityModel<Boolean> commitChanges = 
model.getCommitChanges();
-                    if (commitChanges.getEntity())
-                    {
-                        new SaveNetworkConfigAction(sourceListModel, model, 
getEntity()).execute();
-                    }
-                    else
-                    {
-                        model.stopProgress();
-                        sourceListModel.setWindow(null);
-                        sourceListModel.search();
-                    }
-                }
-                else
-                {
-                    model.stopProgress();
-                }
+            protected boolean shouldExecute() {
+                EntityModel<Boolean> commitChanges = 
getSetupNetworksModel().getCommitChanges();
+                return commitChanges.getEntity();
             }
-        });
+        };
+    }
+
+    public UiAction getVfsConfigCommand() {
+        return new VfsConfigAction(getSetupNetworksModel(), 
originalVfsConfigs, nicToVfsConfig, false);
+    }
+
+    public UiAction getCloseAction() {
+        return new UiAction(getSetupNetworksModel()) {
+            @Override
+            protected void onActionExecuted() {
+                super.onActionExecuted();
+                sourceListModel.setWindow(null);
+                sourceListModel.search();
+            }
+        };
     }
 
     @Override
@@ -1109,4 +1118,11 @@
 
     }
 
+    public SearchableListModel<?> getSourceListModel() {
+        return sourceListModel;
+    }
+
+    private HostSetupNetworksModel getSetupNetworksModel() {
+        return (HostSetupNetworksModel) sourceListModel.getWindow();
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
index b618b79..425e78a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/NicLabelModel.java
@@ -70,6 +70,6 @@
 
             res &= labelModel.getIsValid();
         }
-        setIsValid(res);;
+        setIsValid(res);
     }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
index d4c6ae2..15111ea 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/PfNicLabelModel.java
@@ -69,7 +69,7 @@
 
             res &= labelModel.getIsValid();
         }
-        setIsValid(res);;
+        setIsValid(res);
     }
 
     /**
@@ -103,7 +103,7 @@
     /**
      * Clears the labels from the original interfaces composing this 
interface, and committing the actual labels (after
      * removal/addition by the user).
-     * 
+     *
      * @param the
      *            interface to which the actual labels will be committed.
      */
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigAction.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigAction.java
new file mode 100644
index 0000000..bf48652
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/VfsConfigAction.java
@@ -0,0 +1,124 @@
+package org.ovirt.engine.ui.uicommonweb.models.hosts;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.ovirt.engine.core.common.action.UpdateHostNicVfsConfigParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.action.VfsConfigLabelParameters;
+import org.ovirt.engine.core.common.action.VfsConfigNetworkParameters;
+import org.ovirt.engine.core.common.businessentities.network.HostNicVfsConfig;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.ui.uicommonweb.UiAction;
+import org.ovirt.engine.ui.uicommonweb.UiVdcMultipleAction;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+
+public class VfsConfigAction extends UiAction {
+
+    Collection<HostNicVfsConfig> originalVfsConfigs;
+    Map<Guid, HostNicVfsConfig> updatedNicToVfsConfig;
+
+    Set<UpdateHostNicVfsConfigParameters> updatedVfsConfigsParams = new 
HashSet<>();
+    Set<VfsConfigNetworkParameters> addedNetworksParams = new HashSet<>();
+    Set<VfsConfigNetworkParameters> removedNetworksParams = new HashSet<>();
+    Set<VfsConfigLabelParameters> addedLabelsParams = new HashSet<>();
+    Set<VfsConfigLabelParameters> removedLabelsParams = new HashSet<>();
+
+    public VfsConfigAction(Model model,
+            Collection<HostNicVfsConfig> originalVfsConfigs,
+            Map<Guid, HostNicVfsConfig> updatedNicToVfsConfig,
+            boolean stopProgressIfNoNextAction) {
+        super(model, stopProgressIfNoNextAction);
+        this.originalVfsConfigs = originalVfsConfigs;
+        this.updatedNicToVfsConfig = updatedNicToVfsConfig;
+    }
+
+    @Override
+    protected void onActionExecuted() {
+        super.onActionExecuted();
+
+        for (HostNicVfsConfig originalVfsConfig : originalVfsConfigs) {
+            HostNicVfsConfig updateVfsConfig = 
updatedNicToVfsConfig.get(originalVfsConfig.getNicId());
+
+            initUpdateVfsConfigParams(originalVfsConfig, updateVfsConfig);
+
+            if (!updateVfsConfig.isAllNetworksAllowed()) {
+                initAddedNetworksParams(originalVfsConfig, updateVfsConfig);
+                initRemovedNetworksParams(originalVfsConfig, updateVfsConfig);
+                initAddedLabelsParams(originalVfsConfig, updateVfsConfig);
+                initRemovedLabelsParams(originalVfsConfig, updateVfsConfig);
+            }
+        }
+
+        new UiVdcMultipleAction(VdcActionType.UpdateHostNicVfsConfig,
+                updatedVfsConfigsParams,
+                getModel(),
+                isStopProgressIfNoNextAction()).
+                then(new UiVdcMultipleAction(VdcActionType.AddVfsConfigNetwork,
+                        addedNetworksParams,
+                        getModel(),
+                        isStopProgressIfNoNextAction())).
+                and(new 
UiVdcMultipleAction(VdcActionType.RemoveVfsConfigNetwork,
+                        removedNetworksParams,
+                        getModel(),
+                        isStopProgressIfNoNextAction())).
+                and(new UiVdcMultipleAction(VdcActionType.AddVfsConfigLabel,
+                        addedLabelsParams,
+                        getModel(),
+                        isStopProgressIfNoNextAction())).
+                and(new UiVdcMultipleAction(VdcActionType.RemoveVfsConfigLabel,
+                        removedLabelsParams,
+                        getModel(),
+                        isStopProgressIfNoNextAction()));
+    }
+
+    private void initUpdateVfsConfigParams(HostNicVfsConfig originalVfsConfig, 
HostNicVfsConfig updateVfsConfig) {
+        if (shouldUpdateVfsConfig(originalVfsConfig, updateVfsConfig)) {
+            UpdateHostNicVfsConfigParameters param =
+                    new 
UpdateHostNicVfsConfigParameters(updateVfsConfig.getNicId(),
+                            updateVfsConfig.getNumOfVfs(),
+                            updateVfsConfig.isAllNetworksAllowed());
+            updatedVfsConfigsParams.add(param);
+        }
+    }
+
+    private boolean shouldUpdateVfsConfig(HostNicVfsConfig originalVfsConfig, 
HostNicVfsConfig updateVfsConfig) {
+        return updateVfsConfig.getNumOfVfs() != originalVfsConfig.getNumOfVfs()
+                && updateVfsConfig.isAllNetworksAllowed() != 
originalVfsConfig.isAllNetworksAllowed();
+    }
+
+    private void initAddedNetworksParams(HostNicVfsConfig originalVfsConfig, 
HostNicVfsConfig updateVfsConfig) {
+        for (Guid networkId : updateVfsConfig.getNetworks()) {
+            if (!originalVfsConfig.getNetworks().contains(networkId)) {
+                addedNetworksParams.add(new 
VfsConfigNetworkParameters(originalVfsConfig.getNicId(), networkId));
+            }
+        }
+    }
+
+    private void initRemovedNetworksParams(HostNicVfsConfig originalVfsConfig, 
HostNicVfsConfig updateVfsConfig) {
+        for (Guid networkId : originalVfsConfig.getNetworks()) {
+            if (!updateVfsConfig.getNetworks().contains(networkId)) {
+                removedNetworksParams.add(new 
VfsConfigNetworkParameters(originalVfsConfig.getNicId(), networkId));
+            }
+        }
+    }
+
+    private void initAddedLabelsParams(HostNicVfsConfig originalVfsConfig, 
HostNicVfsConfig updateVfsConfig) {
+        for (String label : updateVfsConfig.getLabels()) {
+            if (!originalVfsConfig.getLabels().contains(label)) {
+                removedLabelsParams.add(new 
VfsConfigLabelParameters(originalVfsConfig.getNicId(), label));
+            }
+        }
+    }
+
+    private void initRemovedLabelsParams(HostNicVfsConfig originalVfsConfig, 
HostNicVfsConfig updateVfsConfig) {
+        for (String label : originalVfsConfig.getLabels()) {
+            if (!updateVfsConfig.getNetworks().contains(label)) {
+                addedLabelsParams.add(new 
VfsConfigLabelParameters(originalVfsConfig.getNicId(), label));
+            }
+        }
+    }
+
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I262282d00bbb16a65f36a2463d3ffe8dbf6594c6
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <alkap...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to