Shubhendu Tripathi has uploaded a new change for review. Change subject: gluster: Refactored rebalance/remove-brick status queries ......................................................................
gluster: Refactored rebalance/remove-brick status queries Refactored the rebalance and remove bricks status queries and moved the common logic to a base class. Change-Id: I31f7d438641ad05874542fd57b723a0d482a68e4 Signed-off-by: Shubhendu Tripathi <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRebalanceStatusQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRemoveBricksStatusQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterAsyncTaskStatusQueryBase.java 3 files changed, 91 insertions(+), 130 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/21448/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 abbac0d..a9ae98b 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 @@ -1,92 +1,29 @@ package org.ovirt.engine.core.bll.gluster; -import java.util.List; - -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; -import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusEntity; -import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost; -import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.common.job.Step; import org.ovirt.engine.core.common.queries.gluster.GlusterVolumeQueriesParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; 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.dao.StepDao; -import org.ovirt.engine.core.dao.gluster.GlusterServerDao; -public class GetGlusterVolumeRebalanceStatusQuery<P extends GlusterVolumeQueriesParameters> extends GlusterQueriesCommandBase<P> { - - private Guid clusterId; - private GlusterVolumeEntity volume; +public class GetGlusterVolumeRebalanceStatusQuery<P extends GlusterVolumeQueriesParameters> extends GlusterAsyncTaskStatusQueryBase<P> { public GetGlusterVolumeRebalanceStatusQuery(P parameters) { super(parameters); } @Override - protected void executeQueryCommand() { - clusterId = getParameters().getClusterId(); - Guid volumeId = getParameters().getVolumeId(); - - if (volumeId != null) { - volume = getGlusterVolumeDao().getById(volumeId); - if (volume == null) { - throw new RuntimeException(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_VOLUME_INVALID.toString()); - } - if (clusterId == null) { - clusterId = volume.getClusterId(); - } - - getQueryReturnValue().setReturnValue(fetchTaskStatusDetails()); - } - } - - private GlusterVolumeTaskStatusEntity fetchTaskStatusDetails() { + protected GlusterVolumeTaskStatusEntity fetchTaskStatusDetails() { VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterVolumeRebalanceStatus, new GlusterVolumeVDSParameters(getUpServerId(clusterId), volume.getName())); // Set the volume re-balance start time - GlusterVolumeTaskStatusEntity entity = (GlusterVolumeTaskStatusEntity) returnValue.getReturnValue(); - GlusterAsyncTask asyncTask = volume.getAsyncTask(); - if (asyncTask != null) { - Guid taskId = asyncTask.getTaskId(); - if (taskId != null) { - List<Step> stepsList = getStepDao().getStepsByExternalId(taskId); - if (stepsList != null && !stepsList.isEmpty()) { - entity.setStartTime(stepsList.get(0).getStartTime()); - } - } - } + GlusterVolumeTaskStatusEntity entity = setStartTime((GlusterVolumeTaskStatusEntity) returnValue.getReturnValue()); // Set the host ip in status details updateHostIP(entity); return entity.sort(); - } - - private void updateHostIP(GlusterVolumeTaskStatusEntity taskStatus) { - for (GlusterVolumeTaskStatusForHost hostStatus : taskStatus.getHostwiseStatusDetails()) { - GlusterServer glusterServer = getGlusterServerDao().getByGlusterServerUuid(hostStatus.getHostUuid()); - if (glusterServer != null) { - VDS host = getVdsDao().get(glusterServer.getId()); - if (host != null) { - hostStatus.setHostName(host.getName()); - hostStatus.setHostId(host.getId()); - } - } - } - } - - public StepDao getStepDao() { - return getDbFacade().getStepDao(); - } - - public GlusterServerDao getGlusterServerDao() { - return getDbFacade().getGlusterServerDao(); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRemoveBricksStatusQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRemoveBricksStatusQuery.java index 7072da1..e8a4fbb 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRemoveBricksStatusQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetGlusterVolumeRemoveBricksStatusQuery.java @@ -1,51 +1,19 @@ package org.ovirt.engine.core.bll.gluster; -import java.util.List; - import org.ovirt.engine.core.common.action.gluster.GlusterVolumeRemoveBricksQueriesParameters; -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; -import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusEntity; -import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost; -import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.common.job.Step; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeRemoveBricksVDSParameters; -import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dao.StepDao; -import org.ovirt.engine.core.dao.gluster.GlusterServerDao; -public class GetGlusterVolumeRemoveBricksStatusQuery<P extends GlusterVolumeRemoveBricksQueriesParameters> extends GlusterQueriesCommandBase<P> { - - private Guid clusterId; - private GlusterVolumeEntity volume; +public class GetGlusterVolumeRemoveBricksStatusQuery<P extends GlusterVolumeRemoveBricksQueriesParameters> extends GlusterAsyncTaskStatusQueryBase<P> { public GetGlusterVolumeRemoveBricksStatusQuery(P params) { super(params); } @Override - public void executeQueryCommand() { - clusterId = getParameters().getClusterId(); - Guid volumeId = getParameters().getVolumeId(); - if (volumeId != null) { - volume = getGlusterVolumeDao().getById(volumeId); - if (volume == null) { - throw new RuntimeException(VdcBllMessages.GLUSTER_VOLUME_ID_INVALID.toString()); - } - } - - if (clusterId == null) { - clusterId = volume.getClusterId(); - } - - getQueryReturnValue().setReturnValue(fetchRemobeBricksStatusDetails()); - } - - private GlusterVolumeTaskStatusEntity fetchRemobeBricksStatusDetails() { + protected GlusterVolumeTaskStatusEntity fetchTaskStatusDetails() { VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterVolumeRemoveBricksStatus, new GlusterVolumeRemoveBricksVDSParameters(getUpServerId(clusterId), @@ -53,40 +21,12 @@ getParameters().getBricks(), volume.getReplicaCount())); - // Set the volume re-balance start time - GlusterVolumeTaskStatusEntity entity = (GlusterVolumeTaskStatusEntity) returnValue.getReturnValue(); - GlusterAsyncTask asyncTask = volume.getAsyncTask(); - if (asyncTask != null && asyncTask.getTaskId() != null) { - List<Step> stepsList = getStepDao().getStepsByExternalId(asyncTask.getTaskId()); - if (stepsList != null && !stepsList.isEmpty()) { - entity.setStartTime(stepsList.get(0).getStartTime()); - } - } + // Set the volume remove bricks start time + GlusterVolumeTaskStatusEntity entity = setStartTime((GlusterVolumeTaskStatusEntity) returnValue.getReturnValue()); // Set the host ip in status details updateHostIP(entity); return entity.sort(); - } - - private void updateHostIP(GlusterVolumeTaskStatusEntity taskStatus) { - for (GlusterVolumeTaskStatusForHost hostStatus : taskStatus.getHostwiseStatusDetails()) { - GlusterServer glusterServer = getGlusterServerDao().getByGlusterServerUuid(hostStatus.getHostUuid()); - if (glusterServer != null) { - VDS host = getVdsDao().get(glusterServer.getId()); - if (host != null) { - hostStatus.setHostName(host.getName()); - hostStatus.setHostId(host.getId()); - } - } - } - } - - public StepDao getStepDao() { - return getDbFacade().getStepDao(); - } - - public GlusterServerDao getGlusterServerDao() { - return getDbFacade().getGlusterServerDao(); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterAsyncTaskStatusQueryBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterAsyncTaskStatusQueryBase.java new file mode 100644 index 0000000..e5449de --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterAsyncTaskStatusQueryBase.java @@ -0,0 +1,84 @@ +package org.ovirt.engine.core.bll.gluster; + +import java.util.List; + +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; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusForHost; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.job.Step; +import org.ovirt.engine.core.common.queries.gluster.GlusterVolumeQueriesParameters; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.StepDao; +import org.ovirt.engine.core.dao.gluster.GlusterServerDao; + +public abstract class GlusterAsyncTaskStatusQueryBase<P extends GlusterVolumeQueriesParameters> extends GlusterQueriesCommandBase<P> { + protected Guid clusterId; + protected GlusterVolumeEntity volume; + + public GlusterAsyncTaskStatusQueryBase(P params) { + super(params); + } + + @Override + public void executeQueryCommand() { + clusterId = getParameters().getClusterId(); + Guid volumeId = getParameters().getVolumeId(); + if (volumeId != null) { + volume = getGlusterVolumeDao().getById(volumeId); + if (volume == null) { + throw new RuntimeException(VdcBllMessages.GLUSTER_VOLUME_ID_INVALID.toString()); + } + } + + if (clusterId == null) { + clusterId = volume.getClusterId(); + } + + getQueryReturnValue().setReturnValue(fetchTaskStatusDetails()); + } + + protected abstract GlusterVolumeTaskStatusEntity fetchTaskStatusDetails(); + + public StepDao getStepDao() { + return getDbFacade().getStepDao(); + } + + public GlusterServerDao getGlusterServerDao() { + return getDbFacade().getGlusterServerDao(); + } + + protected void updateHostIP(GlusterVolumeTaskStatusEntity taskStatus) { + if (taskStatus != null) { + for (GlusterVolumeTaskStatusForHost hostStatus : taskStatus.getHostwiseStatusDetails()) { + GlusterServer glusterServer = getGlusterServerDao().getByGlusterServerUuid(hostStatus.getHostUuid()); + if (glusterServer != null) { + VDS host = getVdsDao().get(glusterServer.getId()); + if (host != null) { + hostStatus.setHostName(host.getName()); + hostStatus.setHostId(host.getId()); + } + } + } + } + } + + protected GlusterVolumeTaskStatusEntity setStartTime(GlusterVolumeTaskStatusEntity status) { + if (status == null) { + return null; + } + + GlusterAsyncTask asyncTask = volume.getAsyncTask(); + if (asyncTask != null && asyncTask.getTaskId() != null) { + List<Step> stepsList = getStepDao().getStepsByExternalId(asyncTask.getTaskId()); + if (stepsList != null && !stepsList.isEmpty()) { + status.setStartTime(stepsList.get(0).getStartTime()); + } + } + + return status; + } +} -- To view, visit http://gerrit.ovirt.org/21448 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I31f7d438641ad05874542fd57b723a0d482a68e4 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shubhendu Tripathi <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
