Search in sources :

Example 6 with Job

use of org.ovirt.engine.core.common.job.Job in project ovirt-engine by oVirt.

the class EndExternalStepCommandTest method makeNonExternalTestJob.

private Job makeNonExternalTestJob(Guid jobId) {
    Job job = new Job();
    job.setId(jobId);
    job.setDescription("Sample Job");
    job.setExternal(false);
    return job;
}
Also used : Job(org.ovirt.engine.core.common.job.Job)

Example 7 with Job

use of org.ovirt.engine.core.common.job.Job in project ovirt-engine by oVirt.

the class TaskListModel method updateSingleTask.

public boolean updateSingleTask(final String guidOrCorrelationId) {
    if (!detailedTaskMap.containsKey(guidOrCorrelationId)) {
        detailedTaskMap.put(guidOrCorrelationId, null);
        if (guidOrCorrelationId.startsWith(WEBADMIN)) {
            GetJobsByCorrelationIdQueryParameters parameters = new GetJobsByCorrelationIdQueryParameters();
            parameters.setCorrelationId(guidOrCorrelationId);
            Frontend.getInstance().runQuery(QueryType.GetJobsByCorrelationId, parameters, new AsyncQuery<QueryReturnValue>(returnValue -> {
                ArrayList<Job> retTasks = returnValue.getReturnValue();
                ArrayList<Job> taskList = (ArrayList<Job>) getItems();
                ArrayList<Job> newTaskList = new ArrayList<>();
                for (Job task : taskList) {
                    if (task.getCorrelationId().equals(guidOrCorrelationId)) {
                        detailedTaskMap.put(guidOrCorrelationId, task);
                        task.setStatus(JobExecutionStatus.FINISHED);
                        for (Job job : retTasks) {
                            Step step = new Step();
                            step.setId(job.getId());
                            step.setDescription(job.getDescription());
                            step.setCorrelationId(job.getCorrelationId());
                            step.setStartTime(job.getStartTime());
                            step.setEndTime(job.getEndTime());
                            step.setStatus(job.getStatus());
                            step.setSteps(job.getSteps());
                            if (!task.getStatus().equals(JobExecutionStatus.FINISHED) && !job.getStatus().equals(JobExecutionStatus.FINISHED)) {
                                task.setStatus(job.getStatus());
                            }
                            if (task.getLastUpdateTime() == null || (task.getLastUpdateTime().before(job.getLastUpdateTime()) && !task.getLastUpdateTime().equals(job.getLastUpdateTime()))) {
                                task.setLastUpdateTime(job.getEndTime());
                            }
                            Date tempDate = task.getLastUpdateTime();
                            if (task.getStartTime() == null || task.getStartTime().after(job.getStartTime())) {
                                task.setStartTime(job.getStartTime());
                            }
                            if (task.getEndTime() != null && (task.getEndTime() == null || task.getEndTime().before(job.getEndTime()))) {
                                task.setEndTime(job.getEndTime());
                            }
                            task.addStep(step);
                            task.setLastUpdateTime(tempDate);
                        }
                    }
                    newTaskList.add(task);
                }
                setItems(newTaskList);
            }));
        } else {
            IdQueryParameters parameters = new IdQueryParameters(new Guid(guidOrCorrelationId));
            Frontend.getInstance().runQuery(QueryType.GetJobByJobId, parameters, new AsyncQuery<QueryReturnValue>(returnValue -> {
                Job retTask = returnValue.getReturnValue();
                if (retTask == null) {
                    return;
                }
                detailedTaskMap.put(retTask.getId().toString(), retTask);
                ArrayList<Job> taskList = (ArrayList<Job>) getItems();
                ArrayList<Job> newTaskList = new ArrayList<>();
                for (Job task : taskList) {
                    if (task.getId().equals(retTask.getId())) {
                        newTaskList.add(retTask);
                    } else {
                        newTaskList.add(task);
                    }
                }
                setItems(newTaskList);
            }));
        }
        return false;
    }
    return true;
}
Also used : GetJobsByOffsetQueryParameters(org.ovirt.engine.core.common.queries.GetJobsByOffsetQueryParameters) JobExecutionStatus(org.ovirt.engine.core.common.job.JobExecutionStatus) QueryType(org.ovirt.engine.core.common.queries.QueryType) QueryReturnValue(org.ovirt.engine.core.common.queries.QueryReturnValue) Date(java.util.Date) Job(org.ovirt.engine.core.common.job.Job) Guid(org.ovirt.engine.core.compat.Guid) HashMap(java.util.HashMap) Random(java.util.Random) SearchableListModel(org.ovirt.engine.ui.uicommonweb.models.SearchableListModel) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) ArrayList(java.util.ArrayList) GetJobsByCorrelationIdQueryParameters(org.ovirt.engine.core.common.queries.GetJobsByCorrelationIdQueryParameters) Frontend(org.ovirt.engine.ui.frontend.Frontend) List(java.util.List) Map(java.util.Map) Step(org.ovirt.engine.core.common.job.Step) QueryReturnValue(org.ovirt.engine.core.common.queries.QueryReturnValue) IdQueryParameters(org.ovirt.engine.core.common.queries.IdQueryParameters) GetJobsByCorrelationIdQueryParameters(org.ovirt.engine.core.common.queries.GetJobsByCorrelationIdQueryParameters) GetJobsByCorrelationIdQueryParameters(org.ovirt.engine.core.common.queries.GetJobsByCorrelationIdQueryParameters) ArrayList(java.util.ArrayList) Step(org.ovirt.engine.core.common.job.Step) Guid(org.ovirt.engine.core.compat.Guid) Job(org.ovirt.engine.core.common.job.Job) Date(java.util.Date)

Example 8 with Job

use of org.ovirt.engine.core.common.job.Job in project ovirt-engine by oVirt.

the class TaskModelProvider method updateDataProvider.

@Override
protected void updateDataProvider(List<Job> items) {
    if (taskHandler != null) {
        taskHandler.onTaskCountChange(items.size());
    }
    int count = 0;
    for (Job job : items) {
        if (job.getStatus().equals(JobExecutionStatus.STARTED)) {
            ++count;
        }
    }
    if (count != lastRunningTasksCount) {
        lastRunningTasksCount = count;
        if (taskHandler != null) {
            taskHandler.onRunningTasksCountChange(count);
        }
    }
    super.updateDataProvider(items);
}
Also used : Job(org.ovirt.engine.core.common.job.Job)

Example 9 with Job

use of org.ovirt.engine.core.common.job.Job in project ovirt-engine by oVirt.

the class RunVmCommand method createContextForRunStatelessVm.

private CommandContext createContextForRunStatelessVm() {
    Step step = getExecutionContext().getStep();
    if (step == null) {
        return cloneContextAndDetachFromParent();
    }
    // Retrieve the job object and its steps as this the endSuccessfully stage of command execution -
    // at this is a new instance of the command is used
    // (comparing with the execution state) so all information on the job and steps should be retrieved.
    Job job = jobRepository.getJobWithSteps(step.getJobId());
    Step executingStep = job.getDirectStep(StepEnum.EXECUTING);
    // We would like to to set the run stateless step as substep of executing step
    setInternalExecution(true);
    ExecutionContext runStatelessVmCtx = new ExecutionContext();
    // The internal command should be monitored for tasks
    runStatelessVmCtx.setMonitored(true);
    Step runStatelessStep = executionHandler.addSubStep(getExecutionContext(), executingStep, StepEnum.RUN_STATELESS_VM, ExecutionMessageDirector.resolveStepMessage(StepEnum.RUN_STATELESS_VM, getVmValuesForMsgResolving()));
    // This is needed in order to end the job upon execution of the steps of the child command
    runStatelessVmCtx.setShouldEndJob(true);
    runStatelessVmCtx.setJob(job);
    // Since run stateless step involves invocation of command, we should set the run stateless vm step as
    // the "beginning step" of the child command.
    runStatelessVmCtx.setStep(runStatelessStep);
    return cloneContextAndDetachFromParent().withExecutionContext(runStatelessVmCtx);
}
Also used : ExecutionContext(org.ovirt.engine.core.bll.job.ExecutionContext) Step(org.ovirt.engine.core.common.job.Step) Job(org.ovirt.engine.core.common.job.Job)

Example 10 with Job

use of org.ovirt.engine.core.common.job.Job in project ovirt-engine by oVirt.

the class RunVmCommandBase method reexecuteCommand.

protected void reexecuteCommand() {
    // restore Validate value to false so Validate checks will run again
    getReturnValue().setValid(false);
    getParameters().setRerun(true);
    if (getExecutionContext() != null) {
        Job job = getExecutionContext().getJob();
        if (job != null) {
            // mark previous steps as fail
            jobRepository.closeCompletedJobSteps(job.getId(), JobExecutionStatus.FAILED);
        }
    }
    executeAction();
}
Also used : Job(org.ovirt.engine.core.common.job.Job)

Aggregations

Job (org.ovirt.engine.core.common.job.Job)35 Step (org.ovirt.engine.core.common.job.Step)7 Date (java.util.Date)6 Guid (org.ovirt.engine.core.compat.Guid)6 JobExecutionStatus (org.ovirt.engine.core.common.job.JobExecutionStatus)4 ArrayList (java.util.ArrayList)3 IdQueryParameters (org.ovirt.engine.core.common.queries.IdQueryParameters)3 QueryReturnValue (org.ovirt.engine.core.common.queries.QueryReturnValue)3 Inject (com.google.inject.Inject)2 Collection (java.util.Collection)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Map (java.util.Map)2 Test (org.junit.Test)2 VdcObjectType (org.ovirt.engine.core.common.VdcObjectType)2 GetJobsByOffsetQueryParameters (org.ovirt.engine.core.common.queries.GetJobsByOffsetQueryParameters)2 Event (org.ovirt.engine.ui.uicompat.Event)2 EventArgs (org.ovirt.engine.ui.uicompat.EventArgs)2 IEventListener (org.ovirt.engine.ui.uicompat.IEventListener)2 TaskModelProvider (org.ovirt.engine.ui.webadmin.uicommon.model.TaskModelProvider)2