Sergey Gotliv has uploaded a new change for review. Change subject: engine: Introduce commands to manage iscsi bonds entities ......................................................................
engine: Introduce commands to manage iscsi bonds entities These commands allow to create, update and delete iscsi bonds in the scope of the data center. They perform basic validations, provide audit logs and database manipulations like adding a logical network or/and iscsi storage targets to the iscsi bond or removing them from the bond. Commands don't update VDSM about changes in this patch. Change-Id: I06890ea40d22b86d9421cb1b0c68ea28bc430b0a Bug-Url: https://bugzilla.redhat.com/753541 Signed-off-by: Sergey Gotliv <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddIscsiBondCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/BaseIscsiBondCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/EditIscsiBondCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveIscsiBondCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IscsiBondValidator.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/AddIscsiBondParameters.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/EditIscsiBondParameters.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBondParameters.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 17 files changed, 493 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/40/23540/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddIscsiBondCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddIscsiBondCommand.java new file mode 100644 index 0000000..df0c202 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddIscsiBondCommand.java @@ -0,0 +1,85 @@ +package org.ovirt.engine.core.bll.storage; + +import java.util.List; + +import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute; +import org.ovirt.engine.core.bll.validator.IscsiBondValidator; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.action.AddIscsiBondParameters; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.validation.group.CreateEntity; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.utils.transaction.TransactionMethod; +import org.ovirt.engine.core.utils.transaction.TransactionSupport; + +@NonTransactiveCommandAttribute +public class AddIscsiBondCommand<T extends AddIscsiBondParameters> extends BaseIscsiBondCommand<T> { + + public AddIscsiBondCommand(T parameters) { + super(parameters); + } + + public AddIscsiBondCommand(Guid commandId) { + super(commandId); + } + + @Override + protected boolean canDoAction() { + IscsiBondValidator validator = new IscsiBondValidator(); + return validate(validator.iscsiBondWithTheSameNameExistInDataCenter(getIscsiBond())); + } + + @Override + protected void executeCommand() { + final IscsiBond iscsiBond = getIscsiBond(); + + iscsiBond.setId(Guid.newGuid()); + + TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { + + @Override + public Void runInTransaction() { + getDbFacade().getIscsiBondDao().save(iscsiBond); + + for (Guid networkId : iscsiBond.getNetworkIds()) { + getDbFacade().getIscsiBondDao().addNetworkToIscsiBond(iscsiBond.getId(), networkId); + } + + for (String connectionId : iscsiBond.getStorageConnectionIds()) { + getDbFacade().getIscsiBondDao().addStorageConnectionToIscsiBond(iscsiBond.getId(), connectionId); + } + + return null; + } + }); + + setSucceeded(true); + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(CreateEntity.class); + return super.getValidationGroups(); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.ISCSI_BOND_ADD_SUCCESS : AuditLogType.ISCSI_BOND_ADD_FAILED; + } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__ADD); + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__ISCSI_BOND); + } + + protected IscsiBond getIscsiBond() { + return getParameters().getIscsiBond(); + } + + @Override + public Guid getStoragePoolId() { + return getIscsiBond().getStoragePoolId(); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/BaseIscsiBondCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/BaseIscsiBondCommand.java new file mode 100644 index 0000000..b8bb09b --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/BaseIscsiBondCommand.java @@ -0,0 +1,38 @@ +package org.ovirt.engine.core.bll.storage; + +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.common.VdcObjectType; +import org.ovirt.engine.core.common.action.VdcActionParametersBase; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.compat.Guid; + +public abstract class BaseIscsiBondCommand<T extends VdcActionParametersBase> extends CommandBase<T> { + + public BaseIscsiBondCommand(T parameters) { + super(parameters); + } + + public BaseIscsiBondCommand(Guid commandId) { + super(commandId); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.singletonList(new PermissionSubject(getStoragePoolId(), + VdcObjectType.StoragePool, getActionType().getActionGroup())); + } + + /** + * Used by audit log to populate ${IscsiBondName} placeholder. + * @return + */ + public String getIscsiBondName() { + return getIscsiBond().getName(); + } + + protected abstract IscsiBond getIscsiBond(); +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/EditIscsiBondCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/EditIscsiBondCommand.java new file mode 100644 index 0000000..51688d9 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/EditIscsiBondCommand.java @@ -0,0 +1,146 @@ +package org.ovirt.engine.core.bll.storage; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.commons.lang.StringUtils; +import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute; +import org.ovirt.engine.core.bll.validator.IscsiBondValidator; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.action.EditIscsiBondParameters; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.validation.group.UpdateEntity; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.utils.transaction.TransactionMethod; +import org.ovirt.engine.core.utils.transaction.TransactionSupport; + +@NonTransactiveCommandAttribute +public class EditIscsiBondCommand <T extends EditIscsiBondParameters> extends BaseIscsiBondCommand<T> { + + private IscsiBond existingIscsiBond; + + public EditIscsiBondCommand(T parameters) { + super(parameters); + } + + public EditIscsiBondCommand(Guid commandId) { + super(commandId); + } + + @Override + protected boolean canDoAction() { + IscsiBondValidator validator = new IscsiBondValidator(); + + if (!validate(validator.isIscsiBondExist(getExistingIscsiBond()))) { + return false; + } + + if (isNameChanged() && !validate(validator.iscsiBondWithTheSameNameExistInDataCenter(getIscsiBond()))) { + return false; + } + + return true; + } + + @Override + protected void executeCommand() { + + TransactionSupport.executeInNewTransaction(new TransactionMethod<Void>() { + + @Override + public Void runInTransaction() { + if (isNameChanged() || isDescriptionChanged()) { + getDbFacade().getIscsiBondDao().update(getIscsiBond()); + } + + updateNetworksIds(); + updateConnectionsIds(); + + return null; + } + }); + + setSucceeded(true); + } + + private void updateNetworksIds() { + Set<Guid> beforeChangeNetworkIds = new HashSet<>(getExistingIscsiBond().getNetworkIds()); + + for (Guid networkId : getIscsiBond().getNetworkIds()) { + if (!beforeChangeNetworkIds.remove(networkId)) { + getDbFacade().getIscsiBondDao().addNetworkToIscsiBond(getExistingIscsiBond().getId(), networkId); + } + } + + for (Guid networkId : beforeChangeNetworkIds) { + getDbFacade().getIscsiBondDao().removeNetworkFromIscsiBond(getExistingIscsiBond().getId(), networkId); + } + } + + private void updateConnectionsIds() { + Set<String> beforeChangeConnectionIds = new HashSet<>(getExistingIscsiBond().getStorageConnectionIds()); + + for (String connectionId : getIscsiBond().getStorageConnectionIds()) { + if (!beforeChangeConnectionIds.remove(connectionId)) { + getDbFacade().getIscsiBondDao().addStorageConnectionToIscsiBond(getExistingIscsiBond().getId(), connectionId); + } + } + + for (String connectionId : beforeChangeConnectionIds) { + getDbFacade().getIscsiBondDao().removeStorageConnectionFromIscsiBond(getExistingIscsiBond().getId(), connectionId); + } + } + + private IscsiBond getExistingIscsiBond() { + if (existingIscsiBond != null) { + return existingIscsiBond; + } + + existingIscsiBond = getDbFacade().getIscsiBondDao().get(getParameters().getIscsiBond().getId()); + if (existingIscsiBond != null) { + existingIscsiBond.setNetworkIds(getDbFacade().getIscsiBondDao() + .getNetworkIdsByIscsiBondId(existingIscsiBond.getId())); + existingIscsiBond.setStorageConnectionIds(getDbFacade().getIscsiBondDao() + .getStorageConnectionIdsByIscsiBondId(existingIscsiBond.getId())); + } + + return existingIscsiBond; + } + + @Override + protected IscsiBond getIscsiBond() { + return getParameters().getIscsiBond(); + } + + @Override + protected List<Class<?>> getValidationGroups() { + addValidationGroup(UpdateEntity.class); + return super.getValidationGroups(); + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.ISCSI_BOND_EDIT_SUCCESS : AuditLogType.ISCSI_BOND_EDIT_FAILED; + } + + @Override + public Guid getStoragePoolId() { + return (getExistingIscsiBond() != null) ? getExistingIscsiBond().getStoragePoolId() : null; + } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__UPDATE); + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__ISCSI_BOND); + } + + private boolean isNameChanged() { + return !StringUtils.equals(getIscsiBondName(), getExistingIscsiBond().getName()); + } + + private boolean isDescriptionChanged() { + return !StringUtils.equals(getIscsiBond().getDescription(), getExistingIscsiBond().getDescription()); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveIscsiBondCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveIscsiBondCommand.java new file mode 100644 index 0000000..5ffa6aa --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveIscsiBondCommand.java @@ -0,0 +1,64 @@ +package org.ovirt.engine.core.bll.storage; + +import org.ovirt.engine.core.bll.validator.IscsiBondValidator; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.action.RemoveIscsiBondParameters; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.compat.Guid; + +public class RemoveIscsiBondCommand<T extends RemoveIscsiBondParameters> extends BaseIscsiBondCommand<T> { + + private IscsiBond iscsiBond; + + public RemoveIscsiBondCommand(T parameters) { + super(parameters); + } + + @Override + protected boolean canDoAction() { + IscsiBondValidator validator = new IscsiBondValidator(); + return validate(validator.isIscsiBondExist(getIscsiBond())); + } + + @Override + protected void executeCommand() { + getDbFacade().getIscsiBondDao().remove(getParameters().getIscsiBondId()); + setSucceeded(true); + } + + @Override + public Guid getStoragePoolId() { + Guid storagePoolId = super.getStoragePoolId(); + + if (storagePoolId == null) { + IscsiBond iscsiBond = getIscsiBond(); + + if (iscsiBond != null) { + storagePoolId = iscsiBond.getStoragePoolId(); + setStoragePoolId(storagePoolId); + } + } + + return storagePoolId; + } + + protected IscsiBond getIscsiBond() { + if (iscsiBond == null) { + iscsiBond = getDbFacade().getIscsiBondDao().get(getParameters().getIscsiBondId()); + } + + return iscsiBond; + } + + @Override + public AuditLogType getAuditLogTypeValue() { + return getSucceeded() ? AuditLogType.ISCSI_BOND_REMOVE_SUCCESS : AuditLogType.ISCSI_BOND_REMOVE_FAILED; + } + + @Override + protected void setActionMessageParameters() { + addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE); + addCanDoActionMessage(VdcBllMessages.VAR__TYPE__ISCSI_BOND); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IscsiBondValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IscsiBondValidator.java new file mode 100644 index 0000000..279387e --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/IscsiBondValidator.java @@ -0,0 +1,28 @@ +package org.ovirt.engine.core.bll.validator; + +import java.util.List; + +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.IscsiBond; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; + +public class IscsiBondValidator { + + public ValidationResult iscsiBondWithTheSameNameExistInDataCenter(IscsiBond iscsiBond) { + List<IscsiBond> iscsiBonds = DbFacade.getInstance().getIscsiBondDao().getAllByStoragePoolId(iscsiBond.getStoragePoolId()); + + for (IscsiBond bond : iscsiBonds) { + if (bond.getName().equals(iscsiBond.getName()) && !bond.getId().equals(iscsiBond.getId())) { + return new ValidationResult(VdcBllMessages.ISCSI_BOND_WITH_SAME_NAME_EXIST_IN_DATA_CENTER); + } + } + + return ValidationResult.VALID; + } + + public ValidationResult isIscsiBondExist(IscsiBond iscsiBond) { + return (iscsiBond == null) ? + new ValidationResult(VdcBllMessages.ISCSI_BOND_NOT_EXIST) : ValidationResult.VALID; + } +} 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 9bf4842..d0f2bf7 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 @@ -856,7 +856,15 @@ USER_UPDATED_AFFINITY_GROUP(10352), USER_FAILED_TO_UPDATE_AFFINITY_GROUP(10353), USER_REMOVED_AFFINITY_GROUP(10354), - USER_FAILED_TO_REMOVE_AFFINITY_GROUP(10355); + USER_FAILED_TO_REMOVE_AFFINITY_GROUP(10355), + + // iSCSI bond + ISCSI_BOND_ADD_SUCCESS(10400), + ISCSI_BOND_ADD_FAILED(10401), + ISCSI_BOND_EDIT_SUCCESS(10402), + ISCSI_BOND_EDIT_FAILED(10403), + ISCSI_BOND_REMOVE_SUCCESS(10404), + ISCSI_BOND_REMOVE_FAILED(10405); private int intValue; // indicates time interval in seconds on which identical events from same instance are suppressed. diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBondParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBondParameters.java new file mode 100644 index 0000000..e9f242b --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddIscsiBondParameters.java @@ -0,0 +1,24 @@ +package org.ovirt.engine.core.common.action; + +import javax.validation.Valid; + +import org.ovirt.engine.core.common.businessentities.IscsiBond; + +public class AddIscsiBondParameters extends VdcActionParametersBase { + + private static final long serialVersionUID = 8709128730744559712L; + + @Valid + private IscsiBond iscsiBond; + + public AddIscsiBondParameters() { + } + + public AddIscsiBondParameters(IscsiBond iscsiBond) { + this.iscsiBond = iscsiBond; + } + + public IscsiBond getIscsiBond() { + return iscsiBond; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/EditIscsiBondParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/EditIscsiBondParameters.java new file mode 100644 index 0000000..b3a1ee9 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/EditIscsiBondParameters.java @@ -0,0 +1,28 @@ +package org.ovirt.engine.core.common.action; + +import javax.validation.Valid; + +import org.ovirt.engine.core.common.businessentities.IscsiBond; + +public class EditIscsiBondParameters extends VdcActionParametersBase { + + private static final long serialVersionUID = -5787650546020967357L; + + @Valid + private IscsiBond iscsiBond; + + public EditIscsiBondParameters() { + } + + public EditIscsiBondParameters(IscsiBond iscsiBond) { + setIscsiBond(iscsiBond); + } + + public IscsiBond getIscsiBond() { + return iscsiBond; + } + + public void setIscsiBond(IscsiBond iscsiBond) { + this.iscsiBond = iscsiBond; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBondParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBondParameters.java new file mode 100644 index 0000000..cddeb2c --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveIscsiBondParameters.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.core.common.action; + +import org.ovirt.engine.core.compat.Guid; + +public class RemoveIscsiBondParameters extends VdcActionParametersBase { + + private static final long serialVersionUID = 5157688843104010403L; + + private Guid iscsiBondId; + + public RemoveIscsiBondParameters() { + } + + public RemoveIscsiBondParameters(Guid iscsiBondId) { + this.iscsiBondId = iscsiBondId; + } + + public Guid getIscsiBondId() { + return iscsiBondId; + } +} 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 22b2421..e567fd2 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 @@ -321,7 +321,13 @@ // Affinity Groups AddAffinityGroup(1950, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE), EditAffinityGroup(1951, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE), - RemoveAffinityGroup(1952, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE); + RemoveAffinityGroup(1952, ActionGroup.MANIPULATE_AFFINITY_GROUPS, false, QuotaDependency.NONE), + + // ISCSI Bonds + AddIscsiBond(2000, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE), + EditIscsiBond(2001, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE), + RemoveIscsiBond(2002, ActionGroup.EDIT_STORAGE_POOL_CONFIGURATION, false, QuotaDependency.NONE); + private int intValue; private ActionGroup actionGroup; 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 76d94fc..1e4eb7a 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 @@ -36,6 +36,7 @@ VAR__TYPE__POLICY_UNIT, VAR__TYPE__SUBNET, VAR__TYPE__AFFINITY_GROUP, + VAR__TYPE__ISCSI_BOND, // Gluster types VAR__TYPE__GLUSTER_VOLUME, @@ -917,7 +918,11 @@ ACTION_TYPE_FAILED_AFFINITY_GROUP_NAME_EXISTS(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_POSITIVE_AFFINITY_GROUP(ErrorType.CONFLICT), ACTION_TYPE_FAILED_NEGATIVE_AFFINITY_GROUP(ErrorType.CONFLICT), - ACTION_TYPE_FAILED_MIX_POSITIVE_NEGATIVE_AFFINITY_GROUP(ErrorType.CONFLICT); + ACTION_TYPE_FAILED_MIX_POSITIVE_NEGATIVE_AFFINITY_GROUP(ErrorType.CONFLICT), + + // Iscsi bonds + ISCSI_BOND_WITH_SAME_NAME_EXIST_IN_DATA_CENTER(ErrorType.CONFLICT), + ISCSI_BOND_NOT_EXIST(ErrorType.BAD_PARAMETERS); private ErrorType messageType; 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 f58d39a..878cbee 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 @@ -63,6 +63,7 @@ initExtrnalEvents(); initMomPoliciesSeverities(); initPmPolicySeverities(); + initIscsiBondSeverities(); } private static void initProviderSeverities() { @@ -891,6 +892,15 @@ severities.put(AuditLogType.PM_POLICY_TO_UP, AuditLogSeverity.NORMAL); } + private static void initIscsiBondSeverities() { + severities.put(AuditLogType.ISCSI_BOND_ADD_SUCCESS, AuditLogSeverity.NORMAL); + severities.put(AuditLogType.ISCSI_BOND_ADD_FAILED, AuditLogSeverity.ERROR); + severities.put(AuditLogType.ISCSI_BOND_EDIT_SUCCESS, AuditLogSeverity.NORMAL); + severities.put(AuditLogType.ISCSI_BOND_EDIT_FAILED, AuditLogSeverity.ERROR); + severities.put(AuditLogType.ISCSI_BOND_REMOVE_SUCCESS, AuditLogSeverity.NORMAL); + severities.put(AuditLogType.ISCSI_BOND_REMOVE_FAILED, AuditLogSeverity.ERROR); + } + private static void initMessages() { ResourceBundle bundle = readMessagesFromBundle(); 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 8f34b2a..7f4315e 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -272,6 +272,7 @@ VAR__TYPE__POLICY_UNIT=$type Policy Unit VAR__TYPE__SUBNET=$type subnet VAR__TYPE__AFFINITY_GROUP=$type Affinity Group +VAR__TYPE__ISCSI_BOND=$type iSCSI Bond VAR__ACTION__RUN=$action run VAR__ACTION__REMOVE=$action remove VAR__ACTION__ADD=$action add @@ -1131,3 +1132,6 @@ VALIDATION_ISCSI_BOND_DESCRIPTION_MAX=iSCSI bond description must not exceed 4000 characters VALIDATION_ISCSI_BOND_NAME_INVALID_CHARACTER=iSCSI Bond name must be formed from alpha-numeric characters or "-_." VALIDATION_SCSI_BOND_DESCRIPTION_INVALID=iSCSI Bond description must be formed only from alpha-numeric characters and special characters that conform to the standard ASCII character set. + +ISCSI_BOND_NOT_EXIST=Cannot ${action} ${type}. The specified iSCSI bond doesn't exist. +ISCSI_BOND_WITH_SAME_NAME_EXIST_IN_DATA_CENTER=Cannot ${action} ${type}. iSCSI bond with the same name already exists in the Data Center. 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 051e1fc..3b893e1 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties @@ -750,3 +750,10 @@ USER_FAILED_TO_UPDATE_AFFINITY_GROUP=Failed to update Affinity Group ${affinityGroupName}. (User: ${UserName}) USER_REMOVED_AFFINITY_GROUP=Affinity Group ${affinityGroupName} was removed. (User: ${UserName}) USER_FAILED_TO_REMOVE_AFFINITY_GROUP=Failed to remove Affinity Group ${affinityGroupName}. (User: ${UserName}) + +ISCSI_BOND_ADD_SUCCESS=iSCSI bond '${IscsiBondName}' was successfully created in Data Center '${StoragePoolName}'. +ISCSI_BOND_ADD_FAILED=Failed to create iSCSI bond '${IscsiBondName}' in Data Center '${StoragePoolName}'. +ISCSI_BOND_EDIT_SUCCESS=iSCSI bond '${IscsiBondName}' was successfully updated. +ISCSI_BOND_EDIT_FAILED=Failed to update iSCSI bond '${IscsiBondName}'. +ISCSI_BOND_REMOVE_SUCCESS=iSCSI bond '${IscsiBondName}' was removed from Data Center '${StoragePoolName}' +ISCSI_BOND_REMOVE_FAILED=Failed to remove iSCSI bond '${IscsiBondName}' from Data Center '${StoragePoolName}' 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 935d6d6..bd1257d 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 @@ -736,6 +736,9 @@ @DefaultStringValue("$type Affinity Group") String VAR__TYPE__AFFINITY_GROUP(); + @DefaultStringValue("$type iSCSI Bond") + String VAR__TYPE__ISCSI_BOND(); + @DefaultStringValue("$action run") String VAR__ACTION__RUN(); @@ -3010,4 +3013,10 @@ @DefaultStringValue("iSCSI Bond description must be formed only from alpha-numeric characters and special characters that conform to the standard ASCII character set.") String VALIDATION_SCSI_BOND_DESCRIPTION_INVALID(); + + @DefaultStringValue("Cannot ${action} ${type}. iSCSI bond with the same name already exists in the Data Center.") + String ISCSI_BOND_WITH_SAME_NAME_EXIST_IN_DATA_CENTER(); + + @DefaultStringValue("Cannot ${action} ${type}. The specified iSCSI bond doesn't exist.") + String ISCSI_BOND_NOT_EXIST(); } 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 c5bf41a..4cb992c 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 @@ -263,6 +263,7 @@ VAR__TYPE__USER=$type User VAR__TYPE__PERMISSION=$type Permission VAR__TYPE__HOST_CAPABILITIES=$type Host capabilities +VAR__TYPE__ISCSI_BOND=$type iSCSI Bond VAR__ACTION__RUN=$action run VAR__ACTION__REMOVE=$action remove VAR__ACTION__ADD=$action add @@ -967,3 +968,6 @@ VALIDATION_ISCSI_BOND_DESCRIPTION_MAX=iSCSI bond description must not exceed 4000 characters VALIDATION_ISCSI_BOND_NAME_INVALID_CHARACTER=iSCSI Bond name must be formed from alpha-numeric characters or "-_." VALIDATION_SCSI_BOND_DESCRIPTION_INVALID=iSCSI Bond description must be formed only from alpha-numeric characters and special characters that conform to the standard ASCII character set. + +ISCSI_BOND_NOT_EXIST=Cannot ${action} ${type}. The specified iSCSI bond doesn't exist. +ISCSI_BOND_WITH_SAME_NAME_EXIST_IN_DATA_CENTER=Cannot ${action} ${type}. iSCSI bond with the same name already exists in the Data Center. 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 5f628e0..ec44915 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 @@ -277,6 +277,7 @@ VAR__TYPE__GLUSTER_SERVICE=$type Service VAR__TYPE__NETWORK_QOS=$type Network QoS VAR__TYPE__SPM=$type SPM +VAR__TYPE__ISCSI_BOND=$type iSCSI Bond VAR__ACTION__RUN=$action run VAR__ACTION__REMOVE=$action remove VAR__ACTION__ADD=$action add @@ -1105,3 +1106,5 @@ VALIDATION_ISCSI_BOND_NAME_INVALID_CHARACTER=iSCSI Bond name must be formed from alpha-numeric characters or "-_." VALIDATION_SCSI_BOND_DESCRIPTION_INVALID=iSCSI Bond description must be formed only from alpha-numeric characters and special characters that conform to the standard ASCII character set. +ISCSI_BOND_NOT_EXIST=Cannot ${action} ${type}. The specified iSCSI bond doesn't exist. +ISCSI_BOND_WITH_SAME_NAME_EXIST_IN_DATA_CENTER=Cannot ${action} ${type}. iSCSI bond with the same name already exists in the Data Center. -- To view, visit http://gerrit.ovirt.org/23540 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I06890ea40d22b86d9421cb1b0c68ea28bc430b0a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Sergey Gotliv <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
