Moti Asayag has uploaded a new change for review. Change subject: engine: Expose new parameters for template vnic actions ......................................................................
engine: Expose new parameters for template vnic actions The patch adds new parameters for the template's vnic to replace the deprecated properties on the VmNetowkrInterface entity. Change-Id: I033ad326d41d9c339b69b284514f1e19f54b6f5f Signed-off-by: Moti Asayag <[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 M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/VmTemplateInterfaceCommandBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateInterfaceParameters.java 4 files changed, 64 insertions(+), 29 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/63/17363/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 1f6eb70..8275a5e 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 @@ -6,6 +6,7 @@ import org.ovirt.engine.core.bll.VmCommand; import org.ovirt.engine.core.bll.VmTemplateHandler; +import org.ovirt.engine.core.bll.network.cluster.NetworkHelper; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; import org.ovirt.engine.core.bll.validator.VmNicValidator; @@ -23,8 +24,6 @@ import org.ovirt.engine.core.common.validation.group.CreateEntity; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.Version; -import org.ovirt.engine.core.utils.linq.LinqUtils; -import org.ovirt.engine.core.utils.linq.Predicate; public class AddVmTemplateInterfaceCommand<T extends AddVmTemplateInterfaceParameters> extends VmTemplateInterfaceCommandBase<T> { @@ -43,7 +42,7 @@ getVmNicDao().save(getParameters().getInterface()); VmDeviceUtils.addNetworkInterfaceDevice( new VmDeviceId(getParameters().getInterface().getId(), getParameters().getVmTemplateId()), - getParameters().getInterface().isPlugged(), + getParameters().isPlugged(), getParameters().getInterface().getVnicProfileId()); setSucceeded(true); @@ -73,15 +72,13 @@ return false; } - if (getNetworkName() != null) { + if (getParameters().getInterface().getVnicProfileId() != null) { // check that the network exists in current cluster - List<Network> networks = getNetworkDAO().getAllForCluster(getVmTemplate().getVdsGroupId()); - if (null == LinqUtils.firstOrNull(networks, new Predicate<Network>() { - @Override - public boolean eval(Network network) { - return network.getName().equals(getNetworkName()); - } - })) { + Network interfaceNetwork = + NetworkHelper.getNetworkByVnicProfileId(getParameters().getInterface().getVnicProfileId()); + + if (interfaceNetwork == null + || !NetworkHelper.isNetworkInCluster(interfaceNetwork, getVmTemplate().getVdsGroupId())) { addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER); return false; } 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 91f5d6a..d381420 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 @@ -4,6 +4,7 @@ import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; +import org.ovirt.engine.core.bll.network.cluster.NetworkHelper; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.validator.VmNicValidator; import org.ovirt.engine.core.common.AuditLogType; @@ -12,6 +13,7 @@ import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.VmDevice; import org.ovirt.engine.core.common.businessentities.VmDeviceId; +import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VmNic; import org.ovirt.engine.core.common.businessentities.network.VnicProfile; import org.ovirt.engine.core.common.errors.VdcBllMessages; @@ -29,8 +31,10 @@ @Override protected void executeCommand() { getVmNicDao().update(getParameters().getInterface()); - VmDevice vmDevice = getDbFacade().getVmDeviceDao().get(new VmDeviceId(getParameters().getInterface().getId(), getParameters().getVmTemplateId())); - vmDevice.setCustomProperties(getParameters().getInterface().getCustomProperties()); + VmDevice vmDevice = + getDbFacade().getVmDeviceDao().get(new VmDeviceId(getParameters().getInterface().getId(), + getParameters().getVmTemplateId())); + vmDevice.setIsPlugged(getParameters().isPlugged()); getDbFacade().getVmDeviceDao().update(vmDevice); setSucceeded(true); } @@ -56,7 +60,6 @@ } }); - Version clusterCompatibilityVersion = getVdsGroup().getcompatibility_version(); VmNicValidator nicValidator = new VmNicValidator(getParameters().getInterface(), clusterCompatibilityVersion); @@ -68,6 +71,18 @@ return false; } + if (getParameters().getInterface().getVnicProfileId() != null) { + // check that the network exists in current cluster + Network interfaceNetwork = + NetworkHelper.getNetworkByVnicProfileId(getParameters().getInterface().getVnicProfileId()); + + if (interfaceNetwork == null + || !NetworkHelper.isNetworkInCluster(interfaceNetwork, getVmTemplate().getVdsGroupId())) { + addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER); + return false; + } + } + return true; } 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 index 1e26d5e..b488239 100644 --- 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 @@ -35,10 +35,6 @@ return VmInterfaceType.forValue(getParameters().getInterface().getType()).getDescription(); } - public String getNetworkName() { - return getParameters().getInterface().getNetworkName(); - } - protected boolean interfaceNameUnique(List<VmNic> interfaces) { return VmHandler.IsNotDuplicateInterfaceName(interfaces, getInterfaceName(), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateInterfaceParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateInterfaceParameters.java index e844681..479b929 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateInterfaceParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmTemplateInterfaceParameters.java @@ -2,24 +2,51 @@ import javax.validation.Valid; -import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; +import org.ovirt.engine.core.common.businessentities.network.VmNic; import org.ovirt.engine.core.compat.Guid; public class AddVmTemplateInterfaceParameters extends VmTemplateParametersBase { private static final long serialVersionUID = 5177618608953713542L; @Valid - private VmNetworkInterface _interface; - - public AddVmTemplateInterfaceParameters(Guid vmtId, VmNetworkInterface iface) { - super(vmtId); - _interface = iface; - } - - public VmNetworkInterface getInterface() { - return _interface; - } + private VmNic nic; + private boolean plugged = true; + private boolean portMirroring; + private String networkName; public AddVmTemplateInterfaceParameters() { } + + public AddVmTemplateInterfaceParameters(Guid templateId, VmNic nic) { + super(templateId); + this.nic = nic; + } + + public VmNic getInterface() { + return nic; + } + + public boolean isPlugged() { + return plugged; + } + + public void setPlugged(boolean plugged) { + this.plugged = plugged; + } + + public boolean isPortMirroring() { + return portMirroring; + } + + public void setPortMirroring(boolean portMirroring) { + this.portMirroring = portMirroring; + } + + public String getNetworkName() { + return networkName; + } + + public void setNetworkName(String networkName) { + this.networkName = networkName; + } } -- To view, visit http://gerrit.ovirt.org/17363 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I033ad326d41d9c339b69b284514f1e19f54b6f5f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
