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