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
