Eli Mesika has uploaded a new change for review. Change subject: core[BLL]: Adding external status to host ......................................................................
core[BLL]: Adding external status to host This patch handles the required changes in the AddExternalEventCommand Change-Id: I271aa3f841a3820482d89a1675e28dcb75540277 Signed-off-by: emesika <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddExternalEventCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddExternalEventParameters.java 2 files changed, 36 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/95/40995/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddExternalEventCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddExternalEventCommand.java index f27c238..1328463 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddExternalEventCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddExternalEventCommand.java @@ -1,18 +1,27 @@ package org.ovirt.engine.core.bll; +import java.util.ArrayList; import java.util.List; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.AddExternalEventParameters; +import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AlertDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; +import org.ovirt.engine.core.dao.VdsDynamicDAO; + +import javax.inject.Inject; public class AddExternalEventCommand<T extends AddExternalEventParameters> extends ExternalEventCommandBase<T> { private static final String OVIRT="oVirt"; + + @Inject VdsDynamicDAO hostDao; public AddExternalEventCommand(T parameters) { super(parameters); @@ -55,10 +64,28 @@ setActionReturnValue(auditLog.getAuditLogId()); setSucceeded(true); } + // Update host external status if set + if (hasHostExternalStatus()) { + hostDao.updateExternalStatus(getParameters().getEvent().getVdsId(), getParameters().getExternalStatus()); + } } @Override public List<PermissionSubject> getPermissionCheckSubjects() { - return getPermissionList(getParameters().getEvent()); + // check for external host status modification + List<PermissionSubject> hostExtStatusUpdatePermissionsList = new ArrayList<>(); + if (hasHostExternalStatus()) { + hostExtStatusUpdatePermissionsList.add(new PermissionSubject(new Guid(getParameters().getEvent().getVdsId().toString()), + VdcObjectType.VDS, ActionGroup.EDIT_HOST_CONFIGURATION)); + } + List<PermissionSubject> permissionList = getPermissionList(getParameters().getEvent()); + List<PermissionSubject> joinedPermissionList = new ArrayList<>(); + joinedPermissionList.addAll(hostExtStatusUpdatePermissionsList); + joinedPermissionList.addAll(permissionList); + return joinedPermissionList; + } + + private boolean hasHostExternalStatus() { + return getParameters().getEvent().getVdsId() != null && getParameters().getExternalStatus() != null; } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddExternalEventParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddExternalEventParameters.java index 176dd77..f33594e 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddExternalEventParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddExternalEventParameters.java @@ -1,21 +1,28 @@ package org.ovirt.engine.core.common.action; import org.ovirt.engine.core.common.businessentities.AuditLog; +import org.ovirt.engine.core.common.businessentities.ExternalStatus; public class AddExternalEventParameters extends VdcActionParametersBase { private static final long serialVersionUID = 7023971593753015624L; private AuditLog event; + private ExternalStatus externalStatus; public AuditLog getEvent() { return event; } + public ExternalStatus getExternalStatus() { + return externalStatus; + } + public AddExternalEventParameters() { } - public AddExternalEventParameters(AuditLog event) { + public AddExternalEventParameters(AuditLog event, ExternalStatus externalStatus) { super(); this.event = event; + this.externalStatus = externalStatus; } } -- To view, visit https://gerrit.ovirt.org/40995 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I271aa3f841a3820482d89a1675e28dcb75540277 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Eli Mesika <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
