Mike Kolesnik has uploaded a new change for review. Change subject: engine: Add validations to provider commands ......................................................................
engine: Add validations to provider commands Added validations to the Add/Update/Remove commands for providers. Change-Id: I09d2b74718f8d04e5f28fd622658ff11636ee74e Signed-off-by: Mike Kolesnik <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/AddProviderCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderValidator.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/RemoveProviderCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/UpdateProviderCommand.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/provider/ProviderValidatorTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/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 11 files changed, 205 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/12362/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/AddProviderCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/AddProviderCommand.java index f3d6862..50a0d5f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/AddProviderCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/AddProviderCommand.java @@ -8,7 +8,10 @@ import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.ProviderParameters; import org.ovirt.engine.core.common.businessentities.ActionGroup; +import org.ovirt.engine.core.common.businessentities.Provider; +import org.ovirt.engine.core.common.validation.group.CreateEntity; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.VdcBllMessages; @SuppressWarnings("serial") public class AddProviderCommand<P extends ProviderParameters> extends CommandBase<P> { @@ -21,11 +24,21 @@ super(parameters); } + private Provider getProvider() { + return getParameters().getProvider(); + } + + @Override + protected boolean canDoAction() { + ProviderValidator validator = new ProviderValidator(getProvider()); + return validate(validator.nameAvailable()); + } + @Override protected void executeCommand() { - getParameters().getProvider().setId(Guid.NewGuid()); - getDbFacade().getNetworkProviderDao().save(getParameters().getProvider()); - getReturnValue().setActionReturnValue(getParameters().getProvider().getId()); + getProvider().setId(Guid.NewGuid()); + getDbFacade().getNetworkProviderDao().save(getProvider()); + getReturnValue().setActionReturnValue(getProvider().getId()); setSucceeded(true); } @@ -36,4 +49,15 @@ ActionGroup.CREATE_STORAGE_POOL)); } + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__ADD); + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__PROVIDER); + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(CreateEntity.class); + return super.getValidationGroups(); + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderValidator.java new file mode 100644 index 0000000..fbf8892 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderValidator.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.core.bll.provider; + +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.Provider; +import org.ovirt.engine.core.dal.VdcBllMessages; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dao.network.NetworkProviderDao; + +public class ProviderValidator { + + private Provider provider; + + public ProviderValidator(Provider provider) { + this.provider = provider; + } + + protected NetworkProviderDao getNetworkProviderDao() { + return DbFacade.getInstance().getNetworkProviderDao(); + } + + public ValidationResult nameAvailable() { + return getNetworkProviderDao().getByName(provider.getName()) == null + ? ValidationResult.VALID + : new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_NAME_ALREADY_USED); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/RemoveProviderCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/RemoveProviderCommand.java index b09f745..d62504c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/RemoveProviderCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/RemoveProviderCommand.java @@ -8,7 +8,9 @@ import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.ProviderParameters; import org.ovirt.engine.core.common.businessentities.ActionGroup; +import org.ovirt.engine.core.common.validation.group.RemoveEntity; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.VdcBllMessages; @SuppressWarnings("serial") public class RemoveProviderCommand<P extends ProviderParameters> extends CommandBase<P> { @@ -33,4 +35,16 @@ VdcObjectType.System, ActionGroup.CREATE_STORAGE_POOL)); } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE); + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__PROVIDER); + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(RemoveEntity.class); + return super.getValidationGroups(); + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/UpdateProviderCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/UpdateProviderCommand.java index 04f801c..43b040a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/UpdateProviderCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/UpdateProviderCommand.java @@ -8,7 +8,10 @@ import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.ProviderParameters; import org.ovirt.engine.core.common.businessentities.ActionGroup; +import org.ovirt.engine.core.common.businessentities.Provider; +import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.VdcBllMessages; @SuppressWarnings("serial") public class UpdateProviderCommand<P extends ProviderParameters> extends CommandBase<P> { @@ -21,9 +24,24 @@ super(parameters); } + private Provider getProvider() { + return getParameters().getProvider(); + } + + @Override + protected boolean canDoAction() { + ProviderValidator validator = new ProviderValidator(getProvider()); + Provider oldProvider = getDbFacade().getNetworkProviderDao().get(getProvider().getId()); + return nameKept(oldProvider) || validate(validator.nameAvailable()); + } + + private boolean nameKept(Provider oldProvider) { + return oldProvider.getName().equals(getProvider().getName()); + } + @Override protected void executeCommand() { - getDbFacade().getNetworkProviderDao().update(getParameters().getProvider()); + getDbFacade().getNetworkProviderDao().update(getProvider()); setSucceeded(true); } @@ -33,4 +51,16 @@ VdcObjectType.System, ActionGroup.CREATE_STORAGE_POOL)); } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__PROVIDER); + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(UpdateEntity.class); + return super.getValidationGroups(); + } } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/provider/ProviderValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/provider/ProviderValidatorTest.java new file mode 100644 index 0000000..5654ee3 --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/provider/ProviderValidatorTest.java @@ -0,0 +1,59 @@ +package org.ovirt.engine.core.bll.provider; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.runners.MockitoJUnitRunner; +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.Provider; +import org.ovirt.engine.core.dal.VdcBllMessages; +import org.ovirt.engine.core.dao.network.NetworkProviderDao; + +@RunWith(MockitoJUnitRunner.class) +public class ProviderValidatorTest { + + private Provider provider = createProvider("provider"); + + @Mock + private NetworkProviderDao networkProviderDao; + + @Spy + private ProviderValidator validator = new ProviderValidator(provider); + + @Before + public void setup() { + doReturn(networkProviderDao).when(validator).getNetworkProviderDao(); + } + + @Test + public void nameAvailable() throws Exception { + when(networkProviderDao.getByName(provider.getName())).thenReturn(null); + assertEquals(ValidationResult.VALID, validator.nameAvailable()); + } + + @Test + public void nameAvailableCaseSensitive() throws Exception { + when(networkProviderDao.getByName(provider.getName())).thenReturn(null); + assertEquals(ValidationResult.VALID, validator.nameAvailable()); + } + + @Test + public void nameNotAvailable() throws Exception { + Provider otherProvider = createProvider(provider.getName()); + when(networkProviderDao.getByName(provider.getName())).thenReturn(otherProvider); + assertEquals(VdcBllMessages.ACTION_TYPE_FAILED_NAME_ALREADY_USED, validator.nameAvailable().getMessage()); + } + + private Provider createProvider(String name) { + Provider p = mock(Provider.class); + when(p.getName()).thenReturn(name); + return p; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java index bacea0b..a34b837 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Provider.java @@ -1,17 +1,27 @@ package org.ovirt.engine.core.common.businessentities; +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.common.validation.group.RemoveEntity; +import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.compat.Guid; public class Provider extends IVdcQueryable implements BusinessEntity<Guid> { private static final long serialVersionUID = 8279455368568715758L; + @NotNull(message = "VALIDATION_ID_NULL", groups = { UpdateEntity.class, RemoveEntity.class }) private Guid id; + @NotNull(message = "VALIDATION_NAME_NULL", groups = { CreateEntity.class, UpdateEntity.class }) + @ValidName(message = "VALIDATION_NAME_INVALID", groups = { CreateEntity.class, UpdateEntity.class }) private String name; private String description; + @NotNull(message = "VALIDATION_URL_NULL", groups = { CreateEntity.class, UpdateEntity.class }) private String apiAddress; public String getName() { diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java index a300786..319eff9 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java @@ -20,6 +20,7 @@ VAR__TYPE__INTERFACE, VAR__TYPE__NETWORK, VAR__TYPE__NETWORKS, + VAR__TYPE__PROVIDER, VAR__TYPE__VM_DISK, VAR__TYPE__BOOKMARK, VAR__TYPE__VM_TICKET, @@ -77,6 +78,7 @@ ACTION_LIST_CANNOT_BE_EMPTY, ACTION_TYPE_FAILED_NAME_ALREADY_USED, + ACTION_TYPE_FAILED_URL_INVALID, ACTION_TYPE_FAILED_VM_MAX_RESOURCE_EXEEDED, ACTION_TYPE_FAILED_VM_IN_PREVIEW, ACTION_TYPE_FAILED_DISKS_LOCKED, 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 b8343cd..53bcaac 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -210,6 +210,7 @@ VAR__ENTITIES__HOSTS=$entities hosts VAR__TYPE__NETWORK=$type Network VAR__TYPE__NETWORKS=$type Networks +VAR__TYPE__PROVIDER=$type provider VAR__TYPE__VM=$type VM VAR__ENTITIES__VMS=$entities virtual machines VAR__TYPE__QUOTA=$type Quota @@ -341,6 +342,7 @@ VDS_GROUP_CANNOT_DO_ACTION_NAME_IN_USE=Cannot ${action} Cluster. Cluster name is already in use. NETWORK_NAME_ALREADY_EXISTS=Cannot ${action} ${type}. Network name already exists. ACTION_TYPE_FAILED_NAME_ALREADY_USED=Cannot ${action} ${type}. The ${type} name is already in use. please choose a unique name and try again. +ACTION_TYPE_FAILED_URL_INVALID=Cannot ${action} ${type}. The URL is not valid, please enter a valid URL and try again. ACTION_TYPE_FAILED_STORAGE_CONNECTION_NOT_EXIST=Cannot ${action} ${type}. Storage connection doesn't exist. ACTION_TYPE_FAILED_STORAGE_CONNECTION_WRONG_PARAMETERS_FOR_STORAGE_TYPE=Cannot ${action} ${type}. Connection parameters are invalid for this storage type. ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST=Cannot ${action} ${type}. Storage Domain doesn't exist. @@ -606,6 +608,10 @@ VALIDATION_DISK_IMAGE_DESCRIPTION_MAX=Snapshot description must not exceed 4000 characters VALIDATION.DATA_CENTER.DESCRIPTION.INVALID="Data Center description must be formed of ASCII charis only" VALIDATION.DATA_CENTER.NAME.INVALID=Data Center name must be formed of alphanumeric characters, numbers or "-_" +VALIDATION_ID_NULL=ID is required. +VALIDATION_NAME_NULL=Name is required. +VALIDATION_NAME_INVALID=Name must be formed of alphanumeric characters, numbers or "-_". +VALIDATION_URL_NULL=URL is required. VALIDATION.VMINTERFACE.MACADDRESS=MAC Address must be in the following format: XX:XX:XX:XX:XX:XX, (XX=0-9 or A-F) VALIDATION.EVENTS.EMAIL_FORMAT=email format is not valid VALIDATION_INVALID_CORRELATION_ID=The correlation ID must be formed of "a-z0-9A-Z" or "-_" 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 42b5178..56ac45c 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 @@ -564,6 +564,9 @@ @DefaultStringValue("$type Network") String VAR__TYPE__NETWORK(); + @DefaultStringValue("$type provider") + String VAR__TYPE__PROVIDER(); + @DefaultStringValue("$type VM") String VAR__TYPE__VM(); @@ -959,6 +962,9 @@ @DefaultStringValue("Cannot ${action} ${type}. The ${type} name is already in use. please choose a unique name and try again.") String ACTION_TYPE_FAILED_NAME_ALREADY_USED(); + + @DefaultStringValue("Cannot ${action} ${type}. The URL is not valid, please enter a valid URL and try again.") + String ACTION_TYPE_FAILED_URL_INVALID(); @DefaultStringValue("Cannot ${action} ${type}. Storage connection doesn't exist.") String ACTION_TYPE_FAILED_STORAGE_CONNECTION_NOT_EXIST(); @@ -1635,6 +1641,18 @@ @DefaultStringValue("Data Center name must be formed of \"a-z0-9A-Z\" or \"-_\"") String VALIDATION_DATA_CENTER_NAME_INVALID(); + @DefaultStringValue("ID is required.") + String VALIDATION_ID_NULL(); + + @DefaultStringValue("Name is required.") + String VALIDATION_NAME_NULL(); + + @DefaultStringValue("Name must be formed of alphanumeric characters, numbers or \"-_\".") + String VALIDATION_NAME_INVALID(); + + @DefaultStringValue("URL is required.") + String VALIDATION_URL_NULL(); + @DefaultStringValue("Quota name must be formed of \"a-z0-9A-Z\" and \"-_\"") String VALIDATION_QUOTA_NAME_INVALID(); 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 2ce7a33..fec4211 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 @@ -209,6 +209,7 @@ VAR__ENTITIES__HOSTS=$entities hosts VAR__TYPE__NETWORK=$type Network VAR__TYPE__NETWORKS=$type Networks +VAR__TYPE__PROVIDER=$type provider VAR__TYPE__VM=$type VM VAR__ENTITIES__VMS=$entities virtual machines VAR__TYPE__QUOTA=$type Quota @@ -337,6 +338,7 @@ VDS_GROUP_CANNOT_DO_ACTION_NAME_IN_USE=Cannot ${action} Cluster. Cluster name is already in use. NETWORK_NAME_ALREADY_EXISTS=Cannot ${action} ${type}. Network name already exists. ACTION_TYPE_FAILED_NAME_ALREADY_USED=Cannot ${action} ${type}. The ${type} name is already in use. please choose a unique name and try again. +ACTION_TYPE_FAILED_URL_INVALID=Cannot ${action} ${type}. The URL is not valid, please enter a valid URL and try again. ACTION_TYPE_FAILED_STORAGE_CONNECTION_NOT_EXIST=Cannot ${action} ${type}. Storage connection doesn't exist. ACTION_TYPE_FAILED_STORAGE_CONNECTION_WRONG_PARAMETERS_FOR_STORAGE_TYPE=Cannot ${action} ${type}. Connection parameters are invalid for this storage type. ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST=Cannot ${action} ${type}. Storage Domain doesn't exist. @@ -603,6 +605,10 @@ VALIDATION_DISK_IMAGE_DESCRIPTION_MAX=Snapshot description must not exceed 4000 characters VALIDATION_DATA_CENTER_DESCRIPTION_INVALID="Data Center description must be formed of ASCII charis only" VALIDATION_DATA_CENTER_NAME_INVALID=Data Center name must be formed of "a-z0-9A-Z" or "-_" +VALIDATION_ID_NULL=ID is required. +VALIDATION_NAME_NULL=Name is required. +VALIDATION_NAME_INVALID=Name must be formed of alphanumeric characters, numbers or "-_". +VALIDATION_URL_NULL=URL is required. VALIDATION_VMINTERFACE_MACADDRESS=MAC Address must be in the following format: XX:XX:XX:XX:XX:XX, (XX=0-9 or A-F) VALIDATION_EVENTS_EMAIL_FORMAT=email format is not valid VALIDATION_INVALID_CORRELATION_ID=The correlation ID must be formed of "a-z0-9A-Z" or "-_" 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 88cba16..fc91bff 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 @@ -207,6 +207,7 @@ VAR__ENTITIES__HOSTS=$entities hosts VAR__TYPE__NETWORK=$type Network VAR__TYPE__NETWORKS=$type Networks +VAR__TYPE__PROVIDER=$type provider VAR__TYPE__VM=$type VM VAR__ENTITIES__VMS=$entities virtual machines VAR__TYPE__QUOTA=$type Quota @@ -335,6 +336,7 @@ VDS_GROUP_CANNOT_DO_ACTION_NAME_IN_USE=Cannot ${action} Cluster. Cluster name is already in use. NETWORK_NAME_ALREADY_EXISTS=Cannot ${action} ${type}. Network name already exists. ACTION_TYPE_FAILED_NAME_ALREADY_USED=Cannot ${action} ${type}. The ${type} name is already in use. please choose a unique name and try again. +ACTION_TYPE_FAILED_URL_INVALID=Cannot ${action} ${type}. The URL is not valid, please enter a valid URL and try again. ACTION_TYPE_FAILED_STORAGE_CONNECTION_NOT_EXIST=Cannot ${action} ${type}. Storage connection doesn't exist. ACTION_TYPE_FAILED_STORAGE_CONNECTION_WRONG_PARAMETERS_FOR_STORAGE_TYPE=Cannot ${action} ${type}. Connection parameters are invalid for this storage type. ACTION_TYPE_FAILED_STORAGE_DOMAIN_NOT_EXIST=Cannot ${action} ${type}. Storage Domain doesn't exist. @@ -602,6 +604,10 @@ VALIDATION.STORAGE_DOMAIN.DESCRIPTION.MAX=Storage Domain description must not exceed 4000 characters VALIDATION_DATA_CENTER_DESCRIPTION_INVALID="Data Center description must be formed of ASCII charis only" VALIDATION_DATA_CENTER_NAME_INVALID=Data Center name must be formed of "a-z0-9A-Z" or "-_" +VALIDATION_ID_NULL=ID is required. +VALIDATION_NAME_NULL=Name is required. +VALIDATION_NAME_INVALID=Name must be formed of alphanumeric characters, numbers or "-_". +VALIDATION_URL_NULL=URL is required. VALIDATION_QUOTA_NAME_INVALID=Quota name must be formed of "a-z0-9A-Z" and "-_" VALIDATION_VM_NETWORK_MAC_ADDRESS_INVALID=MAC address must be in format "HH:HH:HH:HH:HH:HH" where H is a hexadecimal character (either a digit or A-F, case is insignificant). VALIDATION_VM_NETWORK_MAC_ADDRESS_NOT_NULL=MAC address is required. -- To view, visit http://gerrit.ovirt.org/12362 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I09d2b74718f8d04e5f28fd622658ff11636ee74e Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Mike Kolesnik <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
