Arik Hadas has uploaded a new change for review. Change subject: webadmin: patterned pool names support ......................................................................
webadmin: patterned pool names support This patch contains the frontend part of patterned pool names support. the user can specify inside a pool name a mask for the indexes that are included in the generated names of the VMs in the pool. that way, the user can determine a fixed-length to the generated VM names. The mask is a sequence of question-marks. the mask will be replaced with a zero-padded number in the length of the mask corredponding to the index of the VM in the pool, in the generate VM names. for example, for the patterned pool name 'my???pool', the generated names of the VMs will be: my01pool, my02pool, ... , my999pool (it's the user's responsibility not to set too many VMs in pool). Change-Id: I7d0a5c6c06150493c2359686c3958bf92b3f69f7 Bug-Url: https://bugzilla.redhat.com/892260 Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPool.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/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidation.java A frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidationTest.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.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 14 files changed, 169 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/85/11985/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPool.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPool.java index dbd97b3..5165e6d 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPool.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPool.java @@ -49,6 +49,8 @@ private int vmPoolRunningCount = 1; + public static final char MASK_CHARACTER = '?'; + public VmPool() { } 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 5553f04..a3d25ec 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 @@ -179,6 +179,7 @@ ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS, ACTION_TYPE_FAILED_LINUX_BOOT_PARAMS_MAY_NOT_CONTAIN_TRIMMING_WHITESPACES, ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS_OR_DASH, + ACTION_TYPE_FAILED_INVALID_POOL_NAME, ACTION_TYPE_FAILED_INVALID_VDS_HOSTNAME, ACTION_TYPE_FAILED_HOSNAME_CANNOT_CHANGE, ACTION_TYPE_FAILED_HOST_NOT_EXIST, 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 270f548..2471b05 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -639,6 +639,7 @@ ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS=Can not ${action} ${type}. The given name contains special characters. Only lower-case and upper-case letters, numbers, '_', '-', '.' are allowed. ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS_OR_DASH=Can not ${action} ${type}. The given name contains special characters. Only lower-case and upper-case letters, numbers, '_', allowed. ACTION_TYPE_FAILED_INVALID_VDS_HOSTNAME=Can not ${action} ${type}. The given Host name is invalid. Only Host names corresponding to RFC-952 and RFC-1123 are allowed. +ACTION_TYPE_FAILED_INVALID_POOL_NAME=Can not ${action} ${type}. The given name is invalid for pool name. Only lower-case and upper-case letters, numbers, '_', '-', '.', and one mask sequence are allowed. VM_CANNOT_RUN_ONCE_WITH_ILLEGAL_SYSPREP_PARAM=Missing UserName or Password. ACTION_TYPE_FAILED_CANNOT_REMOVE_BUILTIN_GROUP_EVERYONE=Cannot remove the built-in group "Everyone". ACTION_TYPE_FAILED_IMPORT_DATA_DOMAIN_PROHIBITED=Importing data domain is prohibited. 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 6657b57..01448a6 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 @@ -546,6 +546,9 @@ @DefaultStringValue("Cannot ${action} ${type}. The selected Storage Domain does not contain the VM Template.") String ACTION_TYPE_FAILED_TEMPLATE_NOT_FOUND_ON_DESTINATION_DOMAIN(); + @DefaultStringValue("Can not ${action} ${type}. The given name is invalid for pool name. Only lower-case and upper-case letters, numbers, '_', '-', '.', and one mask sequence are allowed.") + String ACTION_TYPE_FAILED_INVALID_POOL_NAME(); + @DefaultStringValue("Cannot ${action} ${type}. There is no active Host in the Data Center.") String ACTION_TYPE_FAILED_NO_VDS_IN_POOL(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java index d9fe36b..b0d7bf9 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java @@ -1,5 +1,7 @@ package org.ovirt.engine.ui.common; +import org.ovirt.engine.core.common.businessentities.VmPool; + import com.google.gwt.i18n.client.Messages; public interface CommonApplicationMessages extends Messages { @@ -58,6 +60,12 @@ @DefaultMessage("Number of Prestarted VMs defines the number of VMs in Run state , that are waiting to be attached to Users. Accepted values: 0 to the Number of VMs that already exists in the Pool.") String prestartedHelp(); + @DefaultMessage("It is possible to specify mask for the VM indexes, for example: for pool ''my" + + VmPool.MASK_CHARACTER + + VmPool.MASK_CHARACTER + + "pool'' the generated names will be: my01pool,my02pool,...my99pool") + String poolNameHelp(); + @DefaultMessage("Free: {0} vCPU") String quotaFreeCpus(int numOfVCPU); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java index 53aacde..6fb96f7 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java @@ -118,9 +118,17 @@ public ListModelListBoxEditor<Object> quotaEditor; @UiField + @Ignore + public Label nameLabel; + + @UiField @Path(value = "name.entity") @WithElementId("name") - public EntityModelTextBoxEditor nameEditor; + public EntityModelTextBoxOnlyEditor nameEditor; + + @UiField(provided = true) + @Ignore + public InfoIcon poolNameIcon; @UiField @Path(value = "description.entity") @@ -527,6 +535,11 @@ editPoolPrestartedVmsIcon = new InfoIcon(applicationTemplates.italicText(messages.prestartedHelp()), resources); + poolNameIcon = + new InfoIcon(applicationTemplates.italicText(messages.poolNameHelp()), resources); + + poolNameIcon.setVisible(false); + outOfxInPool = new ValueLabel<Object>(new AbstractRenderer<Object>() { @Override @@ -678,7 +691,7 @@ dataCenterEditor.setLabel(constants.dcVmPopup()); clusterEditor.setLabel(constants.hostClusterVmPopup()); quotaEditor.setLabel(constants.quotaVmPopup()); - nameEditor.setLabel(constants.nameVmPopup()); + nameLabel.setText(constants.nameVmPopup()); descriptionEditor.setLabel(constants.descriptionVmPopup()); templateEditor.setLabel(constants.basedOnTemplateVmPopup()); memSizeEditor.setLabel(constants.memSizeVmPopup()); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml index 635b517..6aef823 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.ui.xml @@ -156,17 +156,17 @@ margin-bottom: 10px; } - .poolEditVms { + .poolEditVms, .name { line-height: 30px; padding: 0 5px; padding-bottom: 35px; } - .prestartedVmsEditorContent { + .prestartedVmsEditorContent,.nameEditorContent { width: 230px; } - .prestartedVmsEditor { + .prestartedVmsEditor,.nameEditor { float: right; width: 230px; } @@ -176,7 +176,7 @@ padding-right: 10px; } - .prestartedVmsIcon { + .prestartedVmsIcon, .poolNameIcon { float: left; padding-top: 5px; padding-left: 2px; @@ -191,7 +191,7 @@ width: 230px; } - .prestartedLabel { + .prestartedLabel, .nameLabel { float: left; color: #333333; } @@ -213,7 +213,13 @@ <e:ListModelListBoxEditor ui:field="quotaEditor" /> </g:FlowPanel> <g:FlowPanel addStyleNames="{style.sectionPanel}"> - <e:EntityModelTextBoxEditor ui:field="nameEditor" /> + <g:FlowPanel addStyleNames="{style.name}"> + <g:FlowPanel addStyleNames="{style.prestartedLabelWithHelp}"> + <g:Label ui:field="nameLabel" addStyleNames="{style.nameLabel}" /> + <d:InfoIcon ui:field="poolNameIcon" addStyleNames="{style.poolNameIcon}" /> + </g:FlowPanel> + <e:EntityModelTextBoxOnlyEditor ui:field="nameEditor" addStyleNames="{style.nameEditor}" contentWidgetStyleName="{style.nameEditorContent}"/> + </g:FlowPanel> <e:EntityModelTextBoxEditor ui:field="descriptionEditor" /> <!-- New VM Pool --> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java index 29be1c2..e2607aa 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/pool/PoolNewPopupWidget.java @@ -47,6 +47,7 @@ super.edit(object); initTabAvailabilityListeners(object); isStatelessEditor.setVisible(false); + poolNameIcon.setVisible(true); if (object.getIsNew()) { prestartedVmsEditor.setEnabled(false); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java index f89ad1a..9e65996 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java @@ -48,6 +48,7 @@ import org.ovirt.engine.ui.uicommonweb.validation.NoTrimmingWhitespacesValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyQuotaValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; +import org.ovirt.engine.ui.uicommonweb.validation.PoolNameValidation; import org.ovirt.engine.ui.uicommonweb.validation.SpecialAsciiI18NOrNoneValidation; import org.ovirt.engine.ui.uicommonweb.validation.ValidationResult; import org.ovirt.engine.ui.uicompat.ConstantsManager; @@ -1960,7 +1961,7 @@ new LengthValidation( (getBehavior() instanceof TemplateVmModelBehavior || getBehavior() instanceof NewTemplateVmModelBehavior) ? VM_TEMPLATE_NAME_MAX_LIMIT : AsyncDataProvider.IsWindowsOsType(osType) ? WINDOWS_VM_NAME_MAX_LIMIT : NON_WINDOWS_VM_NAME_MAX_LIMIT), - new I18NNameValidation() + isPoolTabValid ? new PoolNameValidation() : new I18NNameValidation() }); getDescription().ValidateEntity( diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidation.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidation.java new file mode 100644 index 0000000..171eba4 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidation.java @@ -0,0 +1,48 @@ +package org.ovirt.engine.ui.uicommonweb.validation; + +import org.ovirt.engine.core.common.businessentities.VmPool; +import org.ovirt.engine.ui.uicompat.ConstantsManager; + +public class PoolNameValidation extends I18NNameValidation { + + @Override + protected String composeRegex() { + return or(start() + oneOrMore(nonNumberMaskCharacter()) + numberMask() + zeroOrMore(nonNumberMaskCharacter()) + end(), + start() + zeroOrMore(nonNumberMaskCharacter()) + numberMask() + oneOrMore(nonNumberMaskCharacter()) + end()); + } + + @Override + protected String start() { + return "^"; //$NON-NLS-1$ + } + + @Override + protected String end() { + return "$"; //$NON-NLS-1$ + } + + protected String numberMask() { + return "[" + VmPool.MASK_CHARACTER + "]*"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + protected String oneOrMore(String exp) { + return "[" + exp + "]+"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + protected String zeroOrMore(String exp) { + return "[" + exp + "]*"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + protected String or(String exp1, String exp2) { + return exp1 + "|" + exp2; //$NON-NLS-1$ + } + + protected String nonNumberMaskCharacter() { + return letters() + numbers() + specialCharacters(); + } + + @Override + protected String composeMessage() { + return ConstantsManager.getInstance().getConstants().poolNameValidationMsg(); + } +} diff --git a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidationTest.java b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidationTest.java new file mode 100644 index 0000000..1b63e70 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/validation/PoolNameValidationTest.java @@ -0,0 +1,69 @@ +package org.ovirt.engine.ui.uicommonweb.validation; + +import junit.framework.Assert; + +import org.junit.Test; +import org.ovirt.engine.core.common.businessentities.VmPool; + +public class PoolNameValidationTest { + + @Test + public void testValidNonPatternName() { + Assert.assertTrue(new TestablePoolNameValidation().Validate("pool-T4534f").getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testNonValidNonPatternName() { + Assert.assertFalse(new TestablePoolNameValidation().Validate("pool-T453&4f").getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testNonValidNonPatternName2() { + Assert.assertFalse(new TestablePoolNameValidation().Validate("").getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testValidPatternName() { + Assert.assertTrue(new TestablePoolNameValidation().Validate("pool-T4534f??".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testValidPatternName2() { + Assert.assertTrue(new TestablePoolNameValidation().Validate("pool-T4534f?????rt".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testValidPatternName3() { + Assert.assertTrue(new TestablePoolNameValidation().Validate("??rt".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testNonValidPatternName() { + Assert.assertFalse(new TestablePoolNameValidation().Validate("???".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testNonValidPatternName2() { + Assert.assertFalse(new TestablePoolNameValidation().Validate("pool-T4534f??r-t??".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testNonValidPatternName3() { + Assert.assertFalse(new TestablePoolNameValidation().Validate("pool-T4534f??rt??asda".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + @Test + public void testNonValidPatternName4() { + Assert.assertFalse(new TestablePoolNameValidation().Validate("??rt??asda".replace('?', VmPool.MASK_CHARACTER)).getSuccess()); //$NON-NLS-1$ + } + + /** + * {@link PoolNameValidation#composeMessage()} access {@link ConstantsManager} that can't be used inside unit tests so it's overridden + */ + private class TestablePoolNameValidation extends PoolNameValidation { + @Override + protected String composeMessage() { + return ""; //$NON-NLS-1$ + } + } +} diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java index e0b4c10..368a083 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java @@ -1,5 +1,7 @@ package org.ovirt.engine.ui.uicompat; +import org.ovirt.engine.core.common.businessentities.VmPool; + @@ -614,6 +616,9 @@ @DefaultStringValue("Name can contain only alphanumeric, '.', '_' or '-' characters.") String i18NNameValidationMsg(); + @DefaultStringValue("Name can contain only alphanumeric, '.', '_' or '-' characters, and optionally one sequence of '" + VmPool.MASK_CHARACTER + "' to specify mask for the VM indexes") + String poolNameValidationMsg(); + @DefaultStringValue("UTF characters are not allowed.") String nonUtfValidationMsg(); 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 c7844ed..46eb105 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 @@ -632,6 +632,7 @@ ACTION_TYPE_FAILED_NAME_MAY_NOT_BE_EMPTY=Can not ${action} ${type}. The given name is empty. ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS=Can not ${action} ${type}. The given name contains special characters. Only lower-case and upper-case letters, numbers, '_', '-', '.' are allowed. ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS_OR_DASH=Can not ${action} ${type}. The given name contains special characters. Only lower-case and upper-case letters, numbers, '_', allowed. +ACTION_TYPE_FAILED_INVALID_POOL_NAME=Can not ${action} ${type}. The given name is invalid for pool name. Only lower-case and upper-case letters, numbers, '_', '-', '.', and one mask sequence are allowed. ACTION_TYPE_FAILED_INVALID_VDS_HOSTNAME=Can not ${action} ${type}. The given Host name is invalid. Only Host names corresponding to RFC-952 and RFC-1123 are allowed. VM_CANNOT_RUN_ONCE_WITH_ILLEGAL_SYSPREP_PARAM=Missing UserName or Password. ACTION_TYPE_FAILED_CANNOT_REMOVE_BUILTIN_GROUP_EVERYONE=Cannot remove the built-in group "Everyone". 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 38c06a7..84c136b 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 @@ -631,6 +631,7 @@ ACTION_TYPE_FAILED_NAME_MAY_NOT_BE_EMPTY=Can not ${action} ${type}. The given name is empty. ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS=Can not ${action} ${type}. The given name contains special characters. Only lower-case and upper-case letters, numbers, '_', '-', '.' are allowed. ACTION_TYPE_FAILED_NAME_MAY_NOT_CONTAIN_SPECIAL_CHARS_OR_DASH=Can not ${action} ${type}. The given name contains special characters. Only lower-case and upper-case letters, numbers, '_', allowed. +ACTION_TYPE_FAILED_INVALID_POOL_NAME=Can not ${action} ${type}. The given name is invalid for pool name. Only lower-case and upper-case letters, numbers, '_', '-', '.', and one mask sequence are allowed. ACTION_TYPE_FAILED_INVALID_VDS_HOSTNAME=Can not ${action} ${type}. The given Host name is invalid. Only Host names corresponding to RFC-952 and RFC-1123 are allowed. VM_CANNOT_RUN_ONCE_WITH_ILLEGAL_SYSPREP_PARAM=Missing UserName or Password. ACTION_TYPE_FAILED_CANNOT_REMOVE_BUILTIN_GROUP_EVERYONE=Cannot remove the built-in group "Everyone". -- To view, visit http://gerrit.ovirt.org/11985 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7d0a5c6c06150493c2359686c3958bf92b3f69f7 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
