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

Reply via email to