Search in sources :

Example 51 with Step

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

the class GlusterAsyncTaskStatusQueryBase method setStartAndStopTime.

private GlusterVolumeTaskStatusEntity setStartAndStopTime(GlusterVolumeTaskStatusEntity status) {
    if (status == null) {
        return null;
    }
    GlusterAsyncTask asyncTask = volume.getAsyncTask();
    if (asyncTask != null && asyncTask.getTaskId() != null) {
        List<Step> stepsList = stepDao.getStepsByExternalId(asyncTask.getTaskId());
        if (stepsList != null && !stepsList.isEmpty()) {
            status.setStartTime(stepsList.get(0).getStartTime());
            status.setStopTime(stepsList.get(0).getEndTime());
        }
    }
    return status;
}
Also used : GlusterAsyncTask(org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask) Step(org.ovirt.engine.core.common.job.Step)

Example 52 with Step

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

the class GlusterAsyncTaskStatusQueryBase method updateLatestStatus.

private void updateLatestStatus(GlusterVolumeTaskStatusEntity status) {
    GlusterAsyncTask asyncTask = volume.getAsyncTask();
    if (asyncTask != null && asyncTask.getTaskId() != null) {
        GlusterTaskParameters taskParameters = new GlusterTaskParameters();
        taskParameters.setVolumeName(volume.getName());
        asyncTask.setTaskParameters(taskParameters);
        List<Step> stepsList = stepDao.getStepsByExternalId(asyncTask.getTaskId());
        // if step has already ended, do not update status.
        if (stepsList != null && !stepsList.isEmpty() && stepsList.get(0).getEndTime() != null) {
            asyncTask.setStatus(status.getStatusSummary().getStatus());
            asyncTask.setMessage(glusterTaskUtils.getSummaryMessage(status.getStatusSummary()));
            glusterTaskUtils.updateSteps(clusterDao.get(clusterId), asyncTask, stepsList);
            // release the volume lock if the task is completed
            if (glusterTaskUtils.hasTaskCompleted(asyncTask)) {
                glusterTaskUtils.releaseLock(volume.getId());
            }
        }
    }
}
Also used : GlusterTaskParameters(org.ovirt.engine.core.common.asynctasks.gluster.GlusterTaskParameters) GlusterAsyncTask(org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask) Step(org.ovirt.engine.core.common.job.Step)

Aggregations

Step (org.ovirt.engine.core.common.job.Step)52 ExecutionContext (org.ovirt.engine.core.bll.job.ExecutionContext)14 Guid (org.ovirt.engine.core.compat.Guid)12 HashMap (java.util.HashMap)8 Job (org.ovirt.engine.core.common.job.Job)8 Date (java.util.Date)7 Test (org.junit.Test)6 CommandContext (org.ovirt.engine.core.bll.context.CommandContext)6 ArrayList (java.util.ArrayList)5 JobExecutionStatus (org.ovirt.engine.core.common.job.JobExecutionStatus)5 List (java.util.List)4 VdcObjectType (org.ovirt.engine.core.common.VdcObjectType)4 GlusterAsyncTask (org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask)4 StepSubjectEntity (org.ovirt.engine.core.common.job.StepSubjectEntity)4 Map (java.util.Map)3 StepEnum (org.ovirt.engine.core.common.job.StepEnum)3 Collections (java.util.Collections)2 HashSet (java.util.HashSet)2 Set (java.util.Set)2 Inject (javax.inject.Inject)2