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

Reply via email to