Moti Asayag has uploaded a new change for review.

Change subject: engine: Block multicast MAC addresses for vNICs
......................................................................

engine: Block multicast MAC addresses for vNICs

The patch blocks the possibility to provide a non-
unicast mac address to the vnic: neither broadcast
or multicast mac addresses aren't allowed for a vnic.

Change-Id: Ida4082be249391494053b56540d5458fecec65da
Bug-Url: https://bugzilla.redhat.com/1011912
Signed-off-by: Moti Asayag <masa...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AbstractVmInterfaceCommand.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/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ValidationUtils.java
M 
backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterfaceValidationTest.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/MacAddressPoolRangesValueHelper.java
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/MacAddressValidation.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, 45 insertions(+), 43 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/91/19891/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
index d95c7ec..7f3b220 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java
@@ -52,7 +52,7 @@
     private List<DiskImage> _templateDisks;
     private StorageDomain sourceDomain;
     private Guid sourceDomainId = Guid.Empty;
-    private final static Pattern VALIDATE_MAC_ADDRESS = 
Pattern.compile(VmNic.VALID_MAC_ADDRESS_FORMAT);
+    private final static Pattern VALIDATE_MAC_ADDRESS = 
Pattern.compile(VmNic.UNICAST_MAC_ADDRESS_FORMAT);
 
     /**
      * Constructor for command creation when compensation is applied on startup
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java
index eeb1f9d..0fe6229 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java
@@ -24,6 +24,7 @@
 
 public class MacPoolManager {
 
+    private static final String MAC_ADDRESS_MULTICAST_LSB = "13579bBdDfF";
     private static final int HEX_RADIX = 16;
     private static final String INIT_ERROR_MSG = "{0}: Error in initializing 
MAC Addresses pool manager.";
     private static final MacPoolManager INSTANCE = new MacPoolManager();
@@ -150,13 +151,12 @@
             } else if (value.length() < 12) {
                 value = StringUtils.leftPad(value, 12, '0');
             }
-            StringBuilder builder = new StringBuilder();
-            for (int j = 0; j < value.length(); j += 2) {
-                builder.append(value.substring(j, j + 2));
-                builder.append(":");
+
+            value = createMacAddress(value);
+            if (value == null) {
+                break;
             }
-            value = builder.toString();
-            value = value.substring(0, value.length() - 1);
+
             if (!availableMacs.contains(value)) {
                 availableMacs.add(value);
             }
@@ -167,6 +167,26 @@
         return true;
     }
 
+    private String createMacAddress(String value) {
+        StringBuilder builder = new StringBuilder();
+
+        for (int j = 0; j < value.length(); j += 2) {
+            String group = value.substring(j, j + 2);
+
+            // skip multi-cast MAC Addresses
+            if (j == 0 && StringUtils.contains(MAC_ADDRESS_MULTICAST_LSB, 
group.charAt(1))) {
+                return null;
+            }
+
+            builder.append(group);
+            if (j + 2 < value.length()) {
+                builder.append(":");
+            }
+        }
+
+        return builder.toString();
+    }
+
     public String allocateNewMac() {
         String mac = null;
         lockObj.writeLock().lock();
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AbstractVmInterfaceCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AbstractVmInterfaceCommand.java
index 4fa2b7c..6b07345 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AbstractVmInterfaceCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/AbstractVmInterfaceCommand.java
@@ -1,7 +1,6 @@
 package org.ovirt.engine.core.bll.network.vm;
 
 import java.util.List;
-import java.util.regex.Pattern;
 
 import org.ovirt.engine.core.bll.ValidationResult;
 import org.ovirt.engine.core.bll.VmCommand;
@@ -23,7 +22,6 @@
 import org.ovirt.engine.core.common.errors.VdcBLLException;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
 import org.ovirt.engine.core.common.errors.VdcBllMessages;
-import org.ovirt.engine.core.common.utils.ValidationUtils;
 
 public abstract class AbstractVmInterfaceCommand<T extends 
AddVmInterfaceParameters> extends VmCommand<T> {
 
@@ -74,12 +72,6 @@
         Boolean allowDupMacs = Config.<Boolean> 
GetValue(ConfigValues.AllowDuplicateMacAddresses);
         return MacPoolManager.getInstance().isMacInUse(getMacAddress()) && 
!allowDupMacs
                 ? new 
ValidationResult(VdcBllMessages.NETWORK_MAC_ADDRESS_IN_USE)
-                : ValidationResult.VALID;
-    }
-
-    protected ValidationResult macAddressValid() {
-        return Pattern.matches(ValidationUtils.INVALID_NULLABLE_MAC_ADDRESS, 
getMacAddress())
-                ? new 
ValidationResult(VdcBllMessages.NETWORK_INVALID_MAC_ADDRESS)
                 : ValidationResult.VALID;
     }
 
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 9dc3eb4..8f5b89d 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
@@ -136,10 +136,8 @@
             return false;
         }
 
-        if (StringUtils.isNotEmpty(getMacAddress())) {
-            if (!validate(macAddressValid()) || !validate(macAvailable())) {
-                return false;
-            }
+        if (StringUtils.isNotEmpty(getMacAddress()) && 
!validate(macAvailable())) {
+            return false;
         } else if (MacPoolManager.getInstance().getAvailableMacsCount() <= 0) {
             
addCanDoActionMessage(VdcBllMessages.MAC_POOL_NOT_ENOUGH_MAC_ADDRESSES);
             return false;
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 c1d432d..b8a54ab 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
@@ -211,7 +211,7 @@
         }
 
         macShouldBeChanged = !StringUtils.equals(oldIface.getMacAddress(), 
getMacAddress());
-        if (macShouldBeChanged && (!validate(macAddressValid()) || 
!validate(macAvailable()))) {
+        if (macShouldBeChanged && !validate(macAvailable())) {
             return false;
         }
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
index 844b44f..b3b50d3 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/VmNic.java
@@ -14,7 +14,8 @@
  * <code>VmNic</code> defines a type of {@link NetworkInterface} for instances 
of {@link VM}.
  */
 public class VmNic extends NetworkInterface<VmNetworkStatistics> {
-    public static final String VALID_MAC_ADDRESS_FORMAT = 
"(\\p{XDigit}{2}:){5}\\p{XDigit}{2}";
+    public static final String UNICAST_MAC_ADDRESS_FORMAT = 
"\\p{XDigit}[02468aAcCeE](:\\p{XDigit}{2}){5}";
+    public static final String NON_NULLABLE_MAC_ADDRESS_FORMAT = 
"^.*(?<!(00:){5}00)$";
 
     private static final long serialVersionUID = 7428150502868988886L;
 
@@ -73,12 +74,15 @@
 
     @NotNull(message = VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_NOT_NULL, groups = 
{ UpdateVmNic.class })
     @Pattern.List({
-            @Pattern(regexp = "(^$)|(" + VALID_MAC_ADDRESS_FORMAT + ")",
-                    message = VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
+            @Pattern(regexp = "(^$)|(" + UNICAST_MAC_ADDRESS_FORMAT + ")",
+                    message = VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
                     groups = { CreateEntity.class }),
-            @Pattern(regexp = VALID_MAC_ADDRESS_FORMAT,
-                    message = VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
-                    groups = { UpdateEntity.class })
+            @Pattern(regexp = UNICAST_MAC_ADDRESS_FORMAT,
+                    message = VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
+                    groups = { UpdateEntity.class }),
+            @Pattern(regexp = NON_NULLABLE_MAC_ADDRESS_FORMAT,
+                    message = VALIDATION_MESSAGE_MAC_ADDRESS_INVALID,
+                    groups = { CreateEntity.class, UpdateEntity.class })
     })
     @Override
     public String getMacAddress() {
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 0559f6a..09a0092 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
@@ -415,7 +415,6 @@
     NETWORK_VLAN_IN_USE(ErrorType.CONFLICT),
     NETWORK_ADDR_MANDATORY_IN_STATIC_IP(ErrorType.BAD_PARAMETERS),
     NETWORK_MAC_ADDRESS_IN_USE(ErrorType.CONFLICT),
-    NETWORK_INVALID_MAC_ADDRESS(ErrorType.BAD_PARAMETERS),
     NETWORK_INTERFACE_NAME_ALREADY_IN_USE(ErrorType.CONFLICT),
     NETWORK_INTERFACE_IN_USE_BY_VLAN(ErrorType.CONFLICT),
     NETWORK_ALREADY_ATTACHED_TO_INTERFACE(ErrorType.CONFLICT),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ValidationUtils.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ValidationUtils.java
index e4522c4..cfe3eab 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ValidationUtils.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/ValidationUtils.java
@@ -24,8 +24,7 @@
     public static final String NO_TRIMMING_WHITE_SPACES_PATTERN = 
"^$|\\S.*\\S";
     public static final String IP_PATTERN =
             
"^\\b((25[0-5]|2[0-4]\\d|[01]\\d\\d|\\d?\\d)\\.){3}(25[0-5]|2[0-4]\\d|[01]\\d\\d|\\d?\\d)\\b$|^$";
-    /** Invalid mac address (for now just checking 00:00:00:00:00:00 */
-    public static final String INVALID_NULLABLE_MAC_ADDRESS = "^(00:){5}00$";
+
     /** the mask will be replaced with zero-padded number in the generated 
names of the VMs in the pool,
      * see NameForVmInPoolGeneratorTest PoolNameValidationTest for valid and 
invalid expressions of this pattern */
     public static final String POOL_NAME_PATTERN = "^[\\p{L}0-9._-]+[" + 
VmPool.MASK_CHARACTER + "]*[\\p{L}0-9._-]*$|^[\\p{L}0-9._-]*[" + 
VmPool.MASK_CHARACTER + "]*[\\p{L}0-9._-]+$";
diff --git 
a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterfaceValidationTest.java
 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterfaceValidationTest.java
index 7c66eaa..ba2caad 100644
--- 
a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterfaceValidationTest.java
+++ 
b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/businessentities/network/VmNetworkInterfaceValidationTest.java
@@ -23,7 +23,7 @@
 
     private static final String VALID_NIC_NAME = "nic";
 
-    private static final String VALID_MAC_ADDRESS = "01:23:45:67:89:ab";
+    private static final String VALID_MAC_ADDRESS = "00:23:45:67:89:ab";
 
     private static final Random random = new Random();
 
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 7dd6b18..ea1dbb5 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -489,8 +489,6 @@
 ERROR_CANNOT_ADD_EXISTING_STORAGE_DOMAIN_CONNECTION_DATA_ILLEGAL=Cannot import 
Storage Domain. Internal Error: The connection data is illegal.
 ERROR_CANNOT_ADD_DEPRECATED_EXISTING_SAN_EXPORT_STORAGE_DOMAIN=Cannot import 
SAN Export Storage Domain as it is no longer supported.
 NETWORK_MAC_ADDRESS_IN_USE=MAC Address is already in use.
-NETWORK_INVALID_MAC_ADDRESS=The specified MAC Address cannot be set.\n\
-       -Please check MAC Address validity.
 NETWORK_INTERFACE_IN_USE_BY_VM=Cannot ${action} ${type}. There is at least one 
running VM that uses this Network.
 NETWORK_CLUSTER_NETWORK_IN_USE=Cannot ${action} ${type}. Network is being used 
by at least one Cluster.
 ERROR_CANNOT_DEACTIVATE_MASTER_WITH_NON_DATA_DOMAINS=Cannot deactivate a 
Master Storage Domain while there are ISO/Export active domains in the Data 
Center.\n\
diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/MacAddressPoolRangesValueHelper.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/MacAddressPoolRangesValueHelper.java
index 5a433dd..077dfd4 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/MacAddressPoolRangesValueHelper.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/MacAddressPoolRangesValueHelper.java
@@ -3,7 +3,6 @@
 import java.util.regex.Pattern;
 
 import org.apache.commons.lang.StringUtils;
-import org.ovirt.engine.core.common.businessentities.network.VmNic;
 import org.ovirt.engine.core.config.entity.ConfigKey;
 
 /**
@@ -16,7 +15,8 @@
  */
 public class MacAddressPoolRangesValueHelper extends StringValueHelper {
 
-    private static Pattern MAC_ADDRESS_PATTERN = 
Pattern.compile(VmNic.VALID_MAC_ADDRESS_FORMAT);
+    private static final String VALID_MAC_ADDRESS_FORMAT = 
"(\\p{XDigit}{2}:){5}\\p{XDigit}{2}";
+    private static final Pattern MAC_ADDRESS_PATTERN = 
Pattern.compile(VALID_MAC_ADDRESS_FORMAT);
 
     @Override
     public ValidationResult validate(ConfigKey key, String value) {
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 732a8ad..2475c86 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
@@ -1336,9 +1336,6 @@
     @DefaultStringValue("MAC Address is already in use.")
     String NETWORK_MAC_ADDRESS_IN_USE();
 
-    @DefaultStringValue("The specified MAC Address cannot be set.\n-Please 
check MAC Address validity.")
-    String NETWORK_INVALID_MAC_ADDRESS();
-
     @DefaultStringValue("Cannot ${action} ${type}. There is at least one 
running VM that uses this Network.")
     String NETWORK_INTERFACE_IN_USE_BY_VM();
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/MacAddressValidation.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/MacAddressValidation.java
index c3e5cda..53d1b39 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/MacAddressValidation.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/MacAddressValidation.java
@@ -2,12 +2,11 @@
 
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 
-@SuppressWarnings("unused")
 public class MacAddressValidation extends RegexValidation
 {
     public MacAddressValidation()
     {
-        setExpression("^([\\dabcdefABCDEF]{2}:?){6}$"); //$NON-NLS-1$
+        setExpression("^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$"); 
//$NON-NLS-1$
         
setMessage(ConstantsManager.getInstance().getConstants().invalidMacAddressMsg());
     }
 }
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 167e1b3..ed7926a 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
@@ -475,8 +475,6 @@
 ERROR_CANNOT_ADD_DEPRECATED_EXISTING_SAN_EXPORT_STORAGE_DOMAIN=Cannot import 
SAN Export Storage Domain as it is no longer supported.
 ERROR_CANNOT_ADD_EXISTING_STORAGE_DOMAIN_LUNS_PROBLEM=Cannot import Storage 
Domain. Not all LUNs connected to Storage Domain.
 NETWORK_MAC_ADDRESS_IN_USE=MAC Address is already in use.
-NETWORK_INVALID_MAC_ADDRESS=The specified MAC Address cannot be set.\n\
-       -Please check MAC Address validity.
 NETWORK_INTERFACE_IN_USE_BY_VM=Cannot ${action} ${type}. There is at least one 
running VM that uses this Network.
 NETWORK_CLUSTER_NETWORK_IN_USE=Cannot ${action} ${type}. Network is being used 
by at least one Cluster.
 ERROR_CANNOT_DEACTIVATE_MASTER_WITH_NON_DATA_DOMAINS=Cannot deactivate a 
Master Storage Domain while there are ISO/Export active domains in the Data 
Center.\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 22c38a0..9944185 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
@@ -493,8 +493,6 @@
 ERROR_CANNOT_ADD_EXISTING_STORAGE_DOMAIN_CONNECTION_DATA_ILLEGAL=Cannot import 
Storage Domain. Internal Error: The connection data is illegal.
 ERROR_CANNOT_ADD_DEPRECATED_EXISTING_SAN_EXPORT_STORAGE_DOMAIN=Cannot import 
SAN Export Storage Domain as it is no longer supported.
 NETWORK_MAC_ADDRESS_IN_USE=MAC Address is already in use.
-NETWORK_INVALID_MAC_ADDRESS=The specified MAC Address cannot be set.\n\
-       -Please check MAC Address validity.
 NETWORK_INTERFACE_IN_USE_BY_VM=Cannot ${action} ${type}. There is at least one 
running VM that uses this Network.
 NETWORK_CLUSTER_NETWORK_IN_USE=Cannot ${action} ${type}. Network is being used 
by at least one Cluster.
 ERROR_CANNOT_DEACTIVATE_MASTER_WITH_NON_DATA_DOMAINS=Cannot deactivate a 
Master Storage Domain while there are ISO/Export active domains in the Data 
Center.\n\


-- 
To view, visit http://gerrit.ovirt.org/19891
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ida4082be249391494053b56540d5458fecec65da
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Moti Asayag <masa...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to