package org.ovirt.engine.core.bll; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.AttachUserToTimeLeasedPoolParameters; import org.ovirt.engine.core.common.businessentities.time_lease_vm_pool_map; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class AttachUserToTimeLeasedPoolCommand<T extends AttachUserToTimeLeasedPoolParameters> extends VmPoolUserCommandBase<T> { public AttachUserToTimeLeasedPoolCommand(T parameters) { super(parameters); } @Override protected boolean canDoAction() { boolean result = true; time_lease_vm_pool_map time_lease_vm_pool_map = DbFacade.getInstance().getVmPoolDAO().getTimeLeasedVmPoolMapByIdForVmPool( getAdUserId(), (Guid) getVmPoolId()); if (time_lease_vm_pool_map != null) { addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_USER_ATTACHED_TO_POOL); result = false; } return result; } @Override protected void executeCommand() { initUser(); DbFacade.getInstance().getVmPoolDAO().addTimeLeasedVmPoolMap(getParameters().getUserPoolMap()); TimeLeasedVmPoolManager.getInstance().AddAction(getParameters().getUserPoolMap()); setSucceeded(true); } @Override public AuditLogType getAuditLogTypeValue() { return getSucceeded() ? AuditLogType.USER_ATTACH_USER_TO_TIME_LEASED_POOL : AuditLogType.USER_ATTACH_USER_TO_TIME_LEASED_POOL_FAILED; } }