Ramesh N has uploaded a new change for review.

Change subject: gluster: vdc query for gettting un used bricks
......................................................................

gluster: vdc query for gettting un used bricks

 Add new VDC Query GetUnUsedBricks to get all
unused bricks from the node.

Change-Id: Ida1563018939aa7e8160045c8e320ddab083c1fc
Signed-off-by: Ramesh Nachimuthu <rnach...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetUnusedBricksQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
3 files changed, 63 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/36039/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetUnusedBricksQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetUnusedBricksQuery.java
new file mode 100644
index 0000000..15e1f41
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GetUnusedBricksQuery.java
@@ -0,0 +1,61 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.ovirt.engine.core.bll.Backend;
+import org.ovirt.engine.core.bll.QueriesCommandBase;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.StorageDevice;
+import org.ovirt.engine.core.common.interfaces.VDSBrokerFrontend;
+import org.ovirt.engine.core.common.queries.VdsIdParametersBase;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+
+public class GetUnusedBricksQuery<P extends VdsIdParametersBase> extends 
QueriesCommandBase<P> {
+
+    public GetUnusedBricksQuery(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeQueryCommand() {
+        // Get Device List
+        VDSBrokerFrontend vdsBrokerFrontend = getVdsBroker();
+        VdsIdVDSCommandParametersBase parameters = new 
VdsIdVDSCommandParametersBase(
+                getParameters().getVdsId());
+        List<StorageDevice> storageDevices = (List<StorageDevice>) 
vdsBrokerFrontend.RunVdsCommand(
+                VDSCommandType.GetStorageDeviceList, 
parameters).getReturnValue();
+
+        getQueryReturnValue().setReturnValue(getUnsedBricks(storageDevices));
+
+    }
+
+    private List<StorageDevice> getUnsedBricks(List<StorageDevice> 
bricksFromServer) {
+        List<GlusterBrickEntity> usedBricks =
+                DbFacade.getInstance()
+                        .getGlusterBrickDao()
+                        
.getGlusterVolumeBricksByServerId(getParameters().getVdsId());
+        List<StorageDevice> freeBricks = new ArrayList<StorageDevice>();
+        Set<String> bricksDir = new HashSet<String>();
+        for (GlusterBrickEntity brick : usedBricks) {
+            bricksDir.add(brick.getBrickDirectory());
+        }
+        for (StorageDevice brick : bricksFromServer) {
+            if (brick.getMountPoint() != null && 
!brick.getMountPoint().isEmpty()
+                    && brick.getMountPoint().startsWith("/bricks/") && 
!bricksDir.contains(brick.getMountPoint())) {
+                freeBricks.add(brick);
+            }
+        }
+
+        return freeBricks;
+    }
+
+    protected VDSBrokerFrontend getVdsBroker() {
+        return Backend.getInstance().getResourceManager();
+    }
+}
+
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
index 0c0eebc..6fe2bd0 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/StorageDevice.java
@@ -100,7 +100,7 @@
 
     @Override
     public Object getQueryableId() {
-        return this.getUuid();
+        return this.getName();
     }
 
     @Override
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
index b7b9514..7cfc23e 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
@@ -336,6 +336,7 @@
     GetGlusterVolumeRemoveBricksStatus,
     GetGlusterVolumeByTaskId,
     GetStorageDevices,
+    GetUnusedBricks,
 
     GetDefaultConfigurationVersion(VdcQueryAuthType.User),
     OsRepository(VdcQueryAuthType.User),


-- 
To view, visit http://gerrit.ovirt.org/36039
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ida1563018939aa7e8160045c8e320ddab083c1fc
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ramesh N <rnach...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to