package org.ovirt.engine.core.bll; import javax.inject.Inject; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.job.ExecutionHandler; import org.ovirt.engine.core.bll.job.JobRepository; import org.ovirt.engine.core.common.action.AddJobParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.common.job.Job; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.JobDao; public abstract class AddJobCommand<T extends AddJobParameters> extends CommandBase<T> { @Inject private JobDao jobDao; protected AddJobCommand(T parameters, CommandContext cmdContext) { super(parameters, cmdContext); } @Inject private JobRepository jobRepository; @Override protected boolean validate() { boolean retValue = true; if (StringUtils.isBlank(getParameters().getDescription())) { addValidationMessage(EngineMessage.ACTION_TYPE_EMPTY_DESCRIPTION); retValue = false; } return retValue; } protected void createJob(VdcActionType actionType, boolean isExternal) { Job job = ExecutionHandler.createJob(actionType, this); job.setDescription(getParameters().getDescription()); job.setAutoCleared(getParameters().isAutoCleared()); Guid id = job.getId(); job.setExternal(isExternal); jobRepository.saveJob(job); if (jobDao.get(id) != null) { setActionReturnValue(id); setSucceeded(true); } else { setSucceeded(false); } } }