Lior Vernia has uploaded a new change for review.

Change subject: engine: Extract code common for cluster network attach/update
......................................................................

engine: Extract code common for cluster network attach/update

Validation is very similar in those two commands, so extracted the
common code to a superclass both extend.

Change-Id: I3869fad7c00313626587ba28f867801795061f69
Bug-Url: https://bugzilla.redhat.com/1135779
Signed-off-by: Lior Vernia <lver...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
3 files changed, 60 insertions(+), 39 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/32905/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
index 308f985..3015619 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
@@ -4,7 +4,6 @@
 import java.util.List;
 
 import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
-import org.ovirt.engine.core.bll.VdsGroupCommandBase;
 import org.ovirt.engine.core.bll.network.AddNetworkParametersBuilder;
 import org.ovirt.engine.core.bll.network.NetworkParametersBuilder;
 import 
org.ovirt.engine.core.bll.network.cluster.helper.DisplayNetworkClusterHelper;
@@ -22,6 +21,7 @@
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import 
org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirectorDelegator;
 import org.ovirt.engine.core.dao.VmDAO;
@@ -32,21 +32,27 @@
 
 @NonTransactiveCommandAttribute
 public class AttachNetworkToVdsGroupCommand<T extends 
AttachNetworkToVdsGroupParameter> extends
-        VdsGroupCommandBase<T> {
+        NetworkClusterCommandBase<T> {
 
     private Network persistedNetwork;
 
     public AttachNetworkToVdsGroupCommand(T parameters) {
         super(parameters);
-        setVdsGroupId(parameters.getVdsGroupId());
     }
 
-    private Network getNetwork() {
+    @Override
+    protected Network getNetwork() {
         return getParameters().getNetwork();
     }
 
+    @Override
     public String getNetworkName() {
         return getPersistedNetwork() == null ? null : 
getPersistedNetwork().getName();
+    }
+
+    @Override
+    protected Version getClusterVersion() {
+        return getVdsGroup().getcompatibility_version();
     }
 
     @Override
@@ -104,17 +110,8 @@
                 && validateAttachment();
     }
 
-    private boolean validateAttachment() {
-        NetworkClusterValidator validator =
-                new NetworkClusterValidator(getNetworkCluster(), 
getVdsGroup().getcompatibility_version());
-        return (!NetworkUtils.isManagementNetwork(getNetwork())
-                || 
validate(validator.managementNetworkAttachment(getNetworkName())))
-                && 
validate(validator.migrationPropertySupported(getNetworkName()))
-                && (!getPersistedNetwork().isExternal()
-                || validateExternalNetwork(validator));
-    }
-
-    private boolean validateExternalNetwork(NetworkClusterValidator validator) 
{
+    @Override
+    protected boolean validateExternalNetwork(NetworkClusterValidator 
validator) {
         return validate(validator.externalNetworkSupported())
                 && 
validate(validator.externalNetworkNotDisplay(getNetworkName()))
                 && 
validate(validator.externalNetworkNotRequired(getNetworkName()));
@@ -169,10 +166,6 @@
 
     private boolean vdsGroupInDb() {
         return getVdsGroup() != null;
-    }
-
-    private NetworkCluster getNetworkCluster() {
-        return getParameters().getNetworkCluster();
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterCommandBase.java
new file mode 100644
index 0000000..e7bb162
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterCommandBase.java
@@ -0,0 +1,37 @@
+package org.ovirt.engine.core.bll.network.cluster;
+
+import org.ovirt.engine.core.bll.VdsGroupCommandBase;
+import org.ovirt.engine.core.common.action.NetworkClusterParameters;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkCluster;
+import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.core.utils.NetworkUtils;
+
+public abstract class NetworkClusterCommandBase<T extends 
NetworkClusterParameters> extends VdsGroupCommandBase<T> {
+
+    protected NetworkClusterCommandBase(T parameters) {
+        super(parameters);
+        setVdsGroupId(parameters.getVdsGroupId());
+    }
+
+    protected NetworkCluster getNetworkCluster() {
+        return getParameters().getNetworkCluster();
+    }
+
+    protected abstract Version getClusterVersion();
+
+    protected abstract Network getNetwork();
+
+    protected abstract boolean validateExternalNetwork(NetworkClusterValidator 
validator);
+
+    public abstract String getNetworkName();
+
+    protected boolean validateAttachment() {
+        NetworkClusterValidator validator = new 
NetworkClusterValidator(getNetworkCluster(), getClusterVersion());
+        return (!NetworkUtils.isManagementNetwork(getNetwork())
+                || 
validate(validator.managementNetworkAttachment(getNetworkName())))
+                && 
validate(validator.migrationPropertySupported(getNetworkName()))
+                && (!getNetwork().isExternal() || 
validateExternalNetwork(validator));
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
index 24ba3d9..3193b66 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
@@ -4,7 +4,6 @@
 import java.util.List;
 
 import org.ovirt.engine.core.bll.ValidationResult;
-import org.ovirt.engine.core.bll.VdsGroupCommandBase;
 import 
org.ovirt.engine.core.bll.network.cluster.helper.DisplayNetworkClusterHelper;
 import org.ovirt.engine.core.bll.utils.PermissionSubject;
 import org.ovirt.engine.core.common.AuditLogType;
@@ -20,7 +19,7 @@
 import org.ovirt.engine.core.utils.NetworkUtils;
 
 public class UpdateNetworkOnClusterCommand<T extends NetworkClusterParameters> 
extends
-        VdsGroupCommandBase<T> {
+        NetworkClusterCommandBase<T> {
 
     private Network network;
     private Network mgmtNetwork;
@@ -28,10 +27,10 @@
 
     public UpdateNetworkOnClusterCommand(T parameters) {
         super(parameters);
-        setVdsGroupId(parameters.getVdsGroupId());
     }
 
-    private Network getNetwork() {
+    @Override
+    protected Network getNetwork() {
         if (network == null) {
             network = getNetworkDAO().get(getNetworkCluster().getNetworkId());
         }
@@ -55,12 +54,14 @@
         return oldNetworkCluster;
     }
 
-    private NetworkCluster getNetworkCluster() {
-        return getParameters().getNetworkCluster();
-    }
-
+    @Override
     public String getNetworkName() {
         return getNetwork().getName();
+    }
+
+    @Override
+    protected Version getClusterVersion() {
+        return 
getVdsGroupDAO().get(getNetworkCluster().getClusterId()).getcompatibility_version();
     }
 
     @Override
@@ -102,18 +103,8 @@
         return validate(networkClusterAttachmentExists()) && 
validateAttachment();
     }
 
-    private boolean validateAttachment() {
-        Version clusterVersion =
-                
getVdsGroupDAO().get(getNetworkCluster().getClusterId()).getcompatibility_version();
-        NetworkClusterValidator validator =
-                new NetworkClusterValidator(getNetworkCluster(), 
clusterVersion);
-        return (!NetworkUtils.isManagementNetwork(getNetwork())
-                || 
validate(validator.managementNetworkAttachment(getNetworkName())))
-                && 
validate(validator.migrationPropertySupported(getNetworkName()))
-                && (!getNetwork().isExternal() || 
validateExternalNetwork(validator));
-    }
-
-    private boolean validateExternalNetwork(NetworkClusterValidator validator) 
{
+    @Override
+    protected boolean validateExternalNetwork(NetworkClusterValidator 
validator) {
         return validate(validator.externalNetworkNotDisplay(getNetworkName()))
                 && 
validate(validator.externalNetworkNotRequired(getNetworkName()));
     }


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

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

Reply via email to