Moti Asayag has uploaded a new change for review. Change subject: engine: Add Label and Unlabel network commands ......................................................................
engine: Add Label and Unlabel network commands The commands are added for labeling and unlabeling a network. The commands will be used from the rest api where the labels are a sub-collection of the network. Change-Id: I2064d24f0d357ca8d477266e4a9e18939bf21ad0 Signed-off-by: Moti Asayag <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/LabelNetworkCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UnlabelNetworkCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/LabelNetworkParameters.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UnlabelNetworkParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties M backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.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 15 files changed, 267 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/22801/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/LabelNetworkCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/LabelNetworkCommand.java new file mode 100644 index 0000000..d863211 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/LabelNetworkCommand.java @@ -0,0 +1,87 @@ +package org.ovirt.engine.core.bll.network.dc; + +import java.util.Collections; +import java.util.List; + +import org.ovirt.engine.core.bll.CommandBase; +import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.bll.validator.NetworkValidator; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; +import org.ovirt.engine.core.common.action.LabelNetworkParameters; +import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.action.VdcReturnValueBase; +import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.validation.group.CreateEntity; +import org.ovirt.engine.core.compat.Guid; + +public class LabelNetworkCommand<T extends LabelNetworkParameters> extends CommandBase<T> { + private Network network; + + public LabelNetworkCommand(T parameters) { + super(parameters); + } + + @Override + protected void executeCommand() { + getNetwork().setLabel(getLabel()); + VdcReturnValueBase result = getBackend().runAction(VdcActionType.UpdateNetwork, + new AddNetworkStoragePoolParameters(getNetwork().getDataCenterId(), getNetwork())); + + if (!result.getSucceeded()) { + propagateFailure(result); + } + + setSucceeded(result.getSucceeded()); + } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__NETWORK); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); + } + + @Override + protected boolean canDoAction() { + NetworkValidator validator = new NetworkValidator(getNetwork()); + return validate(validator.networkIsSet()) + && validate(validator.notLabeled()); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.LABEL_NETWORK : AuditLogType.LABEL_NETWORK_FAILED; + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(CreateEntity.class); + return super.getValidationGroups(); + } + + private Network getNetwork() { + if (network == null) { + network = getNetworkDAO().get(getParameters().getNetworkId()); + } + + return network; + } + + public String getNetworkName() { + return getNetwork().getName(); + } + + public String getLabel() { + return getParameters().getLabel(); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + Guid networkId = getNetwork() == null ? null : getNetwork().getId(); + return Collections.singletonList(new PermissionSubject(networkId, + VdcObjectType.Network, + getActionType().getActionGroup())); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UnlabelNetworkCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UnlabelNetworkCommand.java new file mode 100644 index 0000000..6528c28 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/dc/UnlabelNetworkCommand.java @@ -0,0 +1,82 @@ +package org.ovirt.engine.core.bll.network.dc; + +import java.util.Collections; +import java.util.List; + +import org.ovirt.engine.core.bll.CommandBase; +import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.bll.validator.NetworkValidator; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters; +import org.ovirt.engine.core.common.action.UnlabelNetworkParameters; +import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.action.VdcReturnValueBase; +import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.validation.group.UpdateEntity; +import org.ovirt.engine.core.compat.Guid; + +public class UnlabelNetworkCommand<T extends UnlabelNetworkParameters> extends CommandBase<T> { + private Network network; + + public UnlabelNetworkCommand(T parameters) { + super(parameters); + } + + @Override + protected void executeCommand() { + getNetwork().setLabel(null); + VdcReturnValueBase result = getBackend().runAction(VdcActionType.UpdateNetwork, + new AddNetworkStoragePoolParameters(getNetwork().getDataCenterId(), getNetwork())); + + if (!result.getSucceeded()) { + propagateFailure(result); + } + + setSucceeded(result.getSucceeded()); + } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__NETWORK); + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); + } + + @Override + protected boolean canDoAction() { + NetworkValidator validatorNew = new NetworkValidator(getNetwork()); + return validate(validatorNew.networkIsSet()); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.UNLABEL_NETWORK : AuditLogType.UNLABEL_NETWORK_FAILED; + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(UpdateEntity.class); + return super.getValidationGroups(); + } + + private Network getNetwork() { + if (network == null) { + network = getNetworkDAO().get(getParameters().getNetworkId()); + } + + return network; + } + + public String getNetworkName() { + return getNetwork().getName(); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + Guid networkId = getNetwork() == null ? null : getNetwork().getId(); + return Collections.singletonList(new PermissionSubject(networkId, + VdcObjectType.Network, + getActionType().getActionGroup())); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java index a06020f..c74f60c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/NetworkValidator.java @@ -179,6 +179,11 @@ VdcBllMessages.VAR__ENTITIES__VM_TEMPLATES); } + public ValidationResult notLabeled() { + return network.getLabel() == null ? ValidationResult.VALID + : new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED); + } + protected List<VM> getVms() { if (vms == null) { vms = getDbFacade().getVmDao().getAllForNetwork(network.getId()); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java index 7cc1078..be0e2da 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/NetworkValidatorTest.java @@ -21,10 +21,10 @@ import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmTemplate; -import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBllMessages; @@ -37,6 +37,7 @@ import org.ovirt.engine.core.dao.VmTemplateDAO; import org.ovirt.engine.core.dao.network.NetworkDao; import org.ovirt.engine.core.utils.MockConfigRule; +import org.ovirt.engine.core.utils.RandomUtils; @RunWith(MockitoJUnitRunner.class) public class NetworkValidatorTest { @@ -358,4 +359,15 @@ networkNotUsedByTemplatesTest(failsWithNetworkInUse(), Collections.singletonList(template)); } + + @Test + public void networkNotLabeled() throws Exception { + assertThat(validator.notLabeled(), isValid()); + } + + @Test + public void networkLabeled() throws Exception { + when(network.getLabel()).thenReturn(RandomUtils.instance().nextPropertyString(10)); + assertThat(validator.notLabeled(), failsWith(VdcBllMessages.ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED)); + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java index f08b005..c99844c 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java @@ -603,6 +603,10 @@ VNIC_PROFILE_UNSUPPORTED_FEATURES(1129, AuditLogTimeInterval.DAY.getValue()), ADD_NETWORK_BY_LABEL_FAILED(1130), REMOVE_NETWORK_BY_LABEL_FAILED(1131), + LABEL_NETWORK(1132), + LABEL_NETWORK_FAILED(1133), + UNLABEL_NETWORK(1134), + UNLABEL_NETWORK_FAILED(1135), // Import/Export IMPORTEXPORT_STARTING_EXPORT_VM(1162), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/LabelNetworkParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/LabelNetworkParameters.java new file mode 100644 index 0000000..59aeb1f --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/LabelNetworkParameters.java @@ -0,0 +1,32 @@ +package org.ovirt.engine.core.common.action; + +import javax.validation.constraints.NotNull; + +import org.ovirt.engine.core.common.validation.annotation.ValidName; +import org.ovirt.engine.core.common.validation.group.CreateEntity; +import org.ovirt.engine.core.compat.Guid; + +public class LabelNetworkParameters extends UnlabelNetworkParameters { + + private static final long serialVersionUID = -6670273015570157109L; + + @NotNull + @ValidName(message = "NETWORK_LABEL_FORMAT_INVALID", groups = { CreateEntity.class }) + private String label; + + public LabelNetworkParameters() { + } + + public LabelNetworkParameters(Guid networkId, String label) { + super(networkId); + this.label = label; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UnlabelNetworkParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UnlabelNetworkParameters.java new file mode 100644 index 0000000..69cccfe --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/UnlabelNetworkParameters.java @@ -0,0 +1,24 @@ +package org.ovirt.engine.core.common.action; + +import javax.validation.constraints.NotNull; + +import org.ovirt.engine.core.compat.Guid; + +public class UnlabelNetworkParameters extends VdcActionParametersBase { + + private static final long serialVersionUID = 550272159431854471L; + + @NotNull + private Guid networkId; + + public UnlabelNetworkParameters() { + } + + public UnlabelNetworkParameters(Guid networkId) { + this.networkId = networkId; + } + + public Guid getNetworkId() { + return networkId; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java index e755a4d..79a9f38 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java @@ -93,6 +93,10 @@ UpdateVnicProfile(161, ActionGroup.CONFIGURE_NETWORK_VNIC_PROFILE, false, QuotaDependency.NONE), RemoveVnicProfile(162, ActionGroup.DELETE_NETWORK_VNIC_PROFILE, false, QuotaDependency.NONE), + // Netowrk labels + LabelNetwork(162, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE), + UnlabelNetwork(163, ActionGroup.CONFIGURE_STORAGE_POOL_NETWORK, false, QuotaDependency.NONE), + // VmTemplatesCommand AddVmTemplate(201, ActionGroup.CREATE_TEMPLATE, QuotaDependency.BOTH), UpdateVmTemplate(202, ActionGroup.EDIT_TEMPLATE_PROPERTIES, QuotaDependency.VDS_GROUP), 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 1dc5a57..6f776f7 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 @@ -431,6 +431,7 @@ NETWORK_HOST_IS_BUSY(ErrorType.CONFLICT), ACTION_TYPE_FAILED_NETWORK_NAME_IN_USE(ErrorType.CONFLICT), ACTION_TYPE_FAILED_NETWORK_IN_USE(ErrorType.CONFLICT), + ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED(ErrorType.BAD_PARAMETERS), NETWORK_NOT_EXISTS(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_NETWORK_QOS_NOT_EXISTS(ErrorType.BAD_PARAMETERS), NETWORK_NOT_EXISTS_IN_CLUSTER(ErrorType.BAD_PARAMETERS), diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java index 1c92f09..cf3a0b2 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java @@ -823,6 +823,10 @@ severities.put(AuditLogType.VNIC_PROFILE_UNSUPPORTED_FEATURES, AuditLogSeverity.WARNING); severities.put(AuditLogType.ADD_NETWORK_BY_LABEL_FAILED, AuditLogSeverity.ERROR); severities.put(AuditLogType.REMOVE_NETWORK_BY_LABEL_FAILED, AuditLogSeverity.ERROR); + severities.put(AuditLogType.LABEL_NETWORK, AuditLogSeverity.NORMAL); + severities.put(AuditLogType.LABEL_NETWORK_FAILED, AuditLogSeverity.ERROR); + severities.put(AuditLogType.UNLABEL_NETWORK, AuditLogSeverity.NORMAL); + severities.put(AuditLogType.UNLABEL_NETWORK_FAILED, AuditLogSeverity.ERROR); } private static void initExtrnalEvents() { 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 6ea7c89..97458ce 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -472,6 +472,7 @@ ACTION_TYPE_FAILED_NETWORK_QOS_NOT_EXISTS=The specified Network QoS doesn't exist. EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED=The specified external network cannot be configured on the host's interface. NETWORK_LABEL_FORMAT_INVALID=Network label must be formed only from: English letters, numbers, hyphen or underscore. +ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED=Cannot ${action} ${type}. The specified network is already labeled. ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS=Cannot recover Data Center with active Data Storage Domain in Data Center. ERROR_CANNOT_RECOVERY_STORAGE_POOL_STORAGE_TYPE_MISSMATCH=Cannot recover Data Center. Mismatch between Storage Domain type and Data Center type. ERROR_CANNOT_DETACH_LAST_STORAGE_DOMAIN=Cannot remove the master Storage Domain from the Data Center without another active Storage Domain to take its place.\n\ diff --git a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties index 46465ae..e8af3e8 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties @@ -442,6 +442,10 @@ VNIC_PROFILE_UNSUPPORTED_FEATURES=VM ${VmName} has network interface ${NicName} which is using profile ${VnicProfile} with unsupported feature(s) '${UnsupportedFeatures}' by VM cluster ${VdsGroupName} (version ${CompatibilityVersion}). ADD_NETWORK_BY_LABEL_FAILED=Network ${Network} cannot be configured in data-center ${StoragePoolName} on the following hosts: ${HostNames}. REMOVE_NETWORK_BY_LABEL_FAILED=Network ${Network} cannot be removed from the following hosts: ${HostNames} in data-center ${StoragePoolName}. +LABEL_NETWORK=Network ${NetworkName} was labeled ${Label} in data-center ${StoragePoolName}. +LABEL_NETWORK_FAILED=Failed to label network ${NetworkName} with label ${Label} in data-center ${StoragePoolName}. +UNLABEL_NETWORK=Network ${NetworkName} was unlabeled in data-center ${StoragePoolName}. +UNLABEL_NETWORK_FAILED=Failed to unlabel network ${NetworkName} in data-center ${StoragePoolName}. PROVIDER_ADDED=Provider ${ProviderName} was added. (User: ${UserName}) PROVIDER_ADDITION_FAILED=Failed to add provider ${ProviderName}. (User: ${UserName}) PROVIDER_UPDATED=Provider ${ProviderName} was updated. (User: ${UserName}) 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 09be69f..3467f7a 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 @@ -1304,9 +1304,12 @@ @DefaultStringValue("The specified external network cannot be configured on the host's interface.") String EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED(); - @DefaultStringValue("Network label must be formed only from: English letters, numbers, hyphen or underscore.") + @DefaultStringValue("Network label must be formed only from: English letters, numbers, hyphen or underscor3yye.") String NETWORK_LABEL_FORMAT_INVALID(); + @DefaultStringValue("Cannot ${action} ${type}. The specified network is already labeled.") + String ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED(); + @DefaultStringValue("Cannot recover Data Center with active Data Storage Domain in Data Center.") String ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS(); 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 eeb3cd3..7d23771 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 @@ -453,6 +453,7 @@ ACTION_TYPE_FAILED_CANNOT_FIND_VNIC_PROFILE_FOR_NETWORK=Cannot ${action} ${type}. There is no VM network interface profile for the network the user can use.\n- Please use a VM network interface profile instead of a network name. EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED=The specified external network cannot be configured on the host's interface. NETWORK_LABEL_FORMAT_INVALID=Network label must be formed only from: English letters, numbers, hyphen or underscore. +ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED=Cannot ${action} ${type}. The specified network is already labeled. ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS=Cannot recover Data Center with active Data Storage Domain in Data Center. ERROR_CANNOT_RECOVERY_STORAGE_POOL_STORAGE_TYPE_MISSMATCH=Cannot recover Data Center. Mismatch between Storage Domain type and Data Center type. ERROR_CANNOT_DETACH_LAST_STORAGE_DOMAIN=Cannot remove the master Storage Domain from the Data Center without another active Storage Domain to take its place.\n\ 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 181525c..06033b8 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 @@ -476,6 +476,7 @@ ACTION_TYPE_FAILED_NETWORK_QOS_NOT_EXISTS=The specified Network QoS doesn't exist. EXTERNAL_NETWORK_CANNOT_BE_PROVISIONED=The specified external network cannot be configured on the host's interface. NETWORK_LABEL_FORMAT_INVALID=Network label must be formed only from: English letters, numbers, hyphen or underscore. +ACTION_TYPE_FAILED_NETWORK_ALREADY_LABELED=Cannot ${action} ${type}. The specified network is already labeled. ERROR_CANNOT_RECOVERY_STORAGE_POOL_THERE_IS_ACTIVE_DATA_DOMAINS=Cannot recover Data Center with active Data Storage Domain in Data Center. ERROR_CANNOT_RECOVERY_STORAGE_POOL_STORAGE_TYPE_MISSMATCH=Cannot recover Data Center. Mismatch between Storage Domain type and Data Center type. ERROR_CANNOT_DETACH_LAST_STORAGE_DOMAIN=Cannot remove the master Storage Domain from the Data Center without another active Storage Domain to take its place.\n\ -- To view, visit http://gerrit.ovirt.org/22801 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2064d24f0d357ca8d477266e4a9e18939bf21ad0 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
