package org.ovirt.engine.core.bll;
import java.util.ArrayList;
import java.util.List;
import org.ovirt.engine.core.bll.context.CommandContext;
import org.ovirt.engine.core.bll.utils.PermissionSubject;
import org.ovirt.engine.core.common.VdcObjectType;
import org.ovirt.engine.core.common.action.AddExternalStepParameters;
import org.ovirt.engine.core.common.businessentities.ActionGroup;
import org.ovirt.engine.core.common.errors.EngineMessage;
public class AddExternalStepCommand <T extends AddExternalStepParameters> extends AddStepCommand<T>{
public AddExternalStepCommand(T parameters, CommandContext cmdContext) {
super(parameters, cmdContext);
}
@Override
protected boolean validate() {
boolean retValue=super.validate();
if (job != null) {
if (!job.isExternal()) {
retValue = false;
addValidationMessage(EngineMessage.ACTION_TYPE_NOT_EXTERNAL);
}
}
if (!retValue) {
addValidationMessage(EngineMessage.VAR__ACTION__ADD);
addValidationMessage(EngineMessage.VAR__TYPE__EXTERNAL_JOB);
}
return retValue;
}
@Override
public List<PermissionSubject> getPermissionCheckSubjects() {
List<PermissionSubject> permissionList = new ArrayList<>();
permissionList.add(new PermissionSubject(MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID,
VdcObjectType.System,
ActionGroup.INJECT_EXTERNAL_TASKS));
return permissionList;
}
}