package org.ovirt.engine.core.bll;
import java.util.Collections;
import java.util.Map;
import org.ovirt.engine.core.common.AuditLogType;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.common.action.AttachAdGroupTimeLeasedPoolCommandParameters;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public class AttachAdGroupTimeLeasedPoolCommand<T extends AttachAdGroupTimeLeasedPoolCommandParameters> extends
VmPoolToAdGroupBaseCommand<T> {
public AttachAdGroupTimeLeasedPoolCommand(T parameters) {
super(parameters);
}
@Override
protected void executeCommand() {
AdGroupsHandlingOperationBase.AddAdGroupToDBWithPermissionIfNeeded(getParameters().getAdGroup(),
getParameters().getSessionId(), getCompensationContext());
DbFacade.getInstance().getVmPoolDAO().addTimeLeasedVmPoolMap(getParameters().getTimeLeasedVmPoolMap());
TimeLeasedVmPoolManager.getInstance().AddAction(getParameters().getTimeLeasedVmPoolMap());
setSucceeded(true);
}
@Override
public AuditLogType getAuditLogTypeValue() {
return getSucceeded() ? AuditLogType.USER_ATTACH_AD_GROUP_TO_TIME_LEASED_POOL
: AuditLogType.USER_ATTACH_AD_GROUP_TO_TIME_LEASED_POOL_FAILED;
}
// TODO this command should be removed - AI Ofrenkel
@Override
public Map<Guid, VdcObjectType> getPermissionCheckSubjects() {
return Collections.singletonMap(Guid.Empty, VdcObjectType.Unknown);
}
}