package org.ovirt.engine.core.bll.storage.connection.iscsibond;
import org.ovirt.engine.core.bll.context.CommandContext;
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.EngineMessage;
import org.ovirt.engine.core.compat.Guid;
public class RemoveIscsiBondCommand<T extends RemoveIscsiBondParameters> extends BaseIscsiBondCommand<T> {
private IscsiBond iscsiBond;
public RemoveIscsiBondCommand(T parameters, CommandContext cmdContext) {
super(parameters, cmdContext);
}
@Override
protected boolean validate() {
IscsiBondValidator validator = new IscsiBondValidator();
return validate(validator.isIscsiBondExist(getIscsiBond()));
}
@Override
protected void executeCommand() {
iscsiBondDao.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;
}
@Override
protected IscsiBond getIscsiBond() {
if (iscsiBond == null) {
iscsiBond = iscsiBondDao.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() {
addValidationMessage(EngineMessage.VAR__ACTION__REMOVE);
addValidationMessage(EngineMessage.VAR__TYPE__ISCSI_BOND);
}
}