Shubhendu Tripathi has uploaded a new change for review. Change subject: gluster: Update task status while querying rebalance status ......................................................................
gluster: Update task status while querying rebalance status Modified to update the task status in engine DB everytime a rebalance status query is fired. This makes sure the details in the DB are up-to-date with query status. Change-Id: I375c0156fe60bd9473889abce51ad93366bc9d40 Signed-off-by: Shubhendu Tripathi <shtri...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQueryTest.java 2 files changed, 40 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/69/21069/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java index 9452285..cc82a36 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java @@ -2,6 +2,9 @@ import java.util.List; +import org.ovirt.engine.core.bll.gluster.tasks.GlusterTaskUtils; +import org.ovirt.engine.core.bll.job.JobRepository; +import org.ovirt.engine.core.bll.job.JobRepositoryFactory; import org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.gluster.GlusterServer; @@ -15,8 +18,11 @@ import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeVDSParameters; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.StepDao; +import org.ovirt.engine.core.dao.VdsGroupDAO; import org.ovirt.engine.core.dao.gluster.GlusterServerDao; +import org.ovirt.engine.core.dao.gluster.GlusterVolumeDao; public class GetGlusterVolumeRebalanceStatusQuery<P extends GlusterVolumeQueriesParameters> extends GlusterQueriesCommandBase<P> { @@ -60,6 +66,16 @@ if (stepsList != null && !stepsList.isEmpty()) { entity.setStartTime(stepsList.get(0).getStartTime()); } + + // Update the latest status details for task steps. + // This is required to make sure the engine details are up-to-date + asyncTask.setStatus(entity.getStatusSummary().getStatus()); + getGlusterTaskUtils().updateSteps(getClusterDao().get(clusterId), asyncTask, stepsList); + + // release the volume lock if the task is completed + if (getGlusterTaskUtils().hasTaskCompleted(asyncTask)) { + getGlusterTaskUtils().releaseLock(volume.getId()); + } } } @@ -89,4 +105,20 @@ public GlusterServerDao getGlusterServerDao() { return getDbFacade().getGlusterServerDao(); } + + public JobRepository getJobRepository() { + return JobRepositoryFactory.getJobRepository(); + } + + public GlusterVolumeDao getVolumeDao() { + return getDbFacade().getGlusterVolumeDao(); + } + + public GlusterTaskUtils getGlusterTaskUtils() { + return GlusterTaskUtils.getInstance(); + } + + public VdsGroupDAO getClusterDao() { + return DbFacade.getInstance().getVdsGroupDao(); + } } diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQueryTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQueryTest.java index f65b87d..21b6879 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQueryTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQueryTest.java @@ -17,6 +17,7 @@ import org.junit.Before; import org.junit.Test; import org.ovirt.engine.core.bll.AbstractQueryTest; +import org.ovirt.engine.core.bll.gluster.tasks.GlusterTaskUtils; import org.ovirt.engine.core.bll.utils.ClusterUtils; import org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask; import org.ovirt.engine.core.common.asynctasks.gluster.GlusterTaskType; @@ -38,6 +39,7 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.StepDao; import org.ovirt.engine.core.dao.VdsDAO; +import org.ovirt.engine.core.dao.VdsGroupDAO; import org.ovirt.engine.core.dao.gluster.GlusterServerDao; import org.ovirt.engine.core.dao.gluster.GlusterVolumeDao; @@ -53,10 +55,12 @@ private static final Guid SERVER_UUID_1 = Guid.newGuid(); private GlusterVolumeTaskStatusEntity expectedVolumeStatusDetails; private VdsDAO vdsDao; + private VdsGroupDAO clusterDao; private GlusterVolumeDao volumeDao; private GlusterServerDao glusterServerDao; private StepDao stepDao; private ClusterUtils clusterUtils; + private GlusterTaskUtils taskUtils; @Before @Override @@ -167,16 +171,20 @@ private void setupMock() { clusterUtils = mock(ClusterUtils.class); vdsDao = mock(VdsDAO.class); + clusterDao = mock(VdsGroupDAO.class); volumeDao = mock(GlusterVolumeDao.class); glusterServerDao = mock(GlusterServerDao.class); stepDao = mock(StepDao.class); + taskUtils = mock(GlusterTaskUtils.class); doReturn(vdsDao).when(getQuery()).getVdsDao(); + doReturn(clusterDao).when(getQuery()).getClusterDao(); doReturn(volumeDao).when(getQuery()).getGlusterVolumeDao(); doReturn(stepDao).when(getQuery()).getStepDao(); doReturn(glusterServerDao).when(getQuery()).getGlusterServerDao(); doReturn(CLUSTER_ID).when(getQueryParameters()).getClusterId(); doReturn(VOLUME_ID).when(getQueryParameters()).getVolumeId(); + doReturn(taskUtils).when(getQuery()).getGlusterTaskUtils(); when(volumeDao.getById(VOLUME_ID)).thenReturn(getVolume()); when(stepDao.getStepsByExternalId(any(Guid.class))).thenReturn(getStepsList()); when(vdsDao.get(any(Guid.class))).thenReturn(getVds(VDSStatus.Up)); -- To view, visit http://gerrit.ovirt.org/21069 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I375c0156fe60bd9473889abce51ad93366bc9d40 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shubhendu Tripathi <shtri...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches