Sahina Bose has uploaded a new change for review.

Change subject: gluster:Remove gluster hook from servers
......................................................................

gluster:Remove gluster hook from servers

This patch adds the BLL command to remove a gluster
hook from all servers in the cluster.
The hook will also be removed from the engine database.

Change-Id: Ic38f9edbc45a8e92b65a4a61c99b647cadb8feb3
Signed-off-by: Sahina Bose <sab...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterHookCommandTest.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommandTest.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/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
M 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
M 
backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
M 
frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
11 files changed, 313 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/53/15153/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommand.java
new file mode 100644
index 0000000..b10a819
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommand.java
@@ -0,0 +1,142 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Callable;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.SystemUtils;
+import org.ovirt.engine.core.bll.LockIdNameAttribute;
+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.GlusterHookManageParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.constants.gluster.GlusterConstants;
+import org.ovirt.engine.core.common.utils.Pair;
+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.dal.VdcBllMessages;
+import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil;
+
+/**
+ * BLL command to remove gluster hook from all servers in the cluster.
+ */
+@NonTransactiveCommandAttribute
+@LockIdNameAttribute(isWait = true)
+public class RemoveGlusterHookCommand extends 
GlusterHookCommandBase<GlusterHookManageParameters> {
+
+    protected List<String> errors = new ArrayList<String>();
+
+    public RemoveGlusterHookCommand(GlusterHookManageParameters params) {
+        super(params);
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        addCanDoActionMessage(VdcBllMessages.VAR__ACTION__REMOVE);
+        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__GLUSTER_HOOK);
+    }
+
+    @Override
+    protected BackendInternal getBackend() {
+        return super.getBackend();
+    }
+
+    private List<VDS> getServersInCluster() {
+        return getVdsDAO().getAllForVdsGroup(getGlusterHook().getClusterId());
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        if (!super.canDoAction()) {
+            return false;
+        }
+
+       for (VDS vds: getServersInCluster()) {
+           if (vds.getStatus() != VDSStatus.Up) {
+                setVdsName(vds.getName());
+                
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_SERVER_STATUS_NOT_UP);
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    @Override
+    protected void executeCommand() {
+
+        entity = getGlusterHook();
+        addCustomValue(GlusterConstants.HOOK_NAME, entity.getName());
+
+        List<Callable<Pair<VDS, VDSReturnValue>>> taskList = new 
ArrayList<Callable<Pair<VDS, VDSReturnValue>>>();
+        for (final VDS server : getServersInCluster()) {
+            taskList.add(new Callable<Pair<VDS, VDSReturnValue>>() {
+                @Override
+                public Pair<VDS, VDSReturnValue> call() throws Exception {
+                    VDSReturnValue returnValue;
+                        returnValue =
+                               runVdsCommand(
+                                       VDSCommandType.RemoveGlusterHook,
+                                       new 
GlusterHookVDSParameters(server.getId(),
+                                               entity.getGlusterCommand(),
+                                               entity.getStage(),
+                                               entity.getName()
+                                               ));
+                     return new Pair<VDS, VDSReturnValue>(server, returnValue);
+
+                }
+            });
+        }
+
+        setSucceeded(true);
+        if (!taskList.isEmpty()) {
+            List<Pair<VDS, VDSReturnValue>> pairResults = 
ThreadPoolUtil.invokeAll(taskList);
+            for (Pair<VDS, VDSReturnValue> pairResult : pairResults) {
+
+                VDSReturnValue retValue = pairResult.getSecond();
+                if (!retValue.getSucceeded() ) {
+                    errors.add(retValue.getVdsError().getMessage());
+                }
+            }
+        } else {
+            setSucceeded(false);
+        }
+
+        if (errors.size() > 0) {
+            setSucceeded(false);
+            errorType =  AuditLogType.GLUSTER_HOOK_REMOVE_FAILED;
+            handleVdsErrors(getAuditLogTypeValue(), errors);
+            addCustomValue(GlusterConstants.FAILURE_MESSAGE , 
StringUtils.join(errors, SystemUtils.LINE_SEPARATOR));
+        }
+
+        if (getSucceeded()) {
+            entity.removeMissingConflict();
+            getGlusterHooksDao().remove(entity.getId());
+        }
+
+    }
+
+
+    @Override
+    public Map<String, String> getJobMessageProperties() {
+        if (jobProperties == null) {
+            jobProperties = super.getJobMessageProperties();
+            if (getGlusterHook() != null) {
+                 jobProperties.put(GlusterConstants.HOOK_NAME, 
getGlusterHook().getName());
+            }
+        }
+
+        return jobProperties;
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        return getSucceeded() ? AuditLogType.GLUSTER_HOOK_REMOVED : errorType;
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterHookCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterHookCommandTest.java
index 1930d77..fcb5ef1 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterHookCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterHookCommandTest.java
@@ -33,7 +33,7 @@
 
 public class GlusterHookCommandTest<T extends GlusterHookCommandBase> {
 
-    private static final Guid[] GUIDS = 
{Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e6"),
+    protected static final Guid[] GUIDS = 
{Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e6"),
                                              
Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e7"),
                                              
Guid.createGuidFromString("23f6d691-5dfb-472b-86dc-9e1d2d3c18f3"),
                                              
Guid.createGuidFromString("2001751e-549b-4e7a-aff6-32d36856c125")};
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommandTest.java
new file mode 100644
index 0000000..9e552f8
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/RemoveGlusterHookCommandTest.java
@@ -0,0 +1,150 @@
+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.any;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Matchers.eq;
+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.common.AuditLogType;
+import org.ovirt.engine.core.common.action.gluster.GlusterHookManageParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
+import org.ovirt.engine.core.common.errors.VDSError;
+import org.ovirt.engine.core.common.errors.VdcBllErrors;
+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.GlusterHookVDSParameters;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.VdcBllMessages;
+import org.ovirt.engine.core.dao.VdsDAO;
+
+
+@RunWith(MockitoJUnitRunner.class)
+public class RemoveGlusterHookCommandTest extends 
GlusterHookCommandTest<RemoveGlusterHookCommand> {
+    /**
+     * The command under test.
+     */
+    RemoveGlusterHookCommand cmd;
+
+    @Mock
+    private VdsDAO vdsDao;
+
+    private void setUpMocksForRemove() {
+        setUpMocksForRemove(true);
+    }
+
+    private void setUpMocksForRemove(boolean hookFound) {
+        setUpMocksForRemove(hookFound, getHookEntity(), VDSStatus.Up);
+    }
+
+    private void setUpMocksForRemove(boolean hookFound, GlusterHookEntity 
hook, VDSStatus status) {
+        setupMocks(cmd, hookFound, hook);
+        doReturn(vdsDao).when(cmd).getVdsDAO();
+        
when(vdsDao.getAllForVdsGroup(any(Guid.class))).thenReturn(getServers(status));
+    }
+
+    private List<VDS> getServers(VDSStatus status) {
+        List<VDS> servers = new ArrayList<VDS>();
+        servers.add(getServer(GUIDS[0], "gfs1", CLUSTER_ID, status));
+        servers.add(getServer(GUIDS[1], "gfs2", CLUSTER_ID, status));
+        servers.add(getServer(GUIDS[2], "gfs3", CLUSTER_ID, status));
+        servers.add(getServer(GUIDS[3], "gfs4", CLUSTER_ID, status));
+        return servers;
+    }
+
+    private void mockBackend(boolean succeeded, VdcBllErrors errorCode) {
+        when(cmd.getBackend()).thenReturn(backend);
+        when(backend.getResourceManager()).thenReturn(vdsBrokerFrontend);
+
+        VDSReturnValue vdsReturnValue = new VDSReturnValue();
+        vdsReturnValue.setSucceeded(succeeded);
+        if (!succeeded) {
+            vdsReturnValue.setVdsError(new VDSError(errorCode, ""));
+        }
+        
when(vdsBrokerFrontend.RunVdsCommand(eq(VDSCommandType.RemoveGlusterHook), 
argThat(anyHookVDS()))).thenReturn(vdsReturnValue);
+     }
+
+    private ArgumentMatcher<VDSParametersBase> anyHookVDS() {
+        return new ArgumentMatcher<VDSParametersBase>() {
+
+            @Override
+            public boolean matches(Object argument) {
+                if (!(argument instanceof GlusterHookVDSParameters)) {
+                    return false;
+                }
+                return true;
+            }
+        };
+    }
+
+    @Test
+    public void executeCommand() {
+        cmd = spy(new RemoveGlusterHookCommand(new 
GlusterHookManageParameters(HOOK_ID)));
+        setUpMocksForRemove();
+        mockBackend(true, null);
+        cmd.executeCommand();
+        verify(hooksDao, times(1)).remove(any(Guid.class));
+        assertEquals(cmd.getAuditLogTypeValue(), 
AuditLogType.GLUSTER_HOOK_REMOVED);
+    }
+
+
+    @Test
+    public void executeCommandWhenFailed() {
+        cmd = spy(new RemoveGlusterHookCommand(new 
GlusterHookManageParameters(HOOK_ID)));
+        setUpMocksForRemove();
+        mockBackend(false,VdcBllErrors.GlusterHookRemoveFailed);
+        cmd.executeCommand();
+        verify(hooksDao, never()).remove(any(Guid.class));
+        assertEquals(cmd.getAuditLogTypeValue(), 
AuditLogType.GLUSTER_HOOK_REMOVE_FAILED);
+    }
+
+    @Test
+    public void canDoActionSucceeds() {
+        cmd = spy(new RemoveGlusterHookCommand(new 
GlusterHookManageParameters(HOOK_ID)));
+        setUpMocksForRemove();
+        assertTrue(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNullHookId() {
+        cmd = spy(new RemoveGlusterHookCommand(new 
GlusterHookManageParameters(null)));
+        setUpMocksForRemove();
+        assertFalse(cmd.canDoAction());
+        
assertTrue(cmd.getReturnValue().getCanDoActionMessages().contains(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_HOOK_ID_IS_REQUIRED.toString()));
+    }
+
+    @Test
+    public void canDoActionFailsOnNoHook() {
+        cmd = spy(new RemoveGlusterHookCommand(new 
GlusterHookManageParameters(HOOK_ID)));
+        setUpMocksForRemove(false);
+        assertFalse(cmd.canDoAction());
+        
assertTrue(cmd.getReturnValue().getCanDoActionMessages().contains(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_HOOK_DOES_NOT_EXIST.toString()));
+    }
+
+    @Test
+    public void canDoActionFailsOnServerNotUp() {
+        cmd = spy(new RemoveGlusterHookCommand(new 
GlusterHookManageParameters(HOOK_ID)));
+        setUpMocksForRemove(true, getHookEntity(), VDSStatus.Down);
+        assertFalse(cmd.canDoAction());
+        
assertTrue(cmd.getReturnValue().getCanDoActionMessages().contains(VdcBllMessages.ACTION_TYPE_FAILED_SERVER_STATUS_NOT_UP.toString()));
+    }
+
+}
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 dca8cf8..f703017 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
@@ -260,6 +260,8 @@
     GLUSTER_HOOK_UPDATE_FAILED(4060),
     GLUSTER_HOOK_ADDED(4061),
     GLUSTER_HOOK_ADD_FAILED(4062),
+    GLUSTER_HOOK_REMOVED(4063),
+    GLUSTER_HOOK_REMOVE_FAILED(4064),
 
     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 52e5f17..a51b868 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
@@ -87,6 +87,8 @@
         AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_DETECTED_DELETE);
         AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_ADDED);
         AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_ADD_FAILED);
+        AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_REMOVED);
+        AddEventNotificationEntry(EventNotificationEntity.GlusterHook, 
AuditLogType.GLUSTER_HOOK_REMOVE_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 44a3b0f..f7c2990 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
@@ -237,6 +237,7 @@
     DisableGlusterHook(1415, ActionGroup.MANIPULATE_GLUSTER_HOOK, 
QuotaDependency.NONE),
     UpdateGlusterHook(1416,ActionGroup.MANIPULATE_GLUSTER_HOOK, 
QuotaDependency.NONE),
     
AddGlusterHook(1417,ActionGroup.MANIPULATE_GLUSTER_HOOK,QuotaDependency.NONE),
+    
RemoveGlusterHook(1418,ActionGroup.MANIPULATE_GLUSTER_HOOK,QuotaDependency.NONE),
 
     // External events
     AddExternalEvent(1500, ActionGroup.INJECT_EXTERNAL_EVENTS, 
QuotaDependency.NONE),
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
index 02ebeb8..285b023 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java
@@ -131,6 +131,8 @@
         severities.put(AuditLogType.GLUSTER_HOOK_UPDATE_FAILED, 
AuditLogSeverity.ERROR);
         severities.put(AuditLogType.GLUSTER_HOOK_ADDED, 
AuditLogSeverity.NORMAL);
         severities.put(AuditLogType.GLUSTER_HOOK_ADD_FAILED, 
AuditLogSeverity.ERROR);
+        severities.put(AuditLogType.GLUSTER_HOOK_REMOVED, 
AuditLogSeverity.NORMAL);
+        severities.put(AuditLogType.GLUSTER_HOOK_REMOVE_FAILED, 
AuditLogSeverity.ERROR);
     }
 
     private static void initDefaultSeverities() {
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 5425708..9c70a7f 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -619,4 +619,6 @@
 GLUSTER_HOOK_UPDATED=Gluster Hook ${GlusterHookName} updated on conflicting 
servers.
 GLUSTER_HOOK_UPDATE_FAILED=Failed to update Gluster Hook ${GlusterHookName} on 
conflicting servers. ${FailureMessage}
 GLUSTER_HOOK_ADDED=Gluster Hook ${GlusterHookName} added on conflicting 
servers.
-GLUSTER_HOOK_ADD_FAILED=Failed to add Gluster Hook ${GlusterHookName} on 
conflicting servers. ${FailureMessage}
\ No newline at end of file
+GLUSTER_HOOK_ADD_FAILED=Failed to add Gluster Hook ${GlusterHookName} on 
conflicting servers. ${FailureMessage}
+GLUSTER_HOOK_REMOVED=Gluster Hook ${GlusterHookName} removed from all servers 
in cluster ${VdsGroupName}.
+GLUSTER_HOOK_REMOVE_FAILED=Failed to remove Gluster Hook ${GlusterHookName} 
from cluster ${VdsGroupName}. ${FailureMessage}
\ 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 bb87072..a760995 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
@@ -96,6 +96,7 @@
 job.DisableGlusterHook=Disabling Gluster Hook ${GlusterHookName}
 job.UpdateGlusterHook=Updating Gluster Hook ${GlusterHookName} on conflicting 
servers in Cluster ${Cluster}
 job.AddGlusterHook=Adding Gluster Hook ${GlusterHookName} on conflicting 
servers in Cluster ${Cluster}
+job.RemoveGlusterHook=Removing Gluster Hook ${GlusterHookName} from all 
servers in Cluster ${Cluster}
 
 # Step types
 step.VALIDATING=Validating
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
index 1e463e9..1249115 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/LocalizedEnums.java
@@ -282,6 +282,10 @@
 
     String AuditLogType___GLUSTER_HOOK_ADD_FAILED();
 
+    String AuditLogType___GLUSTER_HOOK_REMOVED();
+
+    String AuditLogType___GLUSTER_HOOK_REMOVE_FAILED();
+
     String VdcActionType___ActivateVds();
 
        String VdcActionType___RecoveryStoragePool();
@@ -593,6 +597,8 @@
 
        String VdcActionType___AddGlusterHook();
 
+       String VdcActionType___RemoveGlusterHook();
+
        String VdcActionType___ConnectStorageToVds();
 
        String VdcObjectType___AdElements();
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 405b0f2..858eaf1 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
@@ -137,6 +137,8 @@
 AuditLogType___GLUSTER_HOOK_UPDATE_FAILED=Failed to update Gluster Hook on 
conflicting servers
 AuditLogType___GLUSTER_HOOK_ADDED=Added GLuster Hook
 AuditLogType___GLUSTER_HOOK_ADD_FAILED=Failed to add Gluster Hook on 
conflicting servers
+AuditLogType___GLUSTER_HOOK_REMOVED=Removed GLuster Hook
+AuditLogType___GLUSTER_HOOK_REMOVE_FAILED=Failed to remove Gluster Hook from 
cluster
 
 
 VdcActionType___ActivateVds=Activate Host
@@ -268,6 +270,7 @@
 VdcActionType___DisableGlusterHook=Disable Gluster Hook
 VdcActionType___UpdateGlusterHook=Update Gluster Hook
 VdcActionType___AddGlusterHook=Add Gluster Hook
+VdcActionType___RemoveGlusterHook=Remove Gluster Hook
 VdcActionType___ActivateStorageDomain=Activate Storage Domain
 VdcActionType___FenceVdsManualy=Fence Host Manually
 VdcActionType___AddEmptyStoragePool=New Data Center


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

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

Reply via email to