Moti Asayag has uploaded a new change for review. Change subject: engine: External network with vlan must be labeled ......................................................................
engine: External network with vlan must be labeled An external network which its vlan-id is set, must include a label when it is being added to the external provider. Since the engine might not be aware of changes made to the provider, the label values cannot be enforced. Change-Id: I811a0d55798b7dd78d37880055c4ac00303b679f Bug-Url: https://bugzilla.redhat.com/1059249 Signed-off-by: Moti Asayag <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/AddNetworkCommand.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/AddNetworkValidatorTest.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/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties 6 files changed, 34 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/30005/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/AddNetworkCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/AddNetworkCommand.java index f37c086..737f541 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/AddNetworkCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/AddNetworkCommand.java @@ -89,7 +89,8 @@ new ProviderValidator(getDbFacade().getProviderDao().get(getNetwork().getProvidedBy().getProviderId())); return validate(providerValidator.providerIsSet()) && validate(validator.externalNetworkNewInDataCenter()) - && validate(validator.externalNetworkIsVmNetwork()); + && validate(validator.externalNetworkIsVmNetwork()) + && validate(validator.externalNetworkVlanValid()); } @Override @@ -129,6 +130,11 @@ super(network); } + public ValidationResult externalNetworkVlanValid() { + return ValidationResult.failWith(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_NETWORK_WITH_VLAN_MUST_BE_LABELED) + .when(network.getVlanId() != null && network.getLabel() == null); + } + @Override protected DbFacade getDbFacade() { return super.getDbFacade(); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/AddNetworkValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/AddNetworkValidatorTest.java index 5aba434..3b4fa91 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/AddNetworkValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/dc/AddNetworkValidatorTest.java @@ -24,6 +24,7 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.network.NetworkDao; +import org.ovirt.engine.core.utils.RandomUtils; @RunWith(MockitoJUnitRunner.class) public class AddNetworkValidatorTest { @@ -97,4 +98,24 @@ assertThat(validator.externalNetworkIsVmNetwork(), failsWith(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_NETWORK_MUST_BE_VM_NETWORK)); } + + @Test + public void externalNetworkVlanValid() { + when(network.getVlanId()).thenReturn(RandomUtils.instance().nextInt()); + when(network.getLabel()).thenReturn(RandomUtils.instance().nextString(10)); + assertThat(validator.externalNetworkVlanValid(), isValid()); + } + + @Test + public void externalNetworkVlanInvalid() { + when(network.getVlanId()).thenReturn(RandomUtils.instance().nextInt()); + assertThat(validator.externalNetworkVlanValid(), + failsWith(VdcBllMessages.ACTION_TYPE_FAILED_EXTERNAL_NETWORK_WITH_VLAN_MUST_BE_LABELED)); + } + + @Test + public void externalNetworkNoVlanWithLabel() { + when(network.getLabel()).thenReturn(RandomUtils.instance().nextString(10)); + assertThat(validator.externalNetworkVlanValid(), isValid()); + } } 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 b1e77d1..0ca241c 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 @@ -545,6 +545,7 @@ ACTION_TYPE_FAILED_EXTERNAL_NETWORK_NOT_SUPPORTED(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_DISPLAY(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REQUIRED(ErrorType.NOT_SUPPORTED), + ACTION_TYPE_FAILED_EXTERNAL_NETWORK_WITH_VLAN_MUST_BE_LABELED(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_ISCSI_BOND_NETWORK_CANNOT_BE_REQUIRED(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_PROVIDER_NETWORKS_USED(ErrorType.CONFLICT), ACTION_TYPE_FAILED_PROVIDER_TYPE_MISMATCH(ErrorType.BAD_PARAMETERS), 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 fa3da3c..31c18c9 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -598,6 +598,7 @@ ACTION_TYPE_FAILED_EXTERNAL_NETWORK_NOT_SUPPORTED=Cannot ${action} ${type}. External networks are not supported for this cluster's compatibility version. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_DISPLAY=Cannot ${action} ${type}. External network cannot be used as a display network. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REQUIRED=Cannot ${action} ${type}. External network cannot be set as required in the cluster. +ACTION_TYPE_FAILED_EXTERNAL_NETWORK_WITH_VLAN_MUST_BE_LABELED=Cannot ${action} ${type}. External network with vlan must be labeled. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_PORT_MIRRORED=Cannot ${action} ${type}. External network cannot be used when port mirroring is set. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REWIRED=Cannot ${action} ${type}. External network cannot be changed while the virtual machine is running. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_HAVE_MTU=Cannot ${action} ${type}. External network cannot have MTU set. 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 0f0aa54..ad62e64 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 @@ -1648,6 +1648,9 @@ @DefaultStringValue("Cannot ${action} ${type}. External network cannot be set as required in the cluster.") String ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REQUIRED(); + @DefaultStringValue("Cannot ${action} ${type}. External network with vlan must be labeled.") + String ACTION_TYPE_FAILED_EXTERNAL_NETWORK_WITH_VLAN_MUST_BE_LABELED(); + @DefaultStringValue("Cannot ${action} ${type}. External network cannot be used when port mirroring is set.") String ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_PORT_MIRRORED(); 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 02fb749..ad0f113 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 @@ -603,6 +603,7 @@ ACTION_TYPE_FAILED_EXTERNAL_NETWORK_NOT_SUPPORTED=Cannot ${action} ${type}. External networks are not supported for this cluster's compatibility version. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_DISPLAY=Cannot ${action} ${type}. External network cannot be used as a display network. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REQUIRED=Cannot ${action} ${type}. External network cannot be set as required in the cluster. +ACTION_TYPE_FAILED_EXTERNAL_NETWORK_WITH_VLAN_MUST_BE_LABELED=Cannot ${action} ${type}. External network with vlan must be labeled. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_PORT_MIRRORED=Cannot ${action} ${type}. External network cannot be used when port mirroring is set. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REWIRED=Cannot ${action} ${type}. External network cannot be changed while the virtual machine is running. ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_HAVE_MTU=Cannot ${action} ${type}. External network cannot have MTU set. -- To view, visit http://gerrit.ovirt.org/30005 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I811a0d55798b7dd78d37880055c4ac00303b679f 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
