Ramesh N has uploaded a new change for review. Change subject: engine:<WIP>VDS Command for Start Gluster volume remove brick ......................................................................
engine:<WIP>VDS Command for Start Gluster volume remove brick VDS command to start the remove brick operation on cluster volume. If force option is set to true then it will remove the brick from volume without migrating the data. If force option is not present, then it first migrates all the data from the big being removed to other bick. Since it is a long runing process, gluster runs this as an async task and returns the task ID after starting the async task. Change-Id: I6a4d829c43a209b51d14c952bac1ada77e40083b Signed-off-by: Ramesh Nachimuthu <rnach...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeRemoveBricksCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeRemoveBricksVDSParameters.java M backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CommitRemoveGlusterVolumeBrickVDSCommand.java D backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeRemoveBricksVDSCommand.java A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StartRemoveGlusterVolumeBrickVDSCommand.java A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StopRemoveGlusterVolumeBrickVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java M frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties 14 files changed, 170 insertions(+), 32 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/18881/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeRemoveBricksCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeRemoveBricksCommand.java index 4224391..6c69b59 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeRemoveBricksCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeRemoveBricksCommand.java @@ -77,9 +77,9 @@ : 0; VDSReturnValue returnValue = runVdsCommand( - VDSCommandType.GlusterVolumeRemoveBricks, + VDSCommandType.StartRemoveGlusterVolumeBrick, new GlusterVolumeRemoveBricksVDSParameters(upServer.getId(), - getGlusterVolumeName(), bricks, replicaCount)); + getGlusterVolumeName(), bricks, replicaCount, true)); setSucceeded(returnValue.getSucceeded()); if (getSucceeded()) { removeBricksFromVolumeInDb(bricks); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java index f87e55a..ce92e3b 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java @@ -363,6 +363,9 @@ GlusterVolumeOptionInfoFailed(4154), GlusterVolumeResetOptionsFailed(4155), GlusterVolumeRemoveBricksFailed(4156), + GlusterVolumeRemoveBricksStartFailed(4140), + GlusterVolumeRemoveBricksStopFailed(4150), + GlusterVolumeRemoveBricksCommitFailed(4153), GlusterVolumeStatusFailed(4157), GlusterVolumeProfileStartFailed(4158), GlusterVolumeProfileStopFailed(4159), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java index 9c99052..2aa45bd 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java @@ -125,7 +125,9 @@ StopGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"), DeleteGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"), GetGlusterVolumeOptionsInfo("org.ovirt.engine.core.vdsbroker.gluster"), - GlusterVolumeRemoveBricks("org.ovirt.engine.core.vdsbroker.gluster"), + StartRemoveGlusterVolumeBrick("org.ovirt.engine.core.vdsbroker.gluster"), + StopRemoveGlusterVolumeBrick("org.ovirt.engine.core.vdsbroker.gluster"), + CommitRemoveGlusterVolumeBrick("org.ovirt.engine.core.vdsbroker.gluster"), StartRebalanceGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"), AddBricksToGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"), ReplaceGlusterVolumeBrick("org.ovirt.engine.core.vdsbroker.gluster"), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeRemoveBricksVDSParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeRemoveBricksVDSParameters.java index c5cb90a..24f462b 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeRemoveBricksVDSParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeRemoveBricksVDSParameters.java @@ -16,14 +16,16 @@ private List<GlusterBrickEntity> bricks; private int replicaCount; + private boolean forceRemove; public GlusterVolumeRemoveBricksVDSParameters(Guid serverId, String volumeName, List<GlusterBrickEntity> bricks, - int replicaCount) { + int replicaCount, boolean forceRemove) { super(serverId, volumeName); this.bricks = bricks; this.replicaCount = replicaCount; + this.forceRemove = forceRemove; } public List<GlusterBrickEntity> getBricks() { @@ -46,4 +48,12 @@ return replicaCount; } + public boolean isForceRemove() { + return forceRemove; + } + + public void setForceRemove(boolean forceRemove) { + this.forceRemove = forceRemove; + } + } diff --git a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties index 61c6b8f..b068d92 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -338,6 +338,9 @@ GlusterVolumeOptionInfoFailed=Failed to fetch Gluster Volume Option Info GlusterVolumeResetOptionsFailed=Gluster Volume Options Reset Failed GlusterVolumeRemoveBricksFailed=Gluster Volume Remove Bricks Failed +GlusterVolumeRemoveBricksStartFailed= Failed to start remove Gluster Volume Brick +GlusterVolumeRemoveBricksStopFailed=Failed to stop remove Gluster Volume Brick +GlusterVolumeRemoveBricksCommitFailed=Failed to commit remove Gluster Volume Brick operation GlusterVolumeProfileStartFailed=Gluster Volume Profile Start Failed GlusterVolumeProfileStopFailed=Gluster Volume Profile Stop Failed GlusterAddHostFailed=Gluster Server Add Failed diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CommitRemoveGlusterVolumeBrickVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CommitRemoveGlusterVolumeBrickVDSCommand.java new file mode 100644 index 0000000..f25f48d --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CommitRemoveGlusterVolumeBrickVDSCommand.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeRemoveBricksVDSParameters; + +public class CommitRemoveGlusterVolumeBrickVDSCommand<P extends GlusterVolumeRemoveBricksVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + public CommitRemoveGlusterVolumeBrickVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void ExecuteVdsBrokerCommand() { + status = getBroker().glusterVolumeRemoveBrickStop(getParameters().getVolumeName(), + getParameters().getBrickDirectories().toArray(new String[0]), + getParameters().getReplicaCount()); + + ProceedProxyReturnValue(); + } + +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeRemoveBricksVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeRemoveBricksVDSCommand.java deleted file mode 100644 index b75d17c..0000000 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeRemoveBricksVDSCommand.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.ovirt.engine.core.vdsbroker.gluster; - -import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeRemoveBricksVDSParameters; -import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; - -public class GlusterVolumeRemoveBricksVDSCommand<P extends GlusterVolumeRemoveBricksVDSParameters> extends AbstractGlusterBrokerCommand<P> { - - public GlusterVolumeRemoveBricksVDSCommand(P parameters) { - super(parameters); - } - - @Override - protected StatusForXmlRpc getReturnStatus() { - return status.mStatus; - } - - @Override - protected void ExecuteVdsBrokerCommand() { - status = - getBroker().glusterVolumeRemoveBrickForce(getParameters().getVolumeName(), - getParameters().getBrickDirectories().toArray(new String[0]), getParameters().getReplicaCount()); - - ProceedProxyReturnValue(); - } -} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StartRemoveGlusterVolumeBrickVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StartRemoveGlusterVolumeBrickVDSCommand.java new file mode 100644 index 0000000..d0eb955 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StartRemoveGlusterVolumeBrickVDSCommand.java @@ -0,0 +1,37 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask; +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeRemoveBricksVDSParameters; +import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; + +public class StartRemoveGlusterVolumeBrickVDSCommand<P extends GlusterVolumeRemoveBricksVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + private GlusterTaskInfoReturnForXmlRpc glusterTaskReturn; + private GlusterAsyncTask task; + + public StartRemoveGlusterVolumeBrickVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected StatusForXmlRpc getReturnStatus() { + return glusterTaskReturn.mStatus; + } + + @Override + protected void ExecuteVdsBrokerCommand() { + glusterTaskReturn = + getBroker().glusterVolumeRemoveBrickStart(getParameters().getVolumeName(), + getParameters().getBrickDirectories().toArray(new String[0]), + getParameters().getReplicaCount(), + getParameters().isForceRemove()); + task = glusterTaskReturn.getGlusterTask(); + setReturnValue(task); + ProceedProxyReturnValue(); + } + + @Override + public Object getReturnValue() { + return task; + } +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StopRemoveGlusterVolumeBrickVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StopRemoveGlusterVolumeBrickVDSCommand.java new file mode 100644 index 0000000..8a1dacd --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StopRemoveGlusterVolumeBrickVDSCommand.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeRemoveBricksVDSParameters; + +public class StopRemoveGlusterVolumeBrickVDSCommand<P extends GlusterVolumeRemoveBricksVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + public StopRemoveGlusterVolumeBrickVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void ExecuteVdsBrokerCommand() { + status = getBroker().glusterVolumeRemoveBrickCommit(getParameters().getVolumeName(), + getParameters().getBrickDirectories().toArray(new String[0]), + getParameters().getReplicaCount()); + + ProceedProxyReturnValue(); + } + +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java index f833940..5f23dbd 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java @@ -204,7 +204,18 @@ GlusterVolumeOptionsInfoReturnForXmlRpc glusterVolumeSetOptionsList(); - StatusOnlyReturnForXmlRpc glusterVolumeRemoveBrickForce(String volumeName, String[] brickList, int replicCount); + GlusterTaskInfoReturnForXmlRpc glusterVolumeRemoveBrickStart(String volumeName, + String[] brickList, + int replicCount, + Boolean forceRemove); + + StatusOnlyReturnForXmlRpc glusterVolumeRemoveBrickStop(String volumeName, + String[] brickList, + int replicCount); + + StatusOnlyReturnForXmlRpc glusterVolumeRemoveBrickCommit(String volumeName, + String[] brickList, + int replicCount); StatusOnlyReturnForXmlRpc glusterVolumeBrickAdd(String volumeName, String[] bricks, diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java index 6a04cb7..db99e64 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java @@ -189,6 +189,18 @@ String[] brickDirectories, int replicaCount); + public Map<String, Object> glusterVolumeRemoveBrickStart(String volumeName, + String[] brickDirectories, + int replicaCount); + + public Map<String, Object> glusterVolumeRemoveBrickStop(String volumeName, + String[] brickDirectories, + int replicaCount); + + public Map<String, Object> glusterVolumeRemoveBrickCommit(String volumeName, + String[] brickDirectories, + int replicaCount); + public Map<String, Object> glusterVolumeBrickAdd(String volumeName, String[] bricks, int replicaCount, diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java index e1b591e..d83d3cf 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java @@ -961,11 +961,44 @@ } @Override - public StatusOnlyReturnForXmlRpc glusterVolumeRemoveBrickForce(String volumeName, + public GlusterTaskInfoReturnForXmlRpc glusterVolumeRemoveBrickStart(String volumeName, + String[] brickDirectories, + int replicaCount, + Boolean forceRemove) { + try { + if (forceRemove) { + return new GlusterTaskInfoReturnForXmlRpc(vdsServer.glusterVolumeRemoveBrickForce(volumeName, + brickDirectories, + replicaCount)); + } else { + return new GlusterTaskInfoReturnForXmlRpc(vdsServer.glusterVolumeRemoveBrickStart(volumeName, + brickDirectories, + replicaCount)); + } + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override + public StatusOnlyReturnForXmlRpc glusterVolumeRemoveBrickStop(String volumeName, String[] brickDirectories, int replicaCount) { try { - return new StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeRemoveBrickForce(volumeName, + return new StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeRemoveBrickStop(volumeName, + brickDirectories, + replicaCount)); + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override + public StatusOnlyReturnForXmlRpc glusterVolumeRemoveBrickCommit(String volumeName, + String[] brickDirectories, + int replicaCount) { + try { + return new StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeRemoveBrickCommit(volumeName, brickDirectories, replicaCount)); } catch (UndeclaredThrowableException ute) { diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java index 5b84ff3..835ba24 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java @@ -700,6 +700,15 @@ @DefaultStringValue("Gluster Volume Remove Bricks Failed.") String GlusterVolumeRemoveBricksFailed(); + @DefaultStringValue("Failed to start remove Gluster Volume Brick.") + String GlusterVolumeRemoveBricksStartFailed(); + + @DefaultStringValue("Failed to stop remove Gluster Volume Brick.") + String GlusterVolumeRemoveBricksStopFailed(); + + @DefaultStringValue("Failed to commit remove Gluster Volume Brick operation.") + String GlusterVolumeRemoveBricksCommitFailed(); + @DefaultStringValue("Gluster Volume Add Brick Failed.") String AddBricksToGlusterVolumeFailed(); diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties index 9da0d77..d88945b 100644 --- a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties @@ -346,6 +346,9 @@ GlusterXmlErrorException=XML error GlusterVolumeDeleteFailed=Gluster Volume Delete Failed. GlusterVolumeRemoveBricksFailed=Gluster Volume Remove Bricks Failed. +GlusterVolumeRemoveBricksStartFailed= Failed to start remove Gluster Volume Brick +GlusterVolumeRemoveBricksStopFailed=Failed to stop remove Gluster Volume Brick +GlusterVolumeRemoveBricksCommitFailed=Failed to commit remove Gluster Volume Brick operation AddBricksToGlusterVolumeFailed=Gluster Volume Add Brick Failed. GlusterVolumeRebalanceStartFailed=Gluster Volume Rebalance Start Failed. GlusterVolumeReplaceBrickStartFailed=Gluster Volume Replace Brick Start Failed. -- To view, visit http://gerrit.ovirt.org/18881 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I6a4d829c43a209b51d14c952bac1ada77e40083b 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