Mike Kolesnik has uploaded a new change for review. Change subject: engine: Extract VmTemplateInterfaceCommandBase ......................................................................
engine: Extract VmTemplateInterfaceCommandBase This class holds base methods which are used in both sub-classes that add/update the NIC of a template. The purpose of the class is to keep it DRY, reducing complexity of sub classes. Change-Id: I79058138e158b85373f54324c94088072b3dd4a7 Signed-off-by: Mike Kolesnik <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/AddVmTemplateInterfaceCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/UpdateVmTemplateInterfaceCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/VmTemplateInterfaceCommandBase.java 3 files changed, 70 insertions(+), 48 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/64/10464/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/AddVmTemplateInterfaceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/AddVmTemplateInterfaceCommand.java index 6c2d0aa..5411d3a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/AddVmTemplateInterfaceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/AddVmTemplateInterfaceCommand.java @@ -5,8 +5,6 @@ import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.VmCommand; -import org.ovirt.engine.core.bll.VmHandler; -import org.ovirt.engine.core.bll.VmTemplateCommand; import org.ovirt.engine.core.bll.VmTemplateHandler; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; @@ -23,25 +21,18 @@ import org.ovirt.engine.core.common.validation.group.CreateEntity; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; -import org.ovirt.engine.core.dal.dbbroker.auditloghandling.CustomLogField; -import org.ovirt.engine.core.dal.dbbroker.auditloghandling.CustomLogFields; import org.ovirt.engine.core.utils.linq.LinqUtils; import org.ovirt.engine.core.utils.linq.Predicate; @SuppressWarnings("serial") -@CustomLogFields({ @CustomLogField("InterfaceName") }) -public class AddVmTemplateInterfaceCommand<T extends AddVmTemplateInterfaceParameters> extends VmTemplateCommand<T> { +public class AddVmTemplateInterfaceCommand<T extends AddVmTemplateInterfaceParameters> + extends VmTemplateInterfaceCommandBase<T> { public AddVmTemplateInterfaceCommand(T parameters) { super(parameters); } - public String getInterfaceName() { - return getParameters().getInterface().getName(); - } - @Override protected void executeCommand() { - AddCustomValue("InterfaceType", (VmInterfaceType.forValue(getParameters().getInterface().getType()).getDescription()).toString()); getParameters().getInterface().setVmTemplateId(getParameters().getVmTemplateId()); getParameters().getInterface().setId(Guid.NewGuid()); getParameters().getInterface().setSpeed( @@ -60,9 +51,7 @@ protected boolean canDoAction() { List<VmNetworkInterface> interfaces = getVmNetworkInterfaceDao().getAllForTemplate(getParameters().getVmTemplateId()); - if (!VmHandler.IsNotDuplicateInterfaceName(interfaces, - getParameters().getInterface().getName(), - getReturnValue().getCanDoActionMessages())) { + if (!interfaceNameUnique(interfaces)) { return false; } @@ -71,8 +60,7 @@ return false; } - if (getParameters().getInterface().getVmId() != null) { - addCanDoActionMessage(VdcBllMessages.NETWORK_INTERFACE_VM_CANNOT_BE_SET); + if (!validate(linkedToTemplate())) { return false; } @@ -119,10 +107,9 @@ * Set the parameters for bll messages, such as type and action, */ @Override - protected void setActionMessageParameters() - { + protected void setActionMessageParameters() { + super.setActionMessageParameters(); addCanDoActionMessage(VdcBllMessages.VAR__ACTION__ADD); - addCanDoActionMessage(VdcBllMessages.VAR__TYPE__INTERFACE); } @Override @@ -151,9 +138,5 @@ } return subjects; - } - - private String getNetworkName() { - return getParameters().getInterface().getNetworkName(); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/UpdateVmTemplateInterfaceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/UpdateVmTemplateInterfaceCommand.java index 3b10b5b..862b2e7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/UpdateVmTemplateInterfaceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/UpdateVmTemplateInterfaceCommand.java @@ -3,8 +3,6 @@ import java.util.List; import org.apache.commons.lang.StringUtils; -import org.ovirt.engine.core.bll.VmHandler; -import org.ovirt.engine.core.bll.VmTemplateCommand; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.validator.VmNicValidator; import org.ovirt.engine.core.common.AuditLogType; @@ -12,7 +10,6 @@ import org.ovirt.engine.core.common.action.AddVmTemplateInterfaceParameters; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.Network; -import org.ovirt.engine.core.common.businessentities.VmInterfaceType; import org.ovirt.engine.core.common.businessentities.VmNetworkInterface; import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.dal.VdcBllMessages; @@ -22,27 +19,22 @@ import org.ovirt.engine.core.utils.linq.Predicate; @SuppressWarnings("serial") -@CustomLogFields({ @CustomLogField("NetworkName"), @CustomLogField("InterfaceName") }) -public class UpdateVmTemplateInterfaceCommand<T extends AddVmTemplateInterfaceParameters> extends VmTemplateCommand<T> { +@CustomLogFields({ @CustomLogField("NetworkName") }) +public class UpdateVmTemplateInterfaceCommand<T extends AddVmTemplateInterfaceParameters> + extends VmTemplateInterfaceCommandBase<T> { public UpdateVmTemplateInterfaceCommand(T parameters) { super(parameters); } - public String getInterfaceName() { - return getParameters().getInterface().getName(); - } - @Override protected void executeCommand() { - AddCustomValue("InterfaceType", (VmInterfaceType.forValue(getParameters().getInterface().getType()).getDescription()).toString()); getVmNetworkInterfaceDao().update(getParameters().getInterface()); setSucceeded(true); } @Override protected boolean canDoAction() { - if (getParameters().getInterface().getVmId() != null) { - addCanDoActionMessage(VdcBllMessages.NETWORK_INTERFACE_VM_CANNOT_BE_SET); + if (!validate(linkedToTemplate())) { return false; } @@ -71,12 +63,8 @@ return false; } - if (!StringUtils.equals(oldIface.getName(), getParameters().getInterface().getName())) { - if (!VmHandler.IsNotDuplicateInterfaceName(interfaces, - getParameters().getInterface().getName(), - getReturnValue().getCanDoActionMessages())) { - return false; - } + if (!StringUtils.equals(oldIface.getName(), getInterfaceName()) && !interfaceNameUnique(interfaces)) { + return false; } return true; @@ -92,10 +80,9 @@ * Set the parameters for bll messages, such as type and action, */ @Override - protected void setActionMessageParameters() - { + protected void setActionMessageParameters() { + super.setActionMessageParameters(); addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); - addCanDoActionMessage(VdcBllMessages.VAR__TYPE__INTERFACE); } @Override @@ -136,9 +123,5 @@ private boolean isNetworkChanged(VmNetworkInterface iface) { return !getNetworkName().equals(iface.getNetworkName()); - } - - private String getNetworkName() { - return getParameters().getInterface().getNetworkName(); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/VmTemplateInterfaceCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/VmTemplateInterfaceCommandBase.java new file mode 100644 index 0000000..7f42caf --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/VmTemplateInterfaceCommandBase.java @@ -0,0 +1,56 @@ +package org.ovirt.engine.core.bll.network.template; + +import java.util.List; + +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.bll.VmHandler; +import org.ovirt.engine.core.bll.VmTemplateCommand; +import org.ovirt.engine.core.common.action.AddVmTemplateInterfaceParameters; +import org.ovirt.engine.core.common.businessentities.VmInterfaceType; +import org.ovirt.engine.core.common.businessentities.VmNetworkInterface; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.VdcBllMessages; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.CustomLogField; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.CustomLogFields; + +@SuppressWarnings("serial") +@CustomLogFields({ @CustomLogField("InterfaceName"), @CustomLogField("InterfaceType") }) +public abstract class VmTemplateInterfaceCommandBase<T extends AddVmTemplateInterfaceParameters> + extends VmTemplateCommand<T> { + + public VmTemplateInterfaceCommandBase(Guid commandId) { + super(commandId); + } + + public VmTemplateInterfaceCommandBase(T parameters) { + super(parameters); + } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__INTERFACE); + } + + public String getInterfaceName() { + return getParameters().getInterface().getName(); + } + + public String getInterfaceType() { + return VmInterfaceType.forValue(getParameters().getInterface().getType()).getDescription(); + } + + public String getNetworkName() { + return getParameters().getInterface().getNetworkName(); + } + + protected boolean interfaceNameUnique(List<VmNetworkInterface> interfaces) { + return VmHandler.IsNotDuplicateInterfaceName(interfaces, + getInterfaceName(), + getReturnValue().getCanDoActionMessages()); + } + + protected ValidationResult linkedToTemplate() { + return getParameters().getInterface().getVmId() == null ? ValidationResult.VALID + : new ValidationResult(VdcBllMessages.NETWORK_INTERFACE_VM_CANNOT_BE_SET); + } +} -- To view, visit http://gerrit.ovirt.org/10464 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I79058138e158b85373f54324c94088072b3dd4a7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
