Dhandapani Gopal has uploaded a new change for review.

Change subject: engine:[WIP] Service Start command
......................................................................

engine:[WIP] Service Start command

  Bll command to start service on the given list of servers
  if server ids are passed, otherwise the service will be started on
  all the servers in the cluster.

  - New Bll and VDS Command

Change-Id: If1031d7f19e981395b7e80111f418bb10ac8ba05
Signed-off-by: Dhandapani <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterCommandBase.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StartServiceCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/ClusterUtils.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartGlusterVolumeCommandTest.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartServiceCommandTest.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/EventNotificationEntity.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/VdcObjectType.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/ServiceParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceAction.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
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/ServiceVDSParameters.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.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/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
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/StartServiceVDSCommand.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/AppErrors.java
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java
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/Enums.properties
M 
frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
34 files changed, 373 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/11444/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterCommandBase.java
index 07afbae..1252dee 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterCommandBase.java
@@ -16,6 +16,7 @@
 import org.ovirt.engine.core.common.businessentities.VdsStatic;
 import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
 import org.ovirt.engine.core.common.locks.LockingGroup;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.VdcBllMessages;
 import org.ovirt.engine.core.dao.VdsStaticDAO;
 
@@ -62,6 +63,10 @@
         return getClusterUtils().getUpServer(getVdsGroupId());
     }
 
+    protected List<VDS> getAllUpServers(Guid clusterId) {
+        return getClusterUtils().getAllUpServers(clusterId);
+    }
+
     private ClusterUtils getClusterUtils() {
         return ClusterUtils.getInstance();
     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StartServiceCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StartServiceCommand.java
new file mode 100644
index 0000000..92e4504
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/StartServiceCommand.java
@@ -0,0 +1,93 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
+import org.ovirt.engine.core.common.AuditLogType;
+import org.ovirt.engine.core.common.action.gluster.ServiceParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.gluster.ServiceEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.ServiceStatus;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import org.ovirt.engine.core.common.vdscommands.gluster.ServiceVDSParameters;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.VdcBllMessages;
+
+/**
+ * BLL command to Start Service
+ */
+@NonTransactiveCommandAttribute
+public class StartServiceCommand extends GlusterCommandBase<ServiceParameters> 
{
+
+    private static final long serialVersionUID = -9126568265627678077L;
+
+    public StartServiceCommand(ServiceParameters params) {
+        super(params);
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        addCanDoActionMessage(VdcBllMessages.VAR__ACTION__START_SERVICE);
+        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__SERVICE);
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        if (!super.canDoAction()) {
+            return false;
+        }
+
+        if (getParameters().getServiceId() == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_SERVICE_ID_IS_REQUIRED);
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    protected void executeCommand() {
+        List<String> errors = new ArrayList<String>();
+        ServiceEntity service = 
getServervicesDao().getById(getParameters().getServiceId());
+        for (Guid upServerId : getUpServerIds()) {
+            VDSReturnValue returnValue =
+                    runVdsCommand(VDSCommandType.StartService,
+                            new ServiceVDSParameters(upServerId, 
service.getServiceName()));
+            if (!getSucceeded()) {
+                errors.add(returnValue.getVdsError().getMessage());
+            } else {
+                getServervicesDao().updateServiceStatus(service.getId(), 
ServiceStatus.RUNNING);
+            }
+        }
+
+        if (!errors.isEmpty()) {
+            handleVdsErrors(AuditLogType.SERVICE_START_FAILED, errors);
+        }
+
+        if (getUpServerIds().size() > errors.size()) {
+            setSucceeded(true);
+        }
+    }
+
+    protected List<Guid> getUpServerIds() {
+        List<Guid> serverIds = new ArrayList<Guid>();
+        if (getParameters().getServerIds().size() > 0) {
+            serverIds.addAll(getParameters().getServerIds());
+        } else {
+            for (VDS server : getAllUpServers(getVdsGroupId())) {
+                serverIds.add(server.getId());
+            }
+        }
+        return serverIds;
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        if (getSucceeded()) {
+            return AuditLogType.SERVICE_START;
+        } else {
+            return errorType == null ? AuditLogType.SERVICE_START_FAILED : 
errorType;
+        }
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/ClusterUtils.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/ClusterUtils.java
index 66376cb..61cd5a5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/ClusterUtils.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/ClusterUtils.java
@@ -25,8 +25,7 @@
      * @return One of the servers in up status
      */
     public VDS getUpServer(Guid clusterId) {
-        List<VDS> servers = getVdsDao()
-                .getAllForVdsGroupWithStatus(clusterId, VDSStatus.Up);
+        List<VDS> servers = getAllUpServers(clusterId);
 
         if (servers == null || servers.isEmpty()) {
             return null;
@@ -34,6 +33,10 @@
         return RandomUtils.instance().pickRandom(servers);
     }
 
+    public List<VDS> getAllUpServers(Guid clusterId) {
+        return getVdsDao().getAllForVdsGroupWithStatus(clusterId, 
VDSStatus.Up);
+    }
+
     public boolean hasMultipleServers(Guid clusterId) {
         return getServerCount(clusterId) > 1;
     }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartGlusterVolumeCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartGlusterVolumeCommandTest.java
index 9bbb8eb..8500d41 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartGlusterVolumeCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartGlusterVolumeCommandTest.java
@@ -13,8 +13,8 @@
 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.GlusterVolumeEntity;
 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.compat.Guid;
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartServiceCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartServiceCommandTest.java
new file mode 100644
index 0000000..cf10d5f
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/StartServiceCommandTest.java
@@ -0,0 +1,94 @@
+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.ServiceParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import org.ovirt.engine.core.common.businessentities.gluster.ServiceEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.ServiceStatus;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.gluster.ServicesDao;
+import org.ovirt.engine.core.utils.RandomUtils;
+
+@RunWith(MockitoJUnitRunner.class)
+public class StartServiceCommandTest {
+
+    @Mock
+    ServicesDao servicesDao;
+
+    private static final Guid CLUSTER_ID = new 
Guid("b399944a-81ab-4ec5-8266-e19ba7c3c9d1");
+    private static final Guid SERVICE_ID = new 
Guid("b2cb2f73-fab3-4a42-93f0-d5e4c069a4ce");
+    private static final Guid SERVER_ID = new 
Guid("23f6d691-5dfb-472b-86dc-9e1d2d3c18f3");
+
+    /**
+     * The command under test.
+     */
+    private StartServiceCommand cmd;
+
+    private void prepareMocks(StartServiceCommand command) {
+        doReturn(servicesDao).when(command).getServervicesDao();
+        doReturn(getService(SERVICE_ID)).when(servicesDao).getById(SERVICE_ID);
+        doReturn(getUpServer()).when(command).getUpServer();
+        doReturn(getServerIds()).when(command).getUpServerIds();
+        doReturn(null).when(servicesDao).getById(null);
+    }
+
+    private VDS getUpServer() {
+        VDS vds = new VDS();
+        vds.setId(RandomUtils.instance().pickRandom(getServerIds()));
+        vds.setvds_name("gfs1");
+        vds.setvds_group_id(CLUSTER_ID);
+        vds.setstatus(VDSStatus.Up);
+        return vds;
+    }
+
+    private ServiceEntity getService(Guid serviceId) {
+        ServiceEntity service = new ServiceEntity();
+        service.setId(serviceId);
+        service.setServerId(SERVER_ID);
+        service.setServiceName("container-server");
+        service.setStatus(ServiceStatus.STOPPED);
+        return service;
+    }
+
+    private List<Guid> getServerIds() {
+        List<Guid> serverIds = new ArrayList<Guid>();
+        
serverIds.add(Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e6"));
+        
serverIds.add(Guid.createGuidFromString("afce7a39-8e8c-4819-ba9c-796d316592e7"));
+        
serverIds.add(Guid.createGuidFromString("23f6d691-5dfb-472b-86dc-9e1d2d3c18f3"));
+        
serverIds.add(Guid.createGuidFromString("2001751e-549b-4e7a-aff6-32d36856c125"));
+        return serverIds;
+    }
+
+    @Test
+    public void canDoActionSucceeds() {
+        cmd = spy(new StartServiceCommand(new ServiceParameters(SERVICE_ID)));
+        prepareMocks(cmd);
+        assertTrue(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionSucceedsWithServerIds() {
+        cmd = spy(new StartServiceCommand(new ServiceParameters(SERVICE_ID, 
getServerIds())));
+        prepareMocks(cmd);
+        assertTrue(cmd.canDoAction());
+    }
+
+    @Test
+    public void canDoActionFailsOnNull() {
+        cmd = spy(new StartServiceCommand(new ServiceParameters(null)));
+        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 2c92003..12cd093 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
@@ -228,6 +228,8 @@
     GLUSTER_SERVER_ADD_FAILED(4436),
     GLUSTER_SERVERS_LIST_FAILED(4437),
     GLUSTER_SERVER_REMOVE(4038),
+    SERVICE_START(4039),
+    SERVICE_START_FAILED(4040),
 
     USER_VDS_RESTART(41),
     USER_FAILED_VDS_RESTART(107),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/EventNotificationEntity.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/EventNotificationEntity.java
index 72d00dc..c2bc35c 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/EventNotificationEntity.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/EventNotificationEntity.java
@@ -10,6 +10,7 @@
     Storage(ApplicationMode.VirtOnly),
     Engine(ApplicationMode.AllModes),
     GlusterVolume(ApplicationMode.GlusterOnly),
+    Service(ApplicationMode.GlusterOnly),
     DWH(ApplicationMode.VirtOnly);
 
     private int availableInModes;
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 a3d6886..ae3d029 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
@@ -71,6 +71,8 @@
         AddEventNotificationEntry(EventNotificationEntity.GlusterVolume, 
AuditLogType.GLUSTER_VOLUME_PROFILE_START_FAILED);
         AddEventNotificationEntry(EventNotificationEntity.GlusterVolume, 
AuditLogType.GLUSTER_VOLUME_PROFILE_STOP);
         AddEventNotificationEntry(EventNotificationEntity.GlusterVolume, 
AuditLogType.GLUSTER_VOLUME_PROFILE_STOP_FAILED);
+        AddEventNotificationEntry(EventNotificationEntity.Service, 
AuditLogType.SERVICE_START);
+        AddEventNotificationEntry(EventNotificationEntity.Service, 
AuditLogType.SERVICE_START_FAILED);
 
         // DWH
         AddEventNotificationEntry(EventNotificationEntity.DWH, 
AuditLogType.DWH_STOPPED);
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcObjectType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcObjectType.java
index 7144607..ad62c0b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcObjectType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcObjectType.java
@@ -29,7 +29,9 @@
     Disk(19, "Disk"),
     Network(20, "Network"),
     Snapshot(21, "Snapshot"),
-    Event(22, "Event");
+    Event(22, "Event"),
+    Service(23, "Service"),
+    ;
 
     private int value;
     private String vdcObjectTranslationVal;
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 5a144c8..cb19cc0 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
@@ -263,11 +263,13 @@
     StartGlusterVolumeProfile(1410, ActionGroup.MANIPULATE_GLUSTER_VOLUME, 
QuotaDependency.NONE),
     StopGlusterVolumeProfile(1411, ActionGroup.MANIPULATE_GLUSTER_VOLUME, 
QuotaDependency.NONE),
     RemoveGlusterServer(1412, ActionGroup.DELETE_HOST, QuotaDependency.NONE),
+    StartService(1413, ActionGroup.MANIPULATE_SERVICE, QuotaDependency.NONE),
 
     // External events
     AddExternalEvent(1500, ActionGroup.INJECT_EXTERNAL_EVENTS, 
QuotaDependency.NONE),
     RemoveExternalEvent(1501, ActionGroup.INJECT_EXTERNAL_EVENTS, 
QuotaDependency.NONE);
 
+
     private int intValue;
     private ActionGroup actionGroup;
     private boolean isActionMonitored = true;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/ServiceParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/ServiceParameters.java
new file mode 100644
index 0000000..b0d7298
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/ServiceParameters.java
@@ -0,0 +1,46 @@
+package org.ovirt.engine.core.common.action.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+/**
+ * Parameter class with Service Id and List of Service Ids parameter. <br>
+ */
+public class ServiceParameters extends VdcActionParametersBase {
+
+    private static final long serialVersionUID = -2030435415695424782L;
+
+    @NotNull(message = "VALIDATION.SERVICE.ID.NOT_NULL")
+    private Guid serviceId;
+    private List<Guid> serverIds= new ArrayList<Guid>();
+
+    public ServiceParameters(Guid serviceId) {
+        setServiceId(serviceId);
+    }
+
+    public ServiceParameters(Guid serviceId, List<Guid> serverIds) {
+        setServiceId(serviceId);
+        setServerIds(serverIds);
+    }
+
+    public Guid getServiceId() {
+        return serviceId;
+    }
+
+    public void setServiceId(Guid serviceId) {
+        this.serviceId = serviceId;
+    }
+
+    public List<Guid> getServerIds() {
+        return serverIds;
+    }
+
+    public void setServerIds(List<Guid> serverIds) {
+        this.serverIds = serverIds;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
index 43eceaf..c82c310 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java
@@ -88,6 +88,7 @@
     CREATE_GLUSTER_VOLUME(1000, RoleType.ADMIN, VdcObjectType.GlusterVolume, 
true, ApplicationMode.GlusterOnly),
     MANIPULATE_GLUSTER_VOLUME(1001, RoleType.ADMIN, 
VdcObjectType.GlusterVolume, true, ApplicationMode.GlusterOnly),
     DELETE_GLUSTER_VOLUME(1002, RoleType.ADMIN, VdcObjectType.GlusterVolume, 
true, ApplicationMode.GlusterOnly),
+    MANIPULATE_SERVICE(1003, RoleType.ADMIN, VdcObjectType.Service, true, 
ApplicationMode.GlusterOnly),
 
     // Disks action groups
     CREATE_DISK(1100, RoleType.USER, VdcObjectType.Disk, false, 
ApplicationMode.VirtOnly),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceAction.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceAction.java
new file mode 100644
index 0000000..bcc8b08
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/ServiceAction.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+/**
+ * Enum of Service actions. These enums are used to perform action on service.
+ *
+ */
+public enum ServiceAction {
+    START,
+    STOP,
+    RESTART;
+}
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 58adad3..95f90e2 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
@@ -348,7 +348,7 @@
     GlusterAddHostFailed(4404),
     RemoveGlusterServerFailed(4406),
     GlusterPeerListFailed(4407),
-
+    ServiceStartFailed(4408),
 
     UnicodeArgumentException(4900),
 
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 16a2b7a..ebc837f 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
@@ -142,6 +142,7 @@
     GetGlusterVolumeAdvancedDetails("org.ovirt.engine.core.vdsbroker.gluster"),
     GlusterVolumesList("org.ovirt.engine.core.vdsbroker.gluster"),
     GetGlusterVolumeProfileInfo("org.ovirt.engine.core.vdsbroker.gluster"),
+    StartService("org.ovirt.engine.core.vdsbroker.gluster"),
     ;
 
     String packageName;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/ServiceVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/ServiceVDSParameters.java
new file mode 100644
index 0000000..250786b
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/ServiceVDSParameters.java
@@ -0,0 +1,21 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+/**
+ * VDS parameter class with service name as parameter. <br>
+ * This will be used directly by some commands (e.g. start service).
+ */
+public class ServiceVDSParameters extends VdsIdVDSCommandParametersBase {
+    private final String serviceName;
+
+    public ServiceVDSParameters(Guid serverId, String serviceName) {
+        super(serverId);
+        this.serviceName = serviceName;
+    }
+
+    public String getServiceName() {
+        return serviceName;
+    }
+}
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 f61dfc2..528f1e2 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
@@ -29,6 +29,7 @@
     VAR__TYPE__GLUSTER_VOLUME_OPTION,
     VAR__TYPE__GLUSTER_BRICK,
     VAR__TYPE__GLUSTER_SERVER,
+    VAR__TYPE__SERVICE,
 
     // External Event
     VAR__TYPE__EXTERNAL_EVENT,
@@ -70,6 +71,7 @@
     VAR__ACTION__ASSIGN,
     VAR__ACTION__START_PROFILE,
     VAR__ACTION__STOP_PROFILE,
+    VAR__ACTION__START_SERVICE,
 
     // Host statuses replacements
     VAR__HOST_STATUS__UP,
@@ -689,6 +691,7 @@
     ACTION_TYPE_FAILED_CAN_NOT_REDUCE_STRIPE_COUNT,
     ACTION_TYPE_FAILED_BRICK_ALREADY_EXISTS_IN_VOLUME,
     ACTION_TYPE_FAILED_NO_UP_SERVER_FOUND,
+    ACTION_TYPE_FAILED_SERVICE_ID_IS_REQUIRED,
     VDS_CANNOT_REMOVE_HOST_HAVING_GLUSTER_VOLUME,
     ACTION_TYPE_FAILED_NO_GLUSTER_HOST_TO_PEER_PROBE,
     MIGRATE_PAUSED_VM_IS_UNSUPPORTED,
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 badfa07..85307ce 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
@@ -97,6 +97,8 @@
         mSeverities.put(AuditLogType.GLUSTER_VOLUME_BRICK_ADDED_FROM_CLI, 
AuditLogSeverity.WARNING);
         mSeverities.put(AuditLogType.GLUSTER_VOLUME_BRICK_REMOVED_FROM_CLI, 
AuditLogSeverity.WARNING);
         mSeverities.put(AuditLogType.GLUSTER_SERVER_REMOVED_FROM_CLI, 
AuditLogSeverity.WARNING);
+        mSeverities.put(AuditLogType.SERVICE_START, AuditLogSeverity.NORMAL);
+        mSeverities.put(AuditLogType.SERVICE_START_FAILED, 
AuditLogSeverity.ERROR);
     }
 
     private static void initDefaultSeverities() {
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java
index 8014b61..309818b 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java
@@ -36,6 +36,7 @@
 import org.ovirt.engine.core.dao.VmStatisticsDAO;
 import org.ovirt.engine.core.dao.VmTemplateDAO;
 import org.ovirt.engine.core.dao.gluster.GlusterVolumeDao;
+import org.ovirt.engine.core.dao.gluster.ServicesDao;
 import org.ovirt.engine.core.dao.network.NetworkClusterDao;
 import org.ovirt.engine.core.dao.network.NetworkDao;
 import org.ovirt.engine.core.dao.network.VmNetworkInterfaceDao;
@@ -97,7 +98,7 @@
         this.glusterVolumeId = auditLog.getGlusterVolumeId();
         this.glusterVolumeName = auditLog.getGlusterVolumeName();
         this.jobId = auditLog.getJobId();
-        this.mUserId = (NGuid) auditLog.getuser_id();
+        this.mUserId = auditLog.getuser_id();
         this.mUserName = auditLog.getuser_name();
         this.mVdsGroupId = (Guid) auditLog.getvds_group_id();
         this.mVdsId = auditLog.getvds_id();
@@ -518,6 +519,10 @@
         return getDbFacade().getGlusterVolumeDao();
     }
 
+    public ServicesDao getServervicesDao() {
+        return getDbFacade().getServicesDao();
+    }
+
     public StorageDomainDAO getStorageDomainDAO() {
         return getDbFacade().getStorageDomainDao();
     }
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
index 5696cff..76e36f2 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -278,6 +278,7 @@
 VAR__ACTION__STOP_PROFILE=$action stop profiling
 VAR__HOST_STATUS__UP=$hostStatus Up
 VAR__HOST_STATUS__UP_MAINTENANCE_OR_NON_OPERATIONAL=$hostStatus Up, 
Maintenance or Non operational
+VAR__ACTION__START_SERVICE=$action starting service
 
 ACTION_TYPE_FAILED_DISK_ALREADY_ATTACHED=Cannot ${action} ${type}. The disk is 
already attached to VM.
 ACTION_TYPE_FAILED_DISK_ALREADY_DETACHED=Cannot ${action} ${type}. The disk is 
already detached from VM.
@@ -770,6 +771,7 @@
 VAR__TYPE__GLUSTER_VOLUME_OPTION=$type Gluster Volume Option
 VAR__TYPE__GLUSTER_BRICK=$type Gluster Brick
 VAR__TYPE__GLUSTER_SERVER=$type Gluster Server
+VAR__TYPE__SERVICE=$type Service
 VALIDATION.GLUSTER.VOLUME.ID.NOT_NULL=Volume ID is required.
 VALIDATION.GLUSTER.VOLUME.CLUSTER_ID.NOT_NULL=Cluster ID is required.
 VALIDATION.GLUSTER.VOLUME.NAME.NOT_NULL=Volume Name is required.
@@ -824,6 +826,7 @@
 ACTION_TYPE_FAILED_NO_UP_SERVER_FOUND=Cannot ${action} ${type}. No up server 
found in ${clusterName}.
 ACTION_TYPE_FAILED_BRICK_ALREADY_EXISTS_IN_VOLUME=Cannot ${action} ${type}. 
Brick ${brick} already used by the volume ${volumeName}.
 ACTION_TYPE_FAILED_NO_UP_SERVER_FOUND=Cannot ${action} ${type}. No server 
found in Up state.
+ACTION_TYPE_FAILED_SERVICE_ID_IS_REQUIRED=Cannot ${action} ${type}. Service ID 
is required.
 ERROR_GET_STORAGE_DOMAIN_LIST=Cannot get Storage Domains list.
 VDS_CANNOT_REMOVE_HOST_HAVING_GLUSTER_VOLUME=Cannot remove gluster server. 
Server having Gluster volume(s).
 ACTION_TYPE_FAILED_VM_CANNOT_BE_PINNED_TO_CPU_AND_MIGRATABLE=Migratable VM's 
cannot be pinned to CPU.
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 ce9ce6f..cf775ba 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -578,3 +578,5 @@
 GLUSTER_VOLUME_BRICK_ADDED_FROM_CLI=Brick ${brick} was added to Volume 
${glusterVolumeName} from gluster CLI. Now added in engine DB as well.
 GLUSTER_VOLUME_BRICK_REMOVED_FROM_CLI=Brick ${brick} was removed from Volume 
${glusterVolumeName} from gluster CLI. Now removed in engine DB as well.
 GLUSTER_SERVER_REMOVED_FROM_CLI=Server ${VdsName} was removed from Cluster 
${VdsGroupName} from gluster CLI. Now removed in engine DB as well.
+SERVICE_START=Service ${serviceName} started.
+SERVICE_START_FAILED=Could not start service ${serviceName}.
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 ece6294..18228be 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
@@ -83,6 +83,7 @@
 job.ReplaceGlusterVolumeBrick=Replacing Brick in Gluster Volume 
${GlusterVolume}
 job.AddBricksToGlusterVolume=Adding Bricks to Gluster Volume ${GlusterVolume}
 job.RemoveGlusterServer=Removing Gluster Server ${VDS}
+job.StartService=Starting Service ${Service}
 
 # 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 50d66a7..2225506 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -327,7 +327,8 @@
 GlusterHostRemoveFailed=Gluster Server Remove Failed
 GlusterPeerListFailed=Gluster Peer List Failed
 GlusterVolumeStatusFailed=Could not fetch advanced volume details
-GlusterVolumeProfileInfoFailed=Gluster Volume Profile Info Failed
+GlusterVolumeProfileInfoFailed=Gluster Volume Profile Info Failed
+ServiceStartFailed=Failed to start service
 
 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
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 b2ec324..01e356c 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
@@ -37,6 +37,7 @@
         case GlusterPeerListFailed:
         case GlusterVolumeStatusFailed:
         case GlusterVolumeProfileInfoFailed:
+        case ServiceStartFailed:
             // 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/StartServiceVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StartServiceVDSCommand.java
new file mode 100644
index 0000000..c956f8d
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/StartServiceVDSCommand.java
@@ -0,0 +1,19 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import org.ovirt.engine.core.common.businessentities.gluster.ServiceAction;
+import org.ovirt.engine.core.common.vdscommands.gluster.ServiceVDSParameters;
+
+public class StartServiceVDSCommand<P extends ServiceVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+    public StartServiceVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void ExecuteVdsBrokerCommand() {
+        status =
+                
getBroker().glusterServicesManage(getParameters().getServiceName(),
+                        ServiceAction.START.name());
+
+        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 532dcd6..1384017 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
@@ -247,4 +247,6 @@
     GlusterVolumesListReturnForXmlRpc glusterVolumesList(Guid clusterId);
 
     GlusterVolumeProfileInfoReturnForXmlRpc glusterVolumeProfileInfo(Guid 
clusterId, String volumeName);
+
+    StatusOnlyReturnForXmlRpc glusterServicesManage(String serviceName, String 
action);
 }
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 2a0aa59..e88f40b 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
@@ -236,4 +236,6 @@
     public Map<String, Object> glusterVolumeStatus(String volumeName, String 
brickName, String volumeStatusOption);
 
     public Map<String, Object> glusterVolumeProfileInfo(String volumeName);
+
+    public Map<String, Object> glusterServicesManage(String serviceName, 
String action);
 }
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 13ea1f6..685add8 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
@@ -1215,4 +1215,13 @@
             throw new XmlRpcRunTimeException(ute);
         }
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterServicesManage(String serviceName, 
String action) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterServicesManage(serviceName, action));
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
 }
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
index 235cc68..a395646 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
@@ -750,6 +750,9 @@
     @DefaultStringValue("$action stop profiling")
     String VAR__ACTION__STOP_PROFILE();
 
+    @DefaultStringValue("$action start service")
+    String VAR__ACTION__START_SERVICE();
+
     @DefaultStringValue("$action assign")
     String VAR__ACTION__ASSIGN();
 
@@ -773,6 +776,9 @@
 
     @DefaultStringValue("$type Gluster Server")
     String VAR__TYPE__GLUSTER_SERVER();
+
+    @DefaultStringValue("$type Service")
+    String VAR__TYPE__SERVICE();
 
     @DefaultStringValue("Cannot ${action} ${type}. The chosen disk drive 
letter is already in use, please select a free one.")
     String ACTION_TYPE_FAILED_DISK_LETTER_ALREADY_IN_USE();
@@ -2175,6 +2181,9 @@
     @DefaultStringValue("Cannot ${action} ${type}. No up server found in 
${clusterName}.")
     String ACTION_TYPE_FAILED_NO_UP_SERVER_FOUND();
 
+    @DefaultStringValue("Cannot ${action} ${type}. Service ID is required.")
+    String ACTION_TYPE_FAILED_SERVICE_ID_IS_REQUIRED();
+
     @DefaultStringValue("Cannot ${action} ${type}. The Network Interface 
${IfaceName} has an invalid MAC address ${MacAddress}. MAC address must be in 
format \"HH:HH:HH:HH:HH:HH\" where H is a hexadecimal character (either a digit 
or A-F, case is insignificant).")
     String ACTION_TYPE_FAILED_NETWORK_INTERFACE_MAC_INVALID();
 
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 d9ba84b..40e2df1 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
@@ -697,6 +697,9 @@
     @DefaultStringValue("Gluster Volume Profile Stop Failed.")
     String GlusterVolumeProfileStopFailed();
 
+    @DefaultStringValue("Service Start Failed.")
+    String ServiceStartFailed();
+
     String ACTIVATE_NIC_FAILED();
 
     String DEACTIVATE_NIC_FAILED();
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java
index a3dc0b2..d6e233b 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Enums.java
@@ -359,4 +359,7 @@
     String ServiceType___NFS();
 
     String ServiceType___SHD();
+    String ServiceAction___START();
+    String ServiceAction___STOP();
+    String ServiceAction___RESTART();
 }
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 59a6a19..5215e63 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
@@ -149,6 +149,8 @@
 
        String ActionGroup___DELETE_GLUSTER_VOLUME();
 
+       String ActionGroup___MANIPULATE_SERVICE();
+
        String EventNotificationEntity___Host();
 
        String EventNotificationEntity___Vm();
@@ -253,6 +255,10 @@
     String AuditLogType___GLUSTER_VOLUME_PROFILE_STOP();
 
     String AuditLogType___GLUSTER_VOLUME_PROFILE_STOP_FAILED();
+
+    String AuditLogType___SERVICE_START();
+
+    String AuditLogType___SERVICE_START_FAILED();
 
     String VdcActionType___ActivateVds();
 
@@ -555,6 +561,8 @@
 
        String vdcActionType___StopGlusterVolumeProfile();
 
+       String VdcActionType___StartService();
+
        String VdcActionType___ConnectStorageToVds();
 
        String VdcObjectType___AdElements();
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties
 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties
index e1ba076..7bbb9bc 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties
+++ 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/Enums.properties
@@ -178,3 +178,6 @@
 JobExecutionStatus___FAILED=Failed
 JobExecutionStatus___ABORTED=Aborted
 JobExecutionStatus___UNKNOWN=Unknown
+ServiceAction___START=Start
+ServiceAction___STOP=Stop
+ServiceAction___RESTART=Restart
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 4299740..0a15474 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
@@ -70,12 +70,14 @@
 ActionGroup___CONFIGURE_DISK_STORAGE=Edit Storage
 ActionGroup___DELETE_DISK=Delete
 ActionGroup___PORT_MIRRORING=Port Mirroring
+ActionGroup___MANIPULATE_SERVICE=Manipulate Service
 EventNotificationEntity___Host=Host Events:
 EventNotificationEntity___Vm=VM Events:
 EventNotificationEntity___Storage=Storage Management Events:
 EventNotificationEntity___Engine=General Management Events:
 EventNotificationEntity___GlusterVolume=Gluster Volume Events:
 EventNotificationEntity___DWH=Data Warehouse Events:
+EventNotificationEntity___Service=Service:
 AuditLogType___VDS_FAILURE=Host is non-responsive
 AuditLogType___USER_VDS_MAINTENANCE=Host was switched to Maintenance Mode
 AuditLogType___USER_VDS_MAINTENANCE_MIGRATION_FAILED=Failed to switch Host to 
Maintenance mode
@@ -123,6 +125,8 @@
 AuditLogType___GLUSTER_VOLUME_PROFILE_START_FAILED=Failed to start Gluster 
Volume Profile
 AuditLogType___GLUSTER_VOLUME_PROFILE_STOP=Gluster Volume Profile stopped
 AuditLogType___GLUSTER_VOLUME_PROFILE_STOP_FAILED=Failed to stop Gluster 
Volume Profile
+AuditLogType___SERVICE_START=Service Started
+AuditLogType___SERVICE_START_FAILED=Failed to Start Service
 
 VdcActionType___ActivateVds=Activate Host
 VdcActionType___RecoveryStoragePool=Reinitialize Data Center
@@ -248,6 +252,7 @@
 VdcActionType___GlusterHostAdd=Add Gluster server
 vdcActionType___StartGlusterVolumeProfile=Start Gluster Volume Profile
 vdcActionType___StopGlusterVolumeProfile=Stop Gluster Volume Profile
+VdcActionType___StartService=Start Service
 VdcActionType___ActivateStorageDomain=Activate Storage Domain
 VdcActionType___FenceVdsManualy=Fence Host Manually
 VdcActionType___AddEmptyStoragePool=New Data Center
@@ -291,6 +296,7 @@
 VdcObjectType___VmTemplate=VM Template
 VdcObjectType___EventNotification=Event Notification
 VdcObjectType___ImportExport=Import/Export
+VdcObjectType___Service=Service
 VdsSelectionAlgorithm___None=None
 VdsSelectionAlgorithm___EvenlyDistribute=Even Distribution
 VdsSelectionAlgorithm___PowerSave=Power Saving


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If1031d7f19e981395b7e80111f418bb10ac8ba05
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Dhandapani Gopal <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to