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

Reply via email to