Shubhendu Tripathi has uploaded a new change for review.

Change subject: gluster: BLL Cmd for remove brick asycn task
......................................................................

gluster: BLL Cmd for remove brick asycn task

BLL Cmd for remove brick asycn task

Change-Id: If05f54aa86bcc8ceb10fd2925a6e1fce8e905b6a
Signed-off-by: Shubhendu Tripathi <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommand.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommandTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/gluster/GlusterTaskType.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/errors/VdcBllMessages.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/StepEnum.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
8 files changed, 346 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/51/19051/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommand.java
new file mode 100644
index 0000000..8c3a3ad
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommand.java
@@ -0,0 +1,87 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
+import org.ovirt.engine.core.bll.interfaces.BackendInternal;
+import org.ovirt.engine.core.common.AuditLogType;
+import 
org.ovirt.engine.core.common.action.gluster.GlusterVolumeRemoveBricksParameters;
+import org.ovirt.engine.core.common.asynctasks.gluster.GlusterTaskType;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.common.job.JobExecutionStatus;
+import org.ovirt.engine.core.common.job.StepEnum;
+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;
+
+/**
+ * BLL command to stop remove brick asynchronous task started on a gluster 
volume
+ */
+
+@NonTransactiveCommandAttribute
+public class StopRemoveGlusterVolumeBricksCommand extends 
GlusterAsyncCommandBase<GlusterVolumeRemoveBricksParameters> {
+
+    public 
StopRemoveGlusterVolumeBricksCommand(GlusterVolumeRemoveBricksParameters 
params) {
+        super(params);
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE_BRICK_STOP);
+        super.setActionMessageParameters();
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        GlusterVolumeEntity volume = getGlusterVolume();
+
+        if (!super.canDoAction()) {
+            return false;
+        }
+
+        if (volume.getAsyncTask() == null || volume.getAsyncTask().getType() 
!= GlusterTaskType.REMOVE_BRICK
+                || volume.getAsyncTask().getStatus() != 
JobExecutionStatus.STARTED) {
+            return 
failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_VOLUME_REMOVE_BRICK_NOT_STARTED);
+        }
+
+        return true;
+    }
+
+    @Override
+    protected StepEnum getStepType() {
+        return StepEnum.REMOVING_BRICK;
+    }
+
+    @Override
+    protected void executeCommand() {
+        GlusterVolumeEntity volume = getGlusterVolume();
+        VDSReturnValue returnValue =
+                runVdsCommand(VDSCommandType.StopRemoveGlusterVolumeBricks,
+                        new 
GlusterVolumeRemoveBricksVDSParameters(getUpServer().getId(),
+                                volume.getName(),
+                                volume.getBricks(),
+                                volume.getReplicaCount()));
+        setSucceeded(returnValue.getSucceeded());
+        if (!getSucceeded()) {
+            handleVdsError(AuditLogType.GLUSTER_VOLUME_REMOVE_BRICKS_FAILED, 
returnValue.getVdsError().getMessage());
+            return;
+        }
+
+        endStepJob();
+        releaseVolumeLock();
+        getReturnValue().setActionReturnValue(returnValue.getReturnValue());
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        if(getSucceeded()) {
+            return AuditLogType.GLUSTER_VOLUME_REMOVE_BRICKS_STOPPED;
+        } else {
+            return AuditLogType.GLUSTER_VOLUME_REMOVE_BRICKS_STOP_FAILED;
+        }
+    }
+
+    @Override
+    public BackendInternal getBackend() {
+        return super.getBackend();
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommandTest.java
new file mode 100644
index 0000000..0f805d9
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StopRemoveGlusterVolumeBricksCommandTest.java
@@ -0,0 +1,251 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentMatcher;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.ovirt.engine.core.bll.interfaces.BackendInternal;
+import org.ovirt.engine.core.common.AuditLogType;
+import 
org.ovirt.engine.core.common.action.gluster.GlusterVolumeRemoveBricksParameters;
+import org.ovirt.engine.core.common.asynctasks.gluster.GlusterAsyncTask;
+import org.ovirt.engine.core.common.asynctasks.gluster.GlusterTaskType;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.gluster.AccessProtocol;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType;
+import org.ovirt.engine.core.common.businessentities.gluster.TransportType;
+import org.ovirt.engine.core.common.errors.VDSError;
+import org.ovirt.engine.core.common.errors.VdcBllErrors;
+import org.ovirt.engine.core.common.interfaces.VDSBrokerFrontend;
+import org.ovirt.engine.core.common.job.JobExecutionStatus;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSParametersBase;
+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.gluster.GlusterVolumeDao;
+
+@RunWith(MockitoJUnitRunner.class)
+public class StopRemoveGlusterVolumeBricksCommandTest {
+
+    @Mock
+    GlusterVolumeDao volumeDao;
+    @Mock
+    protected BackendInternal backend;
+    @Mock
+    protected VDSBrokerFrontend vdsBrokerFrontend;
+
+    private final Guid volumeWithRemoveBricksTask = new 
Guid("8bc6f108-c0ef-43ab-ba20-ec41107220f5");
+    private final Guid volumeWithRemoveBricksTaskCompleted = new 
Guid("b2cb2f73-fab3-4a42-93f0-d5e4c069a43e");
+    private final Guid volumeWithoutAsyncTask = new 
Guid("000000000000-0000-0000-0000-00000003");
+    private final Guid volumeWithoutRemoveBricksTask = new 
Guid("000000000000-0000-0000-0000-00000004");
+    private final Guid CLUSTER_ID = new 
Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1");
+
+    /**
+     * The command under test.
+     */
+    private StopRemoveGlusterVolumeBricksCommand cmd;
+
+    private void prepareMocks(StopRemoveGlusterVolumeBricksCommand command) {
+        doReturn(volumeDao).when(command).getGlusterVolumeDao();
+        doReturn(getVds(VDSStatus.Up)).when(command).getUpServer();
+        
doReturn(getVolumeWithRemoveBricksTask(volumeWithRemoveBricksTask)).when(volumeDao)
+                .getById(volumeWithRemoveBricksTask);
+        
doReturn(getVolumeWithRemoveBricksTaskCompleted(volumeWithRemoveBricksTaskCompleted)).when(volumeDao)
+                .getById(volumeWithRemoveBricksTaskCompleted);
+        
doReturn(getVolume(volumeWithoutAsyncTask)).when(volumeDao).getById(volumeWithoutAsyncTask);
+        
doReturn(getvolumeWithoutRemoveBricksTask(volumeWithoutRemoveBricksTask)).when(volumeDao)
+                .getById(volumeWithoutRemoveBricksTask);
+        doReturn(null).when(volumeDao).getById(null);
+    }
+
+    private Object getvolumeWithoutRemoveBricksTask(Guid volumeId) {
+        GlusterVolumeEntity volume = getVolumeWithRemoveBricksTask(volumeId);
+        volume.getAsyncTask().setType(null);
+        return volume;
+    }
+
+    private Object getVolumeWithRemoveBricksTaskCompleted(Guid volumeId) {
+        GlusterVolumeEntity volume = getVolumeWithRemoveBricksTask(volumeId);
+        volume.getAsyncTask().setStatus(JobExecutionStatus.FINISHED);
+        return volume;
+    }
+
+    private GlusterVolumeEntity getVolumeWithRemoveBricksTask(Guid volumeId) {
+        GlusterVolumeEntity volume = getVolume(volumeId);
+        GlusterAsyncTask asyncTask = new GlusterAsyncTask();
+        asyncTask.setStatus(JobExecutionStatus.STARTED);
+        asyncTask.setType(GlusterTaskType.REMOVE_BRICK);
+        volume.setAsyncTask(asyncTask);
+        return volume;
+    }
+
+    private VDS getVds(VDSStatus status) {
+        VDS vds = new VDS();
+        vds.setId(Guid.newGuid());
+        vds.setVdsName("gfs1");
+        vds.setVdsGroupId(CLUSTER_ID);
+        vds.setStatus(status);
+        return vds;
+    }
+
+    private GlusterVolumeEntity getVolume(Guid id) {
+        GlusterVolumeEntity volumeEntity = new GlusterVolumeEntity();
+        volumeEntity.setId(id);
+        volumeEntity.setName("test-vol");
+        volumeEntity.addAccessProtocol(AccessProtocol.GLUSTER);
+        volumeEntity.addTransportType(TransportType.TCP);
+        volumeEntity.setStatus(GlusterStatus.UP);
+        volumeEntity.setBricks(getBricks(id, 2));
+        volumeEntity.setVolumeType(GlusterVolumeType.DISTRIBUTE);
+        volumeEntity.setClusterId(CLUSTER_ID);
+        return volumeEntity;
+    }
+
+    private List<GlusterBrickEntity> getBricks(Guid volumeId, int n) {
+        List<GlusterBrickEntity> bricks = new ArrayList<GlusterBrickEntity>();
+        GlusterBrickEntity brick;
+        for (Integer i = 0; i < n; i++) {
+            brick = new GlusterBrickEntity();
+            brick.setVolumeId(volumeId);
+            brick.setBrickDirectory("/tmp/test-vol" + i.toString());
+            brick.setStatus(GlusterStatus.UP);
+            bricks.add(brick);
+        }
+        return bricks;
+    }
+
+    private void mockBackend(boolean succeeded, VdcBllErrors errorCode) {
+        when(cmd.getBackend()).thenReturn(backend);
+        when(backend.getResourceManager()).thenReturn(vdsBrokerFrontend);
+        doNothing().when(cmd).endStepJob();
+        doNothing().when(cmd).releaseVolumeLock();
+
+        VDSReturnValue vdsReturnValue = new VDSReturnValue();
+        vdsReturnValue.setSucceeded(succeeded);
+        if (!succeeded) {
+            vdsReturnValue.setVdsError(new VDSError(errorCode, ""));
+        } else {
+            GlusterAsyncTask task = new GlusterAsyncTask();
+            task.setMessage("successful");
+            task.setStatus(JobExecutionStatus.FINISHED);
+            task.setStepId(Guid.newGuid());
+            task.setTaskId(Guid.newGuid());
+            task.setType(GlusterTaskType.REMOVE_BRICK);
+
+            vdsReturnValue.setReturnValue(task);
+        }
+
+        
when(vdsBrokerFrontend.RunVdsCommand(eq(VDSCommandType.StopRemoveGlusterVolumeBricks),
+                argThat(anyGlusterVolumeVDS()))).thenReturn(vdsReturnValue);
+    }
+
+    private ArgumentMatcher<VDSParametersBase> anyGlusterVolumeVDS() {
+        return new ArgumentMatcher<VDSParametersBase>() {
+
+            @Override
+            public boolean matches(Object argument) {
+                if (!(argument instanceof GlusterVolumeVDSParameters)) {
+                    return false;
+                }
+                return true;
+            }
+        };
+    }
+
+    @Test
+    public void testExecuteCommand() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithRemoveBricksTask,
+                        getBricks(volumeWithRemoveBricksTask, 2))));
+        prepareMocks(cmd);
+        mockBackend(true, null);
+        assertTrue(cmd.canDoAction());
+        cmd.executeCommand();
+
+        verify(cmd, times(1)).endStepJob();
+        verify(cmd, times(1)).releaseVolumeLock();
+        assertEquals(cmd.getAuditLogTypeValue(), 
AuditLogType.GLUSTER_VOLUME_REMOVE_BRICKS_STOPPED);
+    }
+
+    @Test
+    public void executeCommandWhenFailed() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithRemoveBricksTask,
+                        getBricks(volumeWithRemoveBricksTask, 2))));
+        prepareMocks(cmd);
+        mockBackend(false, VdcBllErrors.GlusterVolumeRemoveBricksStopFailed);
+        assertTrue(cmd.canDoAction());
+        cmd.executeCommand();
+
+        verify(cmd, never()).endStepJob();
+        verify(cmd, never()).releaseVolumeLock();
+        assertEquals(cmd.getAuditLogTypeValue(), 
AuditLogType.GLUSTER_VOLUME_REMOVE_BRICKS_STOP_FAILED);
+    }
+
+    @Test
+    public void canDoActionSucceedsOnVolumeWithRemoveBricksTask() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithRemoveBricksTask,
+                        getBricks(volumeWithRemoveBricksTask, 2))));
+
+        prepareMocks(cmd);
+        assertTrue(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnVolumeWithoutAsyncTask() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithoutAsyncTask,
+                        getBricks(volumeWithoutAsyncTask, 2))));
+        prepareMocks(cmd);
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnVolumeWithoutRemoveBricksTask() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithoutRemoveBricksTask,
+                        getBricks(volumeWithoutRemoveBricksTask, 2))));
+        prepareMocks(cmd);
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailesOnVolumeWithRemoveBricksTaskCompleted() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithRemoveBricksTaskCompleted,
+                        getBricks(volumeWithRemoveBricksTaskCompleted, 2))));
+        prepareMocks(cmd);
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNull() {
+        cmd =
+                spy(new StopRemoveGlusterVolumeBricksCommand(new 
GlusterVolumeRemoveBricksParameters(volumeWithRemoveBricksTaskCompleted,
+                        getBricks(volumeWithRemoveBricksTaskCompleted, 2))));
+        prepareMocks(cmd);
+        assertFalse(cmd.canDoAction());
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
index 3e3ecb7..ea83029 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
@@ -284,6 +284,8 @@
     GLUSTER_CLUSTER_SERVICE_STATUS_ADDED(4077),
     GLUSTER_VOLUME_REBALANCE_STOP(4078),
     GLUSTER_VOLUME_REBALANCE_STOP_FAILED(4079),
+    GLUSTER_VOLUME_REMOVE_BRICKS_STOPPED(4080),
+    GLUSTER_VOLUME_REMOVE_BRICKS_STOP_FAILED(4081),
 
     USER_FORCE_SELECTED_SPM(159),
     USER_VDS_RESTART(41),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/gluster/GlusterTaskType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/gluster/GlusterTaskType.java
index f2ec846..a6025df 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/gluster/GlusterTaskType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/gluster/GlusterTaskType.java
@@ -7,6 +7,7 @@
 
 public enum GlusterTaskType {
     REBALANCE_VOLUME(StepEnum.REBALANCING_VOLUME),
+    REMOVE_BRICK(StepEnum.REMOVING_BRICK),
     ;
 
     private StepEnum step;
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 6867883..e9de9c3 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
@@ -361,6 +361,7 @@
     GlusterVolumeDeleteFailed(4139),
     GlusterVolumeReplaceBrickStartFailed(4142),
     GlusterVolumeListFailed(4149),
+    GlusterVolumeRemoveBricksStopFailed(4150),
     GlusterVolumeOptionInfoFailed(4154),
     GlusterVolumeResetOptionsFailed(4155),
     GlusterVolumeRemoveBricksFailed(4156),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
index 9d78564..8088233 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
@@ -94,6 +94,7 @@
     VAR__ACTION__CLEAR,
     VAR__ACTION__FORCE_SELECT,
     VAR__ACTION__EXTEND_IMAGE_SIZE,
+    VAR__ACTION__REMOVE_BRICK_STOP,
 
     // Host statuses replacements
     VAR__HOST_STATUS__UP,
@@ -717,6 +718,7 @@
     
ACTION_TYPE_FAILED_GLUSTER_VOLUME_REBALANCE_NOT_STARTED(ErrorType.CONFLICT),
     ACTION_TYPE_FAILED_GLUSTER_VOLUME_IS_DOWN(ErrorType.CONFLICT),
     ACTION_TYPE_FAILED_NOT_A_GLUSTER_VOLUME_BRICK(ErrorType.BAD_PARAMETERS),
+    
ACTION_TYPE_FAILED_GLUSTER_VOLUME_REMOVE_BRICK_NOT_STARTED(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_REMOVE_ALL_BRICKS_FROM_VOLUME(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_REDUCE_REPLICA_COUNT_MORE_THAN_ONE(ErrorType.CONFLICT),
     
ACTION_TYPE_FAILED_CAN_NOT_INCREASE_REPLICA_COUNT_MORE_THAN_ONE(ErrorType.CONFLICT),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/StepEnum.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/StepEnum.java
index 6f9a6b5..a406a9a 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/StepEnum.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/job/StepEnum.java
@@ -23,6 +23,7 @@
     // Gluster
     SETTING_GLUSTER_OPTION,
     REBALANCING_VOLUME,
+    REMOVING_BRICK,
 
     /**
      * Maps VDSM tasks type to {@code StepEnum} so it can be resolvable as 
readable description
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 2714687..8e1fa2a 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
@@ -149,6 +149,7 @@
     RemoveGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"),
     ManageGlusterService("org.ovirt.engine.core.vdsbroker.gluster"),
     GetDiskAlignment("org.ovirt.engine.core.vdsbroker.vdsbroker"),
+    StopRemoveGlusterVolumeBricks("org.ovirt.engine.core.vdsbroker.gluster"),
     ;
 
     String packageName;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If05f54aa86bcc8ceb10fd2925a6e1fce8e905b6a
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