Sahina Bose has uploaded a new change for review. Change subject: engine: VDS command to get geo-rep status for a volume ......................................................................
engine: VDS command to get geo-rep status for a volume VDS command to retrieve status of geo-rep sessions associated with a volume Change-Id: Id313742c9f3c036a0017fe37bd818af1bed0e081 Bug-Url: https://bugzilla.redhat.com/1125845 Signed-off-by: Sahina Bose <sab...@redhat.com> --- 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/queries/VdcQueryType.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/GlusterVolumeGeoRepSessionVDSParameters.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterDBUtils.java 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/GetGlusterVolumeGeoRepStatusVDSCommand.java A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusForXmlRpc.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java 14 files changed, 205 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/31799/1 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 4c7629d..b02a62a 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 @@ -401,6 +401,7 @@ GlfsStatvfsException(4571), GlfsInitException(4572), GlfsFiniException(4573), + GlusterVolumeGeoRepStatusFailed(4599), UnicodeArgumentException(4900), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java index 7ac717d..56099ec 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java @@ -328,6 +328,7 @@ GetGlusterServerServicesByServerId, GetGlusterClusterServiceByClusterId, GetGlusterVolumeRebalanceStatus, + GetGlusterVolumeGeoRepStatus, GetGlusterVolumeRemoveBricksStatus, GetGlusterVolumeByTaskId, 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 6a055cc..3413bdc 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 @@ -156,6 +156,7 @@ GetDiskAlignment("org.ovirt.engine.core.vdsbroker.vdsbroker"), GlusterTasksList("org.ovirt.engine.core.vdsbroker.gluster"), GetGlusterVolumeRemoveBricksStatus("org.ovirt.engine.core.vdsbroker.gluster"), + GetGlusterVolumeGeoRepStatus("org.ovirt.engine.core.vdsbroker.gluster"), SetNumberOfCpus("org.ovirt.engine.core.vdsbroker"), UpdateVmPolicy("org.ovirt.engine.core.vdsbroker"), List("org.ovirt.engine.core.vdsbroker.vdsbroker"), // get a list of VMs with status only diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java new file mode 100644 index 0000000..7fe37c6 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java @@ -0,0 +1,35 @@ +package org.ovirt.engine.core.common.vdscommands.gluster; + +import org.ovirt.engine.core.compat.Guid; + +public class GlusterVolumeGeoRepSessionVDSParameters extends GlusterVolumeVDSParameters { + + String slaveHost; + String slaveVolume; + + public GlusterVolumeGeoRepSessionVDSParameters() { + + } + + public GlusterVolumeGeoRepSessionVDSParameters(Guid serverId, String volumeName, String slaveHost, String slaveVolume) { + super(serverId, volumeName); + this.slaveHost = slaveHost; + this.slaveVolume = slaveVolume; + } + + public String getSlaveHost() { + return slaveHost; + } + + public void setSlaveHost(String slaveHost) { + this.slaveHost = slaveHost; + } + + public String getSlaveVolume() { + return slaveVolume; + } + + public void setSlaveVolume(String slaveVolume) { + this.slaveVolume = slaveVolume; + } +} diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterDBUtils.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterDBUtils.java index 855a30f..1c52142 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterDBUtils.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterDBUtils.java @@ -165,4 +165,16 @@ } return hostName; } + + public GlusterBrickEntity getGlusterBrickByServerUuidAndBrickDir(Guid serverId, String brickDir) + { + return getGlusterBrickDao().getBrickByServerIdAndDirectory(serverId, brickDir); + } + + public GlusterVolumeEntity getVolumeByNameAndHostId(String volumeName, Guid hostId) { + VdsStatic vds = getVdsStaticDao().get(hostId); + Guid vdsGroupId = vds.getVdsGroupId(); + return getGlusterVolumeDao().getByName(vdsGroupId, volumeName); + } + } 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 e2d4509..5c9ba41 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -370,6 +370,7 @@ GlusterServiceActionNotSupported=Gluster service action not supported GlusterVolumeStatusAllFailedException=Failed to get gluster tasks list GlusterVolumeRebalanceStatusFailedException=Failed to get gluster volume rebalance status +GlusterVolumeGeoRepStatusFailedException=Failed to get gluster volume geo-replication status GlusterLibgfapiException=Command failed due to gluster libgfapi exception GlfsStatvfsException=Failed to get gluster volume size info GlfsInitException=Command failed while mounting gluster volume 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 2b2d573..41c1d1e 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 @@ -66,6 +66,7 @@ case GlusterVolumeRemoveBricksStopFailed: case GlusterVolumeRemoveBrickStatusFailed: case GlusterVolumeRemoveBricksCommitFailed: + case GlusterVolumeGeoRepStatusFailed: case GlusterLibgfapiException: case GlfsStatvfsException: case GlfsInitException: diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusVDSCommand.java new file mode 100644 index 0000000..95e6de6 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusVDSCommand.java @@ -0,0 +1,19 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepSessionVDSParameters; + +public class GetGlusterVolumeGeoRepStatusVDSCommand<P extends GlusterVolumeGeoRepSessionVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + public GetGlusterVolumeGeoRepStatusVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void executeVdsBrokerCommand() { + GlusterVolumeGeoRepSessionVDSParameters parameter = getParameters(); + GlusterVolumeGeoRepStatusForXmlRpc result = getBroker().glusterVolumeGeoRepStatus(parameter.getVolumeName(), parameter.getSlaveHost(), parameter.getSlaveVolume()); + proceedProxyReturnValue(); + setReturnValue(result); + } + +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusForXmlRpc.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusForXmlRpc.java new file mode 100644 index 0000000..4de2519 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusForXmlRpc.java @@ -0,0 +1,105 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.ovirt.engine.core.common.businessentities.gluster.GeoRepCrawlStatus; +import org.ovirt.engine.core.common.businessentities.gluster.GeoRepSessionStatus; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSession; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionDetails; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.gluster.GlusterDBUtils; +import org.ovirt.engine.core.utils.log.Log; +import org.ovirt.engine.core.utils.log.LogFactory; +import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc; + +public class GlusterVolumeGeoRepStatusForXmlRpc extends StatusReturnForXmlRpc{ + + private static final String SESSIONS = "sessions"; + private static final String SESSION_SLAVE = "sessionSlave"; + private static final String MASTER_NODE_UUID = "masterNodeUuid"; + private static final String MASTER_BRICK = "masterBrick"; + private static final String SLAVE = "slave"; + private static final String GEO_REP_PAIRS = "pairs"; + private static final String STATUS = "status"; + private static final String CHECK_POINT_STATUS = "checkpointStatus"; + private static final String CRAWL_STATUS = "crawlStatus"; + + private final List<GlusterGeoRepSession> geoRepSessions = new ArrayList<GlusterGeoRepSession>(); + + + private static final Log log = LogFactory.getLog(GlusterVolumesListReturnForXmlRpc.class); + + protected GlusterGeoRepSessionDetails getSessionDetails(Map<String, Object> innerMap, GlusterGeoRepSession session) { + GlusterGeoRepSessionDetails details = new GlusterGeoRepSessionDetails(); + details.setSessionId(session.getId()); + Guid masterNodeId; + if(innerMap.containsKey(MASTER_NODE_UUID)) { + masterNodeId = new Guid(innerMap.get(MASTER_NODE_UUID).toString()); + } else { + log.error("Host Node Id is not available"); + return null; + } + String masterBrick = (innerMap.containsKey(MASTER_BRICK)) ? innerMap.get(MASTER_BRICK).toString() : null; + details.setMasterBrickId(getDbUtils().getGlusterBrickByServerUuidAndBrickDir(masterNodeId, masterBrick).getId()); + + String slave = innerMap.containsKey(SLAVE) ? innerMap.get(SLAVE).toString() : null; + String slaveHost = (slave != null) ? slave.split("([:]+)")[0] : null; + + details.setSlaveHostName(slaveHost); + details.setStatus(GeoRepSessionStatus.valueOf((String)innerMap.get(STATUS))); + details.setCrawlStatus(GeoRepCrawlStatus.valueOf((String)innerMap.get(CRAWL_STATUS))); + details.setCheckPointStatus((String)innerMap.get(CHECK_POINT_STATUS)); + return details; + } + + protected GlusterGeoRepSession getSession(Map<String, Object> innerMap) { + GlusterGeoRepSession geoRepSession = new GlusterGeoRepSession(); + // sessionslave in the form - <session_slave>11ae7a03-e793-4270-8fc4-b42def8b3051:ssh://192.168.122.14::slave2</session_slave> + String sessionSlave = (String) innerMap.get(SESSION_SLAVE); + String sessSplit[] = sessionSlave.split("([://]+)"); + String sessionId = sessSplit[0]; + String slaveNode = sessSplit[sessSplit.length -2]; + String slaveVolume = sessSplit[sessSplit.length -1]; + geoRepSession.setId(Guid.createGuidFromString(sessionId)); + geoRepSession.setSlaveHostName(slaveNode); + geoRepSession.setSlaveVolumeName(slaveVolume); + return geoRepSession; + } + + private GlusterDBUtils getDbUtils() { + return GlusterDBUtils.getInstance(); + } + + @SuppressWarnings("unchecked") + private void populateSessions(Map<String, Object> innerMap) { + if (innerMap.containsKey(SESSIONS)) { + for (Map<String, Object> session: (Map<String, Object>[]) innerMap.get(SESSIONS)) { + geoRepSessions.add(populateSession(session)); + } + } + } + + private GlusterGeoRepSession populateSession(Map<String, Object> innerMap) { + GlusterGeoRepSession geoRepSession = getSession(innerMap); + List<GlusterGeoRepSessionDetails> geoRepSessionDetails = new ArrayList<GlusterGeoRepSessionDetails>(); + if(innerMap.containsKey(GEO_REP_PAIRS)) { + for(Map<String, Object> sessionPair : (Map<String, Object>[]) innerMap.get(GEO_REP_PAIRS)) { + geoRepSessionDetails.add(getSessionDetails(sessionPair, geoRepSession)); + } + } + geoRepSession.setSessionDetails(geoRepSessionDetails); + return geoRepSession; + } + + public GlusterVolumeGeoRepStatusForXmlRpc(Map<String, Object> innerMap) { + super(innerMap); + populateSessions(innerMap); + } + + public List<GlusterGeoRepSession> getGeoRepSessions() { + return geoRepSessions; + } + +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java index bbba12b..6a93be1 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java @@ -16,6 +16,7 @@ import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc; @@ -1379,6 +1380,15 @@ } @Override + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName) { + JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepStatus").withParameter("volName", volumeName) + .withParameter("remoteHost", slaveHost) + .withParameter("remoteVolName", slaveVolumeName).build(); + Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); + return new GlusterVolumeGeoRepStatusForXmlRpc(response); + } + + @Override public GlusterVolumeTaskReturnForXmlRpc glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList) { JsonRpcRequest request = new RequestBuilder("GlusterVolume.removeBrickStatus").withParameter("volumeName", volumeName) 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 ff27a06..426ea6b 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 @@ -11,6 +11,7 @@ import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc; @@ -300,6 +301,8 @@ GlusterVolumeTaskReturnForXmlRpc glusterVolumeRebalanceStatus(String volumeName); + GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName); + GlusterVolumeTaskReturnForXmlRpc glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList); StatusOnlyReturnForXmlRpc setNumberOfCpus(String vmId, String numberOfCpus); 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 c937834..ca53686 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 @@ -289,6 +289,8 @@ public Map<String, Object> glusterVolumeRebalanceStatus(String volumeName); + public Map<String, Object> glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName); + public Map<String, Object> glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList); public Map<String, Object> setNumberOfCpus(String vmId, String numberOfCpus); 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 82e28e0..16fbf0c 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 @@ -13,6 +13,7 @@ import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc; @@ -1364,6 +1365,16 @@ } @Override + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName) { + try { + Map<String, Object> response = vdsServer.glusterVolumeGeoRepStatus(volumeName, slaveHost, slaveVolumeName); + return new GlusterVolumeGeoRepStatusForXmlRpc(response); + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override public GlusterVolumeTaskReturnForXmlRpc glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList) { try { Map<String, Object> xmlRpcReturnValue = vdsServer.glusterVolumeRemoveBrickStatus(volumeName, bricksList); 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 04cc904..8a31198 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 @@ -796,6 +796,9 @@ @DefaultStringValue("Failed to get gluster volume rebalance status") String GlusterVolumeRebalanceStatusFailedException(); + @DefaultStringValue("Failed to get gluster volume geo-replication status") + String GlusterVolumeGeoRepStatusDFailed(); + @DefaultStringValue("Failed to get status of gluster volume remove bricks") String GlusterVolumeRemoveBrickStatusFailed(); -- To view, visit http://gerrit.ovirt.org/31799 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id313742c9f3c036a0017fe37bd818af1bed0e081 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