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