Selvasundaram has uploaded a new change for review.

Change subject: engine: Disable gluster hook command
......................................................................

engine: Disable gluster hook command

  Disable the gluster hook in all available up servers in the gluster cluster.
  - New bll command
  - New vds command

Change-Id: I6fb3e034013d2ceb3590a61efc9bc46b1c3f378f
Signed-off-by: Selvasundaram <sesub...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommand.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommandTest.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/VdcEventNotificationUtils.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.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/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
M 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
M 
backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
M backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/DisableGlusterHookVDSCommand.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/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
18 files changed, 296 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/11073/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommand.java
new file mode 100644
index 0000000..ad307a8
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommand.java
@@ -0,0 +1,117 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.bll.LockIdNameAttribute;
+import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
+import org.ovirt.engine.core.common.AuditLogType;
+import org.ovirt.engine.core.common.action.gluster.GlusterHookParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookStatus;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.VdcBllMessages;
+
+/**
+ * BLL command to disable Gluster hook
+ */
+@NonTransactiveCommandAttribute
+@LockIdNameAttribute(isWait = true)
+public class DisableGlusterHookCommand extends 
GlusterCommandBase<GlusterHookParameters> {
+    private static final long serialVersionUID = -664356063971083531L;
+
+    public DisableGlusterHookCommand(GlusterHookParameters params) {
+        super(params);
+        setVdsGroupId(params.getClusterId());
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        
addCanDoActionMessage(VdcBllMessages.VAR__ACTION__DISABLE_GLUSTER_HOOK);
+        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__GLUSTER_HOOK);
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        if (!super.canDoAction()) {
+            return false;
+        }
+        if (getParameters().getClusterId() == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_CLUSTER_IS_NOT_VALID);
+            return false;
+        }
+
+        if (getParameters().getHookName() == null || 
getParameters().getHookName().isEmpty()) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_HOOK_NAME_IS_REQUIRED);
+            return false;
+        }
+        if (getParameters().getGlusterCommand() == null || 
getParameters().getGlusterCommand().isEmpty()) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_COMMAND_IS_REQUIRED);
+            return false;
+        }
+        if (getParameters().getLevel() == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_HOOK_LEVEL_IS_REQUIRED);
+            return false;
+        }
+
+        if (getParameters().getLevel() == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_HOOK_LEVEL_IS_REQUIRED);
+            return false;
+        }
+
+        List<Guid> upServerIds = getUpServerIds();
+        if (upServerIds == null || upServerIds.isEmpty()) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_NO_UP_SERVER_FOUND);
+            return false;
+        }
+        return true;
+    }
+
+    public List<Guid> getUpServerIds() {
+        List<Guid> upServerIds = new ArrayList<Guid>();
+        for (VDS server : getAllUpServers(getParameters().getClusterId())) {
+            upServerIds.add(server.getId());
+        }
+        return upServerIds;
+    }
+
+    @Override
+    protected void executeCommand() {
+        List<String> errors = new ArrayList<String>();
+        for (Guid upServerId : getUpServerIds()) {
+            VDSReturnValue returnValue =
+                    runVdsCommand(
+                            VDSCommandType.DisableGlusterHook,
+                            new GlusterHookVDSParameters(upServerId,
+                                    getParameters().getGlusterCommand(),
+                                    getParameters().getLevel(),
+                                    getParameters().getHookName()));
+            if (!returnValue.getSucceeded()) {
+                errors.add(returnValue.getVdsError().getMessage());
+            }
+        }
+
+        if (!errors.isEmpty()) {
+            handleVdsErrors(AuditLogType.GLUSTER_HOOK_DISABLE_FAILED, errors);
+        }
+
+        if (getUpServerIds().size() > errors.size()) {
+            UpdateHookStatusInDb(getParameters().getClusterId(),
+                    getParameters().getHookName(), GlusterHookStatus.DISABLED);
+            setSucceeded(true);
+        }
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        if (getSucceeded()) {
+            return AuditLogType.GLUSTER_HOOK_DISABLE;
+        } else {
+            return errorType == null ? 
AuditLogType.GLUSTER_HOOK_DISABLE_FAILED : errorType;
+        }
+    }
+}
+
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommandTest.java
new file mode 100644
index 0000000..3d89024
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/DisableGlusterHookCommandTest.java
@@ -0,0 +1,118 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.ovirt.engine.core.common.action.gluster.GlusterHookParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookLevel;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.utils.RandomUtils;
+
+@RunWith(MockitoJUnitRunner.class)
+public class DisableGlusterHookCommandTest {
+
+    private static final Guid CLUSTER_ID = new 
Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1");
+    private static final String HOOK_NAME = "samba-config";
+    private static final String GLUSTER_COMMAND = "create";
+    private static final GlusterHookLevel LEVEL = GlusterHookLevel.POST;
+
+    /**
+     * The command under test.
+     */
+    @Mock
+    private DisableGlusterHookCommand cmd;
+
+    private List<Guid> getGlusterServers() {
+        List<Guid> servers = new ArrayList<Guid>();
+        
servers.add(Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e6"));
+        
servers.add(Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e7"));
+        
servers.add(Guid.createGuidFromString("23f6d691-5dfb-472b-86dc-9e1d2d3c18f3"));
+        
servers.add(Guid.createGuidFromString("2001751e-549b-4e7a-aff6-32d36856c125"));
+        return servers;
+    }
+
+    private VDS getUpServer() {
+        VDS vds = new VDS();
+        vds.setId(RandomUtils.instance().pickRandom(getGlusterServers()));
+        vds.setvds_name("gfs1");
+        vds.setvds_group_id(CLUSTER_ID);
+        vds.setstatus(VDSStatus.Up);
+        return vds;
+    }
+
+    private void prepareMocks(DisableGlusterHookCommand command, List<Guid> 
serverIds) {
+        doReturn(getUpServer()).when(command).getUpServer();
+        doReturn(serverIds).when(command).getUpServerIds();
+        doReturn(serverIds).when(command).getAllUpServers(CLUSTER_ID);
+    }
+
+    @Test
+    public void canDoActionSucceeds() {
+        cmd = spy(new DisableGlusterHookCommand(new 
GlusterHookParameters(CLUSTER_ID,
+                HOOK_NAME,
+                GLUSTER_COMMAND,
+                LEVEL)));
+        prepareMocks(cmd, getGlusterServers());
+        assertTrue(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNullCluster() {
+        cmd = spy(new DisableGlusterHookCommand(new GlusterHookParameters(null,
+                HOOK_NAME,
+                GLUSTER_COMMAND,
+                LEVEL)));
+        prepareMocks(cmd, getGlusterServers());
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNullHookName() {
+        cmd = spy(new DisableGlusterHookCommand(new 
GlusterHookParameters(CLUSTER_ID,
+                null,
+                GLUSTER_COMMAND,
+                LEVEL)));
+        prepareMocks(cmd, getGlusterServers());
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNullGlusterCommand() {
+        cmd = spy(new DisableGlusterHookCommand(new 
GlusterHookParameters(CLUSTER_ID,
+                HOOK_NAME,
+                null,
+                LEVEL)));
+        prepareMocks(cmd, getGlusterServers());
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNullLevel() {
+        cmd = spy(new DisableGlusterHookCommand(new 
GlusterHookParameters(CLUSTER_ID,
+                HOOK_NAME,
+                GLUSTER_COMMAND,
+                null)));
+        prepareMocks(cmd, getGlusterServers());
+        assertFalse(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNull() {
+        cmd = spy(new DisableGlusterHookCommand(new 
GlusterHookParameters(null, null, null, null)));
+        prepareMocks(cmd, null);
+        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 a5003e2..fd81de7 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
@@ -230,7 +230,8 @@
     GLUSTER_SERVER_REMOVE(4038),
     GLUSTER_HOOK_ENABLE(4039),
     GLUSTER_HOOK_ENABLE_FAILED(4040),
-
+    GLUSTER_HOOK_DISABLE(4041),
+    GLUSTER_HOOK_DISABLE_FAILED(4042),
 
     USER_VDS_RESTART(41),
     USER_FAILED_VDS_RESTART(107),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
index 96f3fc4..822edee 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
@@ -67,6 +67,8 @@
         AddEventNotificationEntry(EventNotificationEntity.GlusterVolume, 
AuditLogType.GLUSTER_VOLUME_PROFILE_STOP_FAILED);
         AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_ENABLE);
         AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_ENABLE_FAILED);
+        AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_DISABLE);
+        AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_DISABLE_FAILED);
 
         // DWH
         AddEventNotificationEntry(EventNotificationEntity.DWH, 
AuditLogType.DWH_STOPPED);
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
index eb66f52..e11af04 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
@@ -264,6 +264,7 @@
     StopGlusterVolumeProfile(1411, ActionGroup.MANIPULATE_GLUSTER_VOLUME, 
QuotaDependency.NONE),
     RemoveGlusterServer(1412, ActionGroup.DELETE_HOST, QuotaDependency.NONE),
     EnableGlusterHook(1413, ActionGroup.MANIPULATE_GLUSTER_HOOK, 
QuotaDependency.NONE),
+    DisableGlusterHook(1414, ActionGroup.MANIPULATE_GLUSTER_HOOK, 
QuotaDependency.NONE),
 
     // External events
     AddExternalEvent(1500, ActionGroup.INJECT_EXTERNAL_EVENTS, 
QuotaDependency.NONE),
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 dbdb786..2a468a7 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
@@ -350,7 +350,9 @@
     GlusterPeerListFailed(4407),
     GlusterHookFailed(4500),
     GlusterHookEnableFailed(4501),
+    GlusterHookDisableFailed(4502),
     GlusterHookAlreadyEnabled(4503),
+    GlusterHookAlreadyDisabled(4504),
     GlusterHookNotFound(4505),
     GlusterHookReadFailed(4506),
     GlusterHookUpdateFailed(4507),
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 cc65080..fccf174 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
@@ -143,6 +143,7 @@
     GlusterVolumesList("org.ovirt.engine.core.vdsbroker.gluster"),
     GetGlusterVolumeProfileInfo("org.ovirt.engine.core.vdsbroker.gluster"),
     EnableGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"),
+    DisableGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"),
     ;
 
     String packageName;
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
index 3666b22..0834b21 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
@@ -72,6 +72,7 @@
     VAR__ACTION__START_PROFILE,
     VAR__ACTION__STOP_PROFILE,
     VAR__ACTION__ENABLE_GLUSTER_HOOK,
+    VAR__ACTION__DISABLE_GLUSTER_HOOK,
 
     // Host statuses replacements
     VAR__HOST_STATUS__UP,
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
index 713a079..6ae0bb8 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -581,3 +581,5 @@
 GLUSTER_SERVER_REMOVED_FROM_CLI=Server ${VdsName} was removed from Cluster 
${VdsGroupName} from gluster CLI. Now removed in engine DB as well.
 GLUSTER_HOOK_ENABLE=Gluster Hook enabled on ${VdsName}.
 GLUSTER_HOOK_ENABLE_FAILED=Failed to enable Gluster Hook on ${VdsName}.
+GLUSTER_HOOK_DISABLE=Gluster Hook disabled on ${VdsName}.
+GLUSTER_HOOK_DISABLE_FAILED=Failed to disable Gluster Hook on ${VdsName}.
\ No newline at end of file
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
 
b/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
index a37a3d4..3889d6f 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
@@ -84,6 +84,7 @@
 job.AddBricksToGlusterVolume=Adding Bricks to Gluster Volume ${GlusterVolume}
 job.RemoveGlusterServer=Removing Gluster Server ${VDS}
 job.EnableGlusterHook=Enabling Gluster Hook on ${VDS}
+job.DisableGlusterHook=Disabling Gluster Hook on ${VDS}
 
 # Step types
 step.VALIDATING=Validating
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 95bfb8b..d0fbb30 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -334,6 +334,8 @@
 GlusterHookNotFound=Gluster hook not found
 GlusterHookReadFailed=Failed to read Gluster hook
 GlusterHookUpdateFailed=Failed to update gluster hook
+GlusterHookDisableFailed=Failed to disable gluster hook.
+GlusterHookAlreadyDisabled=Gluster Hook already disabled.
 CANT_RECONSTRUCT_WHEN_A_DOMAIN_IN_POOL_IS_LOCKED=Can't reconstruct the Master 
Domain when the Data Center contains Domains in Locked state.\nPlease wait 
until the operation for these Domains ends before trying to reconstruct the 
Master Domain again.
 NO_IMPLEMENTATION=Not implemented
 FailedToPlugDisk=Failed to hot-plug disk
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
index dcd02ca..15d3793 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java
@@ -43,6 +43,8 @@
         case GlusterHookNotFound:
         case GlusterHookReadFailed:
         case GlusterHookUpdateFailed:
+        case GlusterHookDisableFailed:
+        case GlusterHookAlreadyDisabled:
             // Capture error from gluster command and record failure
             getVDSReturnValue().setVdsError(new VDSError(returnStatus, 
getReturnStatus().mMessage));
             getVDSReturnValue().setSucceeded(false);
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/DisableGlusterHookVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/DisableGlusterHookVDSCommand.java
new file mode 100644
index 0000000..889ed6a
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/DisableGlusterHookVDSCommand.java
@@ -0,0 +1,21 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters;
+
+public class DisableGlusterHookVDSCommand<P extends GlusterHookVDSParameters> 
extends AbstractGlusterBrokerCommand<P> {
+
+    public DisableGlusterHookVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void ExecuteVdsBrokerCommand() {
+        status =
+                
getBroker().glusterHookDisable(getParameters().getGlusterCommand(),
+                        getParameters().getLevel().toString(),
+                        getParameters().getHookName());
+
+        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 03c774e..fd1987d 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
@@ -249,4 +249,6 @@
     GlusterVolumeProfileInfoReturnForXmlRpc glusterVolumeProfileInfo(Guid 
clusterId, String volumeName);
 
     StatusOnlyReturnForXmlRpc glusterHookEnable(String glusterCommand, String 
level, String hookName);
+
+    StatusOnlyReturnForXmlRpc glusterHookDisable(String glusterCommand, String 
level, String hookName);
 }
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 0afe382..88e5317 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
@@ -238,4 +238,6 @@
     public Map<String, Object> glusterVolumeProfileInfo(String volumeName);
 
     public Map<String, Object> glusterHookEnable(String glusterCommand, String 
level, String hookName);
+
+    public Map<String, Object> glusterHookDisable(String glusterCommand, 
String level, String hookName);
 }
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 c3754ca..741ca4e 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
@@ -1228,4 +1228,16 @@
         }
     }
 
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterHookDisable(String glusterCommand, 
String level, String hookName) {
+        try {
+
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterHookDisable(glusterCommand, level, hookName);
+            StatusOnlyReturnForXmlRpc wrapper = new 
StatusOnlyReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(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 3995233..3447fc2 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
@@ -722,4 +722,10 @@
     @DefaultStringValue("Failed to update gluster hook")
     String GlusterHookUpdateFailed();
 
+    @DefaultStringValue("Failed to disable gluster hook.")
+    String GlusterHookDisableFailed();
+
+    @DefaultStringValue("Gluster Hook already disabled.")
+    String GlusterHookAlreadyDisabled();
+
 }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
index 02e6d02..237308b 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
+++ 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
@@ -127,6 +127,8 @@
 AuditLogType___GLUSTER_VOLUME_PROFILE_STOP_FAILED=Failed to stop Gluster 
Volume Profile
 AuditLogType___GLUSTER_HOOK_ENABLE=Gluster Hook Enabled
 AuditLogType___GLUSTER_HOOK_ENABLE_FAILED=Failed to Enable Gluster Hook
+AuditLogType___GLUSTER_HOOK_DISABLE=Gluster Hook Disabled
+AuditLogType___GLUSTER_HOOK_DISABLE_FAILED=Failed to Disable Gluster Hook
 
 VdcActionType___ActivateVds=Activate Host
 VdcActionType___RecoveryStoragePool=Reinitialize Data Center


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

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

Reply via email to