Moti Asayag has uploaded a new change for review.

Change subject: engine: Extract RemoveNetworksByLabelParametersBuilder
......................................................................

engine: Extract RemoveNetworksByLabelParametersBuilder

The class will be used to detach networks from host
when networks is removed from a cluster.

Change-Id: Ib95c94ddb121449b5032b9d30f755b3b1771aa3a
Related-To: https://bugzilla.redhat.com/1055188
Signed-off-by: Moti Asayag <masa...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/RemoveNetworksByLabelParametersBuilder.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UnlabelNicCommand.java
2 files changed, 70 insertions(+), 59 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/23500/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/RemoveNetworksByLabelParametersBuilder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/RemoveNetworksByLabelParametersBuilder.java
new file mode 100644
index 0000000..e1869c9
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/RemoveNetworksByLabelParametersBuilder.java
@@ -0,0 +1,66 @@
+package org.ovirt.engine.core.bll.network;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.common.action.SetupNetworksParameters;
+import org.ovirt.engine.core.common.businessentities.Entities;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
+import org.ovirt.engine.core.common.errors.VdcBLLException;
+import org.ovirt.engine.core.common.errors.VdcBllErrors;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.utils.NetworkUtils;
+
+public class RemoveNetworksByLabelParametersBuilder extends 
NetworkParametersBuilder {
+
+    public SetupNetworksParameters buildParameters(VdsNetworkInterface nic, 
String label, Guid clusterId) {
+        SetupNetworksParameters parameters = 
createSetupNetworksParameters(nic.getVdsId());
+        List<Network> labeledNetworks =
+                
DbFacade.getInstance().getNetworkDao().getAllByLabelForCluster(label, 
clusterId);
+        VdsNetworkInterface nicToConfigure = 
getNicToConfigure(parameters.getInterfaces(), nic.getId());
+        if (nicToConfigure == null) {
+            throw new 
VdcBLLException(VdcBllErrors.LABELED_NETWORK_INTERFACE_NOT_FOUND);
+        }
+
+        Set<VdsNetworkInterface> nicsToRemove =
+                getNicsToRemove(parameters.getInterfaces(), labeledNetworks, 
nicToConfigure);
+
+        // remove the label from the nic to be passed to setup-networks
+        unlabelConfiguredNic(label, nicToConfigure);
+
+        // remove the networks from all of the nics
+        parameters.getInterfaces().removeAll(nicsToRemove);
+        return parameters;
+    }
+
+    private Set<VdsNetworkInterface> getNicsToRemove(List<VdsNetworkInterface> 
nics,
+            List<Network> labeledNetworks,
+            VdsNetworkInterface underlyingNic) {
+        Map<String, VdsNetworkInterface> nicsByNetworkName = 
Entities.hostInterfacesByNetworkName(nics);
+        Set<VdsNetworkInterface> nicsToRemove = new HashSet<>();
+
+        for (Network network : labeledNetworks) {
+            VdsNetworkInterface nic = nicsByNetworkName.get(network.getName());
+            if (nic != null) {
+                if (StringUtils.equals(nic.getName(), 
underlyingNic.getName())) {
+                    underlyingNic.setNetworkName(null);
+                } else if 
(StringUtils.equals(NetworkUtils.stripVlan(nic.getName()), 
underlyingNic.getName())) {
+                    nicsToRemove.add(nic);
+                }
+            }
+        }
+
+        return nicsToRemove;
+    }
+
+    private void unlabelConfiguredNic(String label, VdsNetworkInterface 
nicToConfigure) {
+        if (NetworkUtils.isLabeled(nicToConfigure)) {
+            nicToConfigure.getLabels().remove(label);
+        }
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UnlabelNicCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UnlabelNicCommand.java
index 9e149b4..ea94784 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UnlabelNicCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/UnlabelNicCommand.java
@@ -1,26 +1,17 @@
 package org.ovirt.engine.core.bll.network.host;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.bll.CommandBase;
-import org.ovirt.engine.core.bll.network.NetworkParametersBuilder;
+import 
org.ovirt.engine.core.bll.network.RemoveNetworksByLabelParametersBuilder;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.LabelNicParameters;
-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.businessentities.Entities;
-import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
-import org.ovirt.engine.core.common.errors.VdcBLLException;
-import org.ovirt.engine.core.common.errors.VdcBllErrors;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.utils.NetworkUtils;
@@ -38,7 +29,9 @@
     protected void executeCommand() {
         VdcReturnValueBase result =
                 
getBackend().runInternalAction(VdcActionType.PersistentSetupNetworks,
-                        new 
RemoveNetworksByLabelParametersBuilder().buildParameters(getNic(), getLabel()));
+                        new 
RemoveNetworksByLabelParametersBuilder().buildParameters(getNic(),
+                                getLabel(),
+                                getVds().getVdsGroupId()));
 
         if (!result.getSucceeded()) {
             propagateFailure(result);
@@ -93,53 +86,5 @@
         return Collections.singletonList(new PermissionSubject(hostId,
                 VdcObjectType.VDS,
                 getActionType().getActionGroup()));
-    }
-
-    private class RemoveNetworksByLabelParametersBuilder extends 
NetworkParametersBuilder {
-
-        public SetupNetworksParameters buildParameters(VdsNetworkInterface 
nic, String label) {
-            SetupNetworksParameters parameters = 
createSetupNetworksParameters(nic.getVdsId());
-            List<Network> labeledNetworks = 
getNetworkDAO().getAllByLabelForCluster(label, getVds().getVdsGroupId());
-            VdsNetworkInterface nicToConfigure = 
getNicToConfigure(parameters.getInterfaces(), nic.getId());
-            if (nicToConfigure == null) {
-                throw new 
VdcBLLException(VdcBllErrors.LABELED_NETWORK_INTERFACE_NOT_FOUND);
-            }
-
-            Set<VdsNetworkInterface> nicsToRemove =
-                    getNicsToRemove(parameters.getInterfaces(), 
labeledNetworks, nicToConfigure);
-
-            // remove the label from the nic to be passed to setup-networks
-            unlabelConfiguredNic(label, nicToConfigure);
-
-            // remove the networks from all of the nics
-            parameters.getInterfaces().removeAll(nicsToRemove);
-            return parameters;
-        }
-
-        private Set<VdsNetworkInterface> 
getNicsToRemove(List<VdsNetworkInterface> nics,
-                List<Network> labeledNetworks,
-                VdsNetworkInterface underlyingNic) {
-            Map<String, VdsNetworkInterface> nicsByNetworkName = 
Entities.hostInterfacesByNetworkName(nics);
-            Set<VdsNetworkInterface> nicsToRemove = new HashSet<>();
-
-            for (Network network : labeledNetworks) {
-                VdsNetworkInterface nic = 
nicsByNetworkName.get(network.getName());
-                if (nic != null) {
-                    if (StringUtils.equals(nic.getName(), 
underlyingNic.getName())) {
-                        underlyingNic.setNetworkName(null);
-                    } else if 
(StringUtils.equals(NetworkUtils.stripVlan(nic.getName()), 
underlyingNic.getName())) {
-                        nicsToRemove.add(nic);
-                    }
-                }
-            }
-
-            return nicsToRemove;
-        }
-
-        private void unlabelConfiguredNic(String label, VdsNetworkInterface 
nicToConfigure) {
-            if (NetworkUtils.isLabeled(nicToConfigure)) {
-                nicToConfigure.getLabels().remove(getLabel());
-            }
-        }
     }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib95c94ddb121449b5032b9d30f755b3b1771aa3a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Moti Asayag <masa...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to