Alona Kaplan has uploaded a new change for review.
Change subject: engine: Add profile validation to VmNicValidator
......................................................................
engine: Add profile validation to VmNicValidator
The profile validation will return an error if-
- The profile doesn't exist.
- The network is not in the current cluster.
- The profile contains QoS and it is not supported in the current
cluster's version.
Otherwise it's OK.
Update Add/UpdateVm/TemplateInterface commands to use this validator.
Change-Id: Ic58cbcdc412ca8ae86f7694148725730aa10acb9
Signed-off-by: Alona Kaplan <[email protected]>
---
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java
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/vm/AddVmInterfaceCommand.java
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java
M
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java
M
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java
M
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
M
frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
M
frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
12 files changed, 180 insertions(+), 65 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/78/18178/1
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java
index 49694eb..9f3ffd4 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkHelper.java
@@ -73,8 +73,16 @@
return null;
}
- Network retVal = null;
VnicProfile vnicProfile =
DbFacade.getInstance().getVnicProfileDao().get(vnicProfileId);
+ return getNetworkByVnicProfile(vnicProfile);
+ }
+
+ public static Network getNetworkByVnicProfile(VnicProfile vnicProfile) {
+ if (vnicProfile == null) {
+ return null;
+ }
+
+ Network retVal = null;
if (vnicProfile.getNetworkId() != null) {
retVal =
DbFacade.getInstance().getNetworkDao().get(vnicProfile.getNetworkId());
}
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 ffd932b..29126f2 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,7 +6,6 @@
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;
@@ -15,7 +14,6 @@
import org.ovirt.engine.core.common.action.AddVmTemplateInterfaceParameters;
import org.ovirt.engine.core.common.businessentities.DiskImageBase;
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.VmInterfaceType;
import
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
import org.ovirt.engine.core.common.businessentities.network.VmNic;
@@ -70,20 +68,9 @@
Version clusterCompatibilityVersion =
getVdsGroup().getcompatibility_version();
VmNicValidator nicValidator = new
VmNicValidator(getParameters().getInterface(), clusterCompatibilityVersion);
- if (!validate(nicValidator.linkedCorrectly()) ||
!validate(nicValidator.emptyNetworkValid())) {
+ if (!validate(nicValidator.linkedCorrectly()) ||
!validate(nicValidator.emptyNetworkValid())
+ ||
!validate(nicValidator.profileValid(getVmTemplate().getVdsGroupId()))) {
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/UpdateVmTemplateInterfaceCommand.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/template/UpdateVmTemplateInterfaceCommand.java
index 3eec8d7..babfa27 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,7 +4,6 @@
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,7 +11,6 @@
import org.ovirt.engine.core.common.action.AddVmTemplateInterfaceParameters;
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.errors.VdcBllMessages;
import org.ovirt.engine.core.common.validation.group.UpdateEntity;
@@ -64,24 +62,13 @@
Version clusterCompatibilityVersion =
getVdsGroup().getcompatibility_version();
VmNicValidator nicValidator = new
VmNicValidator(getParameters().getInterface(), clusterCompatibilityVersion);
- if (!validate(nicValidator.linkedCorrectly()) ||
!validate(nicValidator.emptyNetworkValid())) {
+ if (!validate(nicValidator.linkedCorrectly()) ||
!validate(nicValidator.emptyNetworkValid())
+ ||
!validate(nicValidator.profileValid(getVmTemplate().getVdsGroupId()))) {
return false;
}
if (!StringUtils.equals(oldIface.getName(), getInterfaceName()) &&
!interfaceNameUnique(interfaces)) {
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/vm/AddVmInterfaceCommand.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AddVmInterfaceCommand.java
index adf0429..45f6e90 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AddVmInterfaceCommand.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AddVmInterfaceCommand.java
@@ -6,7 +6,6 @@
import org.apache.commons.lang.StringUtils;
import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
import org.ovirt.engine.core.bll.network.MacPoolManager;
-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;
@@ -17,7 +16,6 @@
import org.ovirt.engine.core.common.businessentities.VmDevice;
import org.ovirt.engine.core.common.businessentities.VmDeviceId;
import org.ovirt.engine.core.common.businessentities.VmStatic;
-import org.ovirt.engine.core.common.businessentities.network.Network;
import org.ovirt.engine.core.common.businessentities.network.VmInterfaceType;
import org.ovirt.engine.core.common.businessentities.network.VmNic;
import org.ovirt.engine.core.common.errors.VdcBllMessages;
@@ -133,22 +131,9 @@
Version compatibilityVersion =
getVm().getVdsGroupCompatibilityVersion();
VmNicValidator nicValidator = new VmNicValidator(getInterface(),
compatibilityVersion);
- if (!validate(nicValidator.linkedCorrectly()) ||
!validate(nicValidator.emptyNetworkValid())) {
+ if (!validate(nicValidator.linkedCorrectly()) ||
!validate(nicValidator.emptyNetworkValid())
+ || !validate(nicValidator.profileValid(vm.getVdsGroupId()))) {
return false;
- }
-
- if (getInterface().getVnicProfileId() != null) {
- // check that the network exists in current cluster
- Network network =
NetworkHelper.getNetworkByVnicProfileId(getInterface().getVnicProfileId());
-
- if (network == null || !NetworkHelper.isNetworkInCluster(network,
getVm().getVdsGroupId())) {
-
addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER);
- return false;
- } else if (!network.isVmNetwork()) {
-
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_NOT_A_VM_NETWORK);
- addCanDoActionMessage(String.format("$networks %1$s",
network.getName()));
- return false;
- }
}
if (StringUtils.isNotEmpty(getMacAddress())) {
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java
index f1de649..96cb2b8 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/UpdateVmInterfaceCommand.java
@@ -188,21 +188,12 @@
if (!validate(nicValidator.unplugPlugNotRequired())
|| !validate(nicValidator.linkedCorrectly())
|| !validate(nicValidator.emptyNetworkValid())
- || !validate(nicValidator.hotUpdatePossible())) {
+ || !validate(nicValidator.hotUpdatePossible())
+ || !validate(nicValidator.profileValid(vm.getVdsGroupId()))) {
return false;
}
Network network = null;
- if (getInterface().getVnicProfileId() != null) {
-
- network =
NetworkHelper.getNetworkByVnicProfileId(getInterface().getVnicProfileId());
- // check that the network exists in current cluster
- if (network == null || !NetworkHelper.isNetworkInCluster(network,
getVm().getVdsGroupId())) {
-
addCanDoActionMessage(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER);
- return false;
- }
- }
-
if (getRequiredAction() == RequiredAction.UPDATE_VM_DEVICE) {
Network oldNetwork =
NetworkHelper.getNetworkByVnicProfileId(oldIface.getVnicProfileId());
if
(!validate(nicValidator.hotUpdateDoneWithInternalNetwork(oldNetwork, network)))
{
diff --git
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java
index 3e7a2c9..684f559 100644
---
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java
+++
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmNicValidator.java
@@ -1,10 +1,15 @@
package org.ovirt.engine.core.bll.validator;
import org.ovirt.engine.core.bll.ValidationResult;
+import org.ovirt.engine.core.bll.network.cluster.NetworkHelper;
import org.ovirt.engine.core.common.FeatureSupported;
+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;
+import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
/**
* A class that can validate a {@link vmNic} is valid from certain aspects.
@@ -40,7 +45,49 @@
: ValidationResult.VALID;
}
+ /**
+ * @return 1. An error if- <BR>
+ * - The profile doesn't exist. <BR>
+ * - The network is not in the current cluster. <BR>
+ * - The profile contains QoS and it is not supported in the
current cluster's version. <BR>
+ * 2.- Otherwise it's OK.
+ */
+ public ValidationResult profileValid(Guid clusterId) {
+ if (nic.getVnicProfileId() != null) {
+ // Check that the profile exists
+ VnicProfile vnicProfile =
getDbFacade().getVnicProfileDao().get(nic.getVnicProfileId());
+ if (vnicProfile == null) {
+ return new
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_VNIC_PROFILE_NOT_EXISTS);
+ }
+
+ // Check that the network exists in current cluster
+ Network network = getNetworkByVnicProfile(vnicProfile);
+ if (network == null || !isNetworkInCluster(network, clusterId)) {
+ return new
ValidationResult(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER);
+ }
+
+ // Check that if the profile contains QoS it is supported in the
current cluster's version
+ if (!FeatureSupported.networkQoS(version)
+ &&
getDbFacade().getQosDao().get(vnicProfile.getNetworkQosId()) != null)
+ return new
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED,
+ clusterVersion());
+ }
+ return ValidationResult.VALID;
+ }
+
protected String clusterVersion() {
return String.format(CLUSTER_VERSION_REPLACEMENT_FORMAT,
version.getValue());
}
+
+ protected Network getNetworkByVnicProfile(VnicProfile vnicProfile) {
+ return NetworkHelper.getNetworkByVnicProfile(vnicProfile);
+ }
+
+ protected boolean isNetworkInCluster(Network network, Guid clusterId) {
+ return NetworkHelper.isNetworkInCluster(network, clusterId);
+ }
+
+ protected DbFacade getDbFacade() {
+ return DbFacade.getInstance();
+ }
}
diff --git
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java
index b10f9bb..7bcb6a1 100644
---
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java
+++
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmNicValidatorTest.java
@@ -3,6 +3,9 @@
import static org.junit.Assert.assertThat;
import static org.junit.matchers.JUnitMatchers.both;
import static org.junit.matchers.JUnitMatchers.hasItem;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import static
org.ovirt.engine.core.bll.validator.ValidationResultMatchers.failsWith;
import static
org.ovirt.engine.core.bll.validator.ValidationResultMatchers.isValid;
@@ -16,11 +19,17 @@
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.ovirt.engine.core.bll.ValidationResult;
+import org.ovirt.engine.core.common.businessentities.network.Network;
+import org.ovirt.engine.core.common.businessentities.network.NetworkQoS;
import org.ovirt.engine.core.common.businessentities.network.VmNic;
+import org.ovirt.engine.core.common.businessentities.network.VnicProfile;
import org.ovirt.engine.core.common.config.ConfigValues;
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.dao.network.NetworkQoSDao;
+import org.ovirt.engine.core.dao.network.VnicProfileDao;
import org.ovirt.engine.core.utils.MockConfigRule;
@RunWith(MockitoJUnitRunner.class)
@@ -31,6 +40,9 @@
private static final String CLUSTER_VERSION_REPLACEMENT =
String.format(VmNicValidator.CLUSTER_VERSION_REPLACEMENT_FORMAT,
CLUSTER_VERSION);
+
+ private final Guid DEFAULT_GUID = Guid.newGuid();
+ private final Guid OTHER_GUID = Guid.newGuid();
@Rule
public MockConfigRule mockConfigRule = new MockConfigRule();
@@ -43,11 +55,30 @@
private VmNicValidator validator;
+ @Mock
+ private DbFacade dbFacade;
+
+ @Mock
+ private VnicProfileDao vnicProfileDao;
+
+ @Mock
+ private NetworkQoSDao networkQosDao;
+
+ @Mock
+ private VnicProfile vnicProfile;
+
+ @Mock
+ private Network network;
+
+ @Mock
+ private NetworkQoS networkQos;
+
@Before
public void setup() {
when(version.getValue()).thenReturn(CLUSTER_VERSION);
- validator = new VmNicValidator(nic, version);
+ validator = spy(new VmNicValidator(nic, version));
+ doReturn(dbFacade).when(validator).getDbFacade();
}
@Test
@@ -75,7 +106,7 @@
@Test
public void nullVnicProfileWhenUnlinkingNotSupported() throws Exception {
-
vnicProfileTest(both(failsWith(VdcBllMessages.NULL_NETWORK_IS_NOT_SUPPORTED))
+
vnicProfileLinkingTest(both(failsWith(VdcBllMessages.NULL_NETWORK_IS_NOT_SUPPORTED))
.and(replacements(hasItem(CLUSTER_VERSION_REPLACEMENT))),
false,
null);
@@ -83,17 +114,17 @@
@Test
public void validVnicProfileWhenUnlinkingNotSupported() throws Exception {
- vnicProfileTest(isValid(), false, VNIC_PROFILE_ID);
+ vnicProfileLinkingTest(isValid(), false, VNIC_PROFILE_ID);
}
@Test
public void nullVnicProfileWhenUnlinkingSupported() throws Exception {
- vnicProfileTest(isValid(), true, null);
+ vnicProfileLinkingTest(isValid(), true, null);
}
@Test
public void validVnicProfileWhenUnlinkingSupported() throws Exception {
- vnicProfileTest(isValid(), true, VNIC_PROFILE_ID);
+ vnicProfileLinkingTest(isValid(), true, VNIC_PROFILE_ID);
}
private void unlinkingTest(Matcher<ValidationResult> matcher, boolean
networkLinkingSupported, boolean nicLinked) {
@@ -103,11 +134,83 @@
assertThat(validator.linkedCorrectly(), matcher);
}
- private void vnicProfileTest(Matcher<ValidationResult> matcher, boolean
networkLinkingSupported, Guid vnicProfileId) {
+ private void vnicProfileLinkingTest(Matcher<ValidationResult> matcher,
+ boolean networkLinkingSupported,
+ Guid vnicProfileId) {
mockConfigRule.mockConfigValue(ConfigValues.NetworkLinkingSupported,
version, networkLinkingSupported);
when(nic.getVnicProfileId()).thenReturn(vnicProfileId);
assertThat(validator.emptyNetworkValid(), matcher);
}
+ @Test
+ public void vnicProfileExist() throws Exception {
+ vnicProfileValidationTest(isValid(), true, true, false, false);
+ }
+
+ @Test
+ public void vnicProfileNotExist() throws Exception {
+
vnicProfileValidationTest(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_VNIC_PROFILE_NOT_EXISTS),
+ false,
+ false,
+ false,
+ false);
+ }
+
+ @Test
+ public void qosSupported() throws Exception {
+ vnicProfileValidationTest(isValid(), true, true, true, true);
+ }
+
+ @Test
+ public void qosNotSupported() throws Exception {
+
vnicProfileValidationTest(both(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED))
+ .and(replacements(hasItem(CLUSTER_VERSION_REPLACEMENT))),
true, true, true, false);
+ }
+
+ @Test
+ public void qosNullAndSupported() throws Exception {
+ vnicProfileValidationTest(isValid(), true, true, false, true);
+ }
+
+ @Test
+ public void qosNullAndNotSupported() throws Exception {
+ vnicProfileValidationTest(isValid(), true, true, false, false);
+ }
+
+ @Test
+ public void networkInCluster() throws Exception {
+ vnicProfileValidationTest(isValid(), true, true, false, false);
+ }
+
+ @Test
+ public void networkNotInCluster() throws Exception {
+
vnicProfileValidationTest(failsWith(VdcBllMessages.NETWORK_NOT_EXISTS_IN_CURRENT_CLUSTER),
+ true,
+ false,
+ false,
+ false);
+ }
+
+ private void vnicProfileValidationTest(Matcher<ValidationResult> matcher,
+ boolean profileExist,
+ boolean networkExist,
+ boolean qosExist,
+ boolean qosSupported) {
+ when(dbFacade.getVnicProfileDao()).thenReturn(vnicProfileDao);
+ when(vnicProfileDao.get(any(Guid.class))).thenReturn(profileExist ?
vnicProfile : null);
+ when(vnicProfile.getNetworkId()).thenReturn(DEFAULT_GUID);
+
+ doReturn(networkExist ? network :
null).when(validator).getNetworkByVnicProfile(vnicProfile);
+
doReturn(networkExist).when(validator).isNetworkInCluster(any(Network.class),
any(Guid.class));
+
+ when(dbFacade.getQosDao()).thenReturn(networkQosDao);
+ when(networkQosDao.get(any(Guid.class))).thenReturn(qosExist ?
networkQos : null);
+
+ mockConfigRule.mockConfigValue(ConfigValues.NetworkQoSSupported,
version, qosSupported);
+ when(nic.getVnicProfileId()).thenReturn(VNIC_PROFILE_ID);
+
+ assertThat(validator.profileValid(OTHER_GUID), matcher);
+ }
+
}
diff --git
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
index 14dd4ad..c9cd911 100644
---
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
+++
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
@@ -626,6 +626,7 @@
HOT_PLUG_IS_NOT_SUPPORTED(ErrorType.NOT_SUPPORTED),
UNLINKING_IS_NOT_SUPPORTED(ErrorType.NOT_SUPPORTED),
NULL_NETWORK_IS_NOT_SUPPORTED(ErrorType.NOT_SUPPORTED),
+ ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED(ErrorType.NOT_SUPPORTED),
HOT_VM_INTERFACE_UPDATE_IS_NOT_SUPPORTED(ErrorType.NOT_SUPPORTED),
CANNOT_PERFOM_HOT_UPDATE(ErrorType.CONFLICT),
CANNOT_PERFOM_HOT_UPDATE_WITH_PORT_MIRRORING(ErrorType.CONFLICT),
diff --git
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
index 35b30dd..591b0b9 100644
---
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -811,6 +811,7 @@
HOT_PLUG_IS_NOT_SUPPORTED=Activate/Deactivate while VM is running, is only
supported for Clusters of version 3.1 and above.
UNLINKING_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Link state is set to
'Down' on the virtual machine's interface, this is not supported for clusters
of version ${clusterVersion}.
NULL_NETWORK_IS_NOT_SUPPORTED=Cannot ${action} ${type}. There is no network on
the virtual machine's interface, this is not supported for clusters of version
${clusterVersion}.
+ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED=Cannot ${action} ${type}.
There is Network QoS on the profile, this is not supported for clusters of
version ${clusterVersion}.
HOT_VM_INTERFACE_UPDATE_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Updating
the virtual machine interface while the virtual machine is running is not
supported for clusters of version ${clusterVersion}.
CANNOT_PERFOM_HOT_UPDATE=Cannot ${action} ${type}. Updating some of the
properties is not supported while the interface is plugged into a running
virtual machine. Please un-plug the interface, update the properties, and then
plug it back.
CANNOT_PERFOM_HOT_UPDATE_WITH_PORT_MIRRORING=Cannot ${action} ${type}. Update
is not possible when 'Port Mirroring' is set on the interface of a running
virtual machine.
diff --git
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
index 96d191f..5ba1c8b 100644
---
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
+++
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
@@ -2191,6 +2191,9 @@
@DefaultStringValue("Cannot ${action} ${type}. There is no network on the
virtual machine's interface, this is not supported for clusters of version
${clusterVersion}.")
String NULL_NETWORK_IS_NOT_SUPPORTED();
+ @DefaultStringValue("Cannot ${action} ${type}. There is Network QoS on the
profile, this is not supported for clusters of version ${clusterVersion}.")
+ String ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED();
+
@DefaultStringValue("Cannot ${action} ${type}. Updating the virtual
machine interface while the virtual machine is running is not supported for
clusters of version ${clusterVersion}.")
String HOT_VM_INTERFACE_UPDATE_IS_NOT_SUPPORTED();
diff --git
a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
index 65d42ed..5492adb 100644
---
a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
+++
b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
@@ -791,6 +791,7 @@
HOT_PLUG_IS_NOT_SUPPORTED=Activate/Deactivate while VM is running, is only
supported for Clusters of version 3.1 and above.
UNLINKING_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Link state is set to
'Down' on the virtual machine's interface, this is not supported for clusters
of version ${clusterVersion}.
NULL_NETWORK_IS_NOT_SUPPORTED=Cannot ${action} ${type}. There is no network on
the virtual machine's interface, this is not supported for clusters of version
${clusterVersion}.
+ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED=Cannot ${action} ${type}.
There is Network QoS on the profile, this is not supported for clusters of
version ${clusterVersion}.
HOT_VM_INTERFACE_UPDATE_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Updating
the virtual machine interface while the virtual machine is running is not
supported for clusters of version ${clusterVersion}.
CANNOT_PERFOM_HOT_UPDATE=Cannot ${action} ${type}. Updating some of the
properties is not supported while the interface is plugged into a running
virtual machine. Please un-plug the interface, update the properties, and then
plug it back.
CANNOT_PERFOM_HOT_UPDATE_WITH_PORT_MIRRORING=Cannot ${action} ${type}. Update
is not possible when 'Port Mirroring' is set on the interface of a running
virtual machine.
diff --git
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
index b3458a6..7718ea5 100644
---
a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
+++
b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties
@@ -812,6 +812,7 @@
HOT_PLUG_IS_NOT_SUPPORTED=Activate/Deactivate while VM is running, is only
supported for Clusters of version 3.1 and above.
UNLINKING_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Link state is set to
'Down' on the virtual machine's interface, this is not supported for clusters
of version ${clusterVersion}.
NULL_NETWORK_IS_NOT_SUPPORTED=Cannot ${action} ${type}. There is no network on
the virtual machine's interface, this is not supported for clusters of version
${clusterVersion}.
+ACTION_TYPE_FAILED_NETWROK_QOS_IS_NOT_SUPPORTED=Cannot ${action} ${type}.
There is Network QoS on the profile, this is not supported for clusters of
version ${clusterVersion}.
HOT_VM_INTERFACE_UPDATE_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Updating
the virtual machine interface while the virtual machine is running is not
supported for clusters of version ${clusterVersion}.
CANNOT_PERFOM_HOT_UPDATE=Cannot ${action} ${type}. Updating some of the
properties is not supported while the interface is plugged into a running
virtual machine. Please un-plug the interface, update the properties, and then
plug it back.
CANNOT_PERFOM_HOT_UPDATE_WITH_PORT_MIRRORING=Cannot ${action} ${type}. Update
is not possible when 'Port Mirroring' is set on the interface of a running
virtual machine.
--
To view, visit http://gerrit.ovirt.org/18178
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic58cbcdc412ca8ae86f7694148725730aa10acb9
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches