Sahina Bose has uploaded a new change for review. Change subject: engine: Correct VDS geo-rep status ......................................................................
engine: Correct VDS geo-rep status As vdsm patch went through refactoring, fixing the engine code to reflect this - http://gerrit.ovirt.org/18414 Change-Id: I7449d6a786f3bae55752eb25f36f6210448cdd83 Signed-off-by: Sahina Bose <sab...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJob.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJobTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java M backend/manager/modules/dal/src/main/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/GetGlusterVolumeGeoRepSessionListVDSCommand.java R backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionStatusVDSCommand.java D backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusDetailForXmlRpc.java M 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 16 files changed, 142 insertions(+), 133 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/39629/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJob.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJob.java index bf478c2..08e7278 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJob.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJob.java @@ -308,7 +308,7 @@ return null; } // get details of geo-rep sessions in cluster - VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterVolumeGeoRepStatus, + VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterVolumeGeoRepSessionList, new GlusterVolumeGeoRepSessionVDSParameters(upServer.getId(), volumeName)); if (returnValue.getSucceeded()) { List<GlusterGeoRepSession> sessions = (List<GlusterGeoRepSession>) returnValue.getReturnValue(); @@ -335,7 +335,7 @@ return null; } try { - VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterVolumeGeoRepStatusDetail, + VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterVolumeGeoRepSessionStatus, new GlusterVolumeGeoRepSessionVDSParameters(upServer.getId(), session.getMasterVolumeName(), session.getSlaveHostName(), session.getSlaveVolumeName())); if (returnValue.getSucceeded()) { diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJobTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJobTest.java index ee80831..d916a42 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJobTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/gluster/GlusterGeoRepSyncJobTest.java @@ -96,7 +96,7 @@ public void testDiscoverGeoRepData() { doReturn(getSessionsVDSReturnVal(true, 2)).when(syncJob) - .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepStatus), + .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepSessionList), any(GlusterVolumeGeoRepSessionVDSParameters.class)); syncJob.discoverGeoRepData(); Mockito.verify(geoRepDao, times(2)).save(any(GlusterGeoRepSession.class)); @@ -106,7 +106,7 @@ public void testDiscoverGeoRepDataWhenNoSessions() { doReturn(getSessionsVDSReturnVal(true, 0)).when(syncJob) - .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepStatus), + .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepSessionList), any(GlusterVolumeGeoRepSessionVDSParameters.class)); syncJob.discoverGeoRepData(); Mockito.verify(geoRepDao, times(0)).save(any(GlusterGeoRepSession.class)); @@ -115,7 +115,7 @@ @Test public void testRefreshStatus() { doReturn(getSessionDetailsVDSReturnVal(true)).when(syncJob) - .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepStatusDetail), + .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepSessionStatus), any(GlusterVolumeGeoRepSessionVDSParameters.class)); syncJob.refreshGeoRepSessionStatus(); Mockito.verify(geoRepDao, times(2)).saveOrUpdateDetailsInBatch(any(List.class)); @@ -124,7 +124,7 @@ @Test public void testRefreshStatusNoSessions() { doReturn(getSessionDetailsVDSReturnVal(false)).when(syncJob) - .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepStatusDetail), + .runVdsCommand(eq(VDSCommandType.GetGlusterVolumeGeoRepSessionStatus), any(GlusterVolumeGeoRepSessionVDSParameters.class)); syncJob.refreshGeoRepSessionStatus(); Mockito.verify(geoRepDao, times(0)).saveOrUpdateDetailsInBatch(any(List.class)); 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 897dc57..ec4e990 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 @@ -376,6 +376,7 @@ GlusterVolumeProfileStopFailed(4159), GlusterVolumeProfileInfoFailed(4160), GlusterVolumeStatusAllFailedException(4161), + GlusterVolumeGeoRepStatusFailed(4203), GlusterHostIsNotPartOfCluster(4403), GlusterAddHostFailed(4404), GlusterHostRemoveFailedException(4406), @@ -404,8 +405,6 @@ GlusterVolumeGeoRepStopFailedException(4596), GlusterVolumeGeoRepPauseFailed(4597), GlusterVolumeGeoRepResumeFailed(4598), - GlusterVolumeGeoRepStatusFailed(4599), - GlusterVolumeGeoRepStatusDetailFailed(4600), GlusterVolumeGeoRepSyncFailed(4601), 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 cf1649d..3ef7f8f 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 @@ -161,8 +161,8 @@ 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"), - GetGlusterVolumeGeoRepStatusDetail("org.ovirt.engine.core.vdsbroker.gluster"), + GetGlusterVolumeGeoRepSessionList("org.ovirt.engine.core.vdsbroker.gluster"), + GetGlusterVolumeGeoRepSessionStatus("org.ovirt.engine.core.vdsbroker.gluster"), StopGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"), DeleteGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"), SetNumberOfCpus("org.ovirt.engine.core.vdsbroker"), 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 90f85fe..1e6f28a 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -372,7 +372,6 @@ GlusterVolumeStatusAllFailedException=Failed to get gluster tasks list GlusterVolumeRebalanceStatusFailedException=Failed to get gluster volume rebalance status GlusterVolumeGeoRepStatusFailedException=Failed to get status information of geo-replication session(s) on gluster volume -GlusterVolumeGeoRepStatusDetailFailedException=Failed to get detailed status information of geo-replication session(s) on gluster volume 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 184ea2e..a7db249 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 @@ -70,7 +70,6 @@ case GlusterVolumeRemoveBrickStatusFailed: case GlusterVolumeRemoveBricksCommitFailed: case GlusterVolumeGeoRepStatusFailed: - case GlusterVolumeGeoRepStatusDetailFailed: case GlusterLibgfapiException: case GlfsStatvfsException: case GlfsInitException: diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionListVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionListVDSCommand.java new file mode 100644 index 0000000..34ac9c9 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionListVDSCommand.java @@ -0,0 +1,37 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepSessionVDSParameters; +import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; + +public class GetGlusterVolumeGeoRepSessionListVDSCommand<P extends GlusterVolumeGeoRepSessionVDSParameters> extends AbstractGlusterBrokerCommand<P> { + GlusterVolumeGeoRepStatusForXmlRpc result; + + public GetGlusterVolumeGeoRepSessionListVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected StatusForXmlRpc getReturnStatus() { + return result.mStatus; + } + + @Override + protected void executeVdsBrokerCommand() { + GlusterVolumeGeoRepSessionVDSParameters parameter = getParameters(); + if (parameter.getVolumeName() == null) { + result = getBroker().glusterVolumeGeoRepSessionList(); + } else if (parameter.getSlaveHost() == null || parameter.getSlaveVolume() == null) { + result = getBroker().glusterVolumeGeoRepSessionList(parameter.getVolumeName()); + } else { + result = + getBroker().glusterVolumeGeoRepSessionList(parameter.getVolumeName(), + parameter.getSlaveHost(), + parameter.getSlaveVolume()); + } + proceedProxyReturnValue(); + if (getVDSReturnValue().getSucceeded()) { + setReturnValue(result.getGeoRepSessions()); + } + } + +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusDetailVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionStatusVDSCommand.java similarity index 62% rename from backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusDetailVDSCommand.java rename to backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionStatusVDSCommand.java index 5357ba7..f4a8089 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusDetailVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionStatusVDSCommand.java @@ -3,10 +3,10 @@ import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepSessionVDSParameters; import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; -public class GetGlusterVolumeGeoRepStatusDetailVDSCommand<P extends GlusterVolumeGeoRepSessionVDSParameters> extends AbstractGlusterBrokerCommand<P> { +public class GetGlusterVolumeGeoRepSessionStatusVDSCommand<P extends GlusterVolumeGeoRepSessionVDSParameters> extends AbstractGlusterBrokerCommand<P> { GlusterVolumeGeoRepStatusDetailForXmlRpc result; - public GetGlusterVolumeGeoRepStatusDetailVDSCommand(P parameters) { + public GetGlusterVolumeGeoRepSessionStatusVDSCommand(P parameters) { super(parameters); } @@ -18,7 +18,9 @@ @Override protected void executeVdsBrokerCommand() { GlusterVolumeGeoRepSessionVDSParameters parameter = getParameters(); - result = getBroker().glusterVolumeGeoRepStatusDetail(parameter.getVolumeName(), parameter.getSlaveHost(), parameter.getSlaveVolume()); + result = getBroker().glusterVolumeGeoRepSessionStatus(parameter.getVolumeName(), + parameter.getSlaveHost(), + parameter.getSlaveVolume()); proceedProxyReturnValue(); if (getVDSReturnValue().getSucceeded()) { setReturnValue(result.getGeoRepDetails()); 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 deleted file mode 100644 index 0dca615..0000000 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusVDSCommand.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ovirt.engine.core.vdsbroker.gluster; - -import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepSessionVDSParameters; -import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; - -public class GetGlusterVolumeGeoRepStatusVDSCommand<P extends GlusterVolumeGeoRepSessionVDSParameters> extends AbstractGlusterBrokerCommand<P> { - GlusterVolumeGeoRepStatusForXmlRpc result; - - public GetGlusterVolumeGeoRepStatusVDSCommand(P parameters) { - super(parameters); - } - - @Override - protected StatusForXmlRpc getReturnStatus() { - return result.mStatus; - } - - @Override - protected void executeVdsBrokerCommand() { - GlusterVolumeGeoRepSessionVDSParameters parameter = getParameters(); - if (parameter.getVolumeName() == null) { - result = getBroker().glusterVolumeGeoRepStatus(); - } else if (parameter.getSlaveHost() == null || parameter.getSlaveVolume() == null) { - result = getBroker().glusterVolumeGeoRepStatus(parameter.getVolumeName()); - } else { - result = getBroker().glusterVolumeGeoRepStatus(parameter.getVolumeName(), parameter.getSlaveHost(), parameter.getSlaveVolume()); - } - proceedProxyReturnValue(); - if (getVDSReturnValue().getSucceeded()) { - setReturnValue(result.getGeoRepSessions()); - } - } - -} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusDetailForXmlRpc.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusDetailForXmlRpc.java index 77cbf88..c041ca9 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusDetailForXmlRpc.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepStatusDetailForXmlRpc.java @@ -9,7 +9,8 @@ public class GlusterVolumeGeoRepStatusDetailForXmlRpc extends GlusterVolumeGeoRepStatusForXmlRpc { - private static final String FILES_SYNCED = "filesSyncd"; + private static final String SESSION_STATUS = "sessionStatus"; + private static final String FILES_SYNCED = "filesSynced"; private static final String FILES_PENDING = "filesPending"; private static final String BYTES_PENDING = "bytesPending"; private static final String DELETES_PENDING = "deletesPending"; @@ -18,8 +19,9 @@ private final ArrayList<GlusterGeoRepSessionDetails> geoRepDetails = new ArrayList<GlusterGeoRepSessionDetails>(); private final List<GlusterGeoRepSession> geoRepSessions = new ArrayList<GlusterGeoRepSession>(); - private GlusterGeoRepSessionDetails populatePairDetails(Map<String, Object> innerMap) { - GlusterGeoRepSessionDetails details = getSessionDetails(innerMap); + @Override + protected GlusterGeoRepSessionDetails getSessionDetails(Map<String, Object> innerMap) { + GlusterGeoRepSessionDetails details = super.getSessionDetails(innerMap); if (details != null) { Long filesSynced = innerMap.containsKey(FILES_SYNCED) ? Long.parseLong(innerMap.get(FILES_SYNCED).toString()) : null; @@ -41,26 +43,10 @@ return details; } - @SuppressWarnings("unchecked") - private void populateSessionDetails(Map<String, Object> innerMap) { - if (innerMap.containsKey(VOLUME_NAME)) { - String masterVolumeName = (String) innerMap.get(VOLUME_NAME); - GlusterGeoRepSession session = getSession(masterVolumeName, innerMap); - - if (innerMap.containsKey(GEO_REP_PAIRS)) { - for (Object sessionPair : (Object[]) innerMap.get(GEO_REP_PAIRS)) { - geoRepDetails.add(populatePairDetails((Map<String, Object>) sessionPair)); - } - } - session.setSessionDetails(geoRepDetails); - geoRepSessions.add(session); - } - } - public GlusterVolumeGeoRepStatusDetailForXmlRpc(Map<String, Object> innerMap) { super(innerMap, false); - if (innerMap.containsKey(GEO_REP)) { - populateSessionDetails((Map<String, Object>) innerMap.get(GEO_REP)); + if (innerMap.containsKey(SESSION_STATUS)) { + populateSessions((Map<String, Object>) innerMap.get(SESSION_STATUS)); } } 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 index 0c659b4..228de08 100644 --- 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 @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.ovirt.engine.core.common.businessentities.gluster.GeoRepCrawlStatus; import org.ovirt.engine.core.common.businessentities.gluster.GeoRepSessionStatus; @@ -18,31 +19,33 @@ public class GlusterVolumeGeoRepStatusForXmlRpc extends StatusReturnForXmlRpc { protected static final String GEO_REP = "geo-rep"; + + private static final Log log = LogFactory.getLog(GlusterVolumeGeoRepStatusForXmlRpc.class); + protected static final String VOLUME_NAME = "volumeName"; - protected static final String GEO_REP_PAIRS = "pairs"; + protected static final String BRICKS = "bricks"; 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 SESSION_KEY = "sessionKey"; + private static final String HOST_UUID = "hostUuid"; + private static final String BRICK_NAME = "brickName"; + private static final String REMOTE_HOST = "remoteHost"; private static final String STATUS = "status"; private static final String CHECK_POINT_STATUS = "checkpointStatus"; private static final String CRAWL_STATUS = "crawlStatus"; + private static final String REMOTE_VOL_NAME = "remoteVolumeName"; private final List<GlusterGeoRepSession> geoRepSessions = new ArrayList<GlusterGeoRepSession>(); - - private static final Log log = LogFactory.getLog(GlusterVolumeGeoRepStatusForXmlRpc.class); protected GlusterGeoRepSessionDetails getSessionDetails(Map<String, Object> innerMap) { GlusterGeoRepSessionDetails details = new GlusterGeoRepSessionDetails(); Guid masterNodeGlusterId; - if (innerMap.containsKey(MASTER_NODE_UUID)) { - masterNodeGlusterId = new Guid(innerMap.get(MASTER_NODE_UUID).toString()); + if (innerMap.containsKey(HOST_UUID)) { + masterNodeGlusterId = new Guid(innerMap.get(HOST_UUID).toString()); } else { log.error("Master node uuid is not available"); return null; } - String masterBrickDir = (innerMap.containsKey(MASTER_BRICK)) ? innerMap.get(MASTER_BRICK).toString() : null; + String masterBrickDir = (innerMap.containsKey(BRICK_NAME)) ? innerMap.get(BRICK_NAME).toString() : null; GlusterServer glusterServer = getDbUtils().getServerByUuid(masterNodeGlusterId); if (glusterServer != null) { GlusterBrickEntity brick = @@ -57,11 +60,8 @@ masterBrickDir); } - String slave = innerMap.containsKey(SLAVE) ? innerMap.get(SLAVE).toString() : null; - String[] slaveSplit = (slave != null) ? slave.split("([://]+)") : null; - if (slaveSplit != null && slaveSplit.length >= 2) { - details.setSlaveHostName(slaveSplit[slaveSplit.length - 2]); - } + String slave = innerMap.containsKey(REMOTE_HOST) ? innerMap.get(REMOTE_HOST).toString() : null; + details.setSlaveHostName(slave); details.setStatus(GeoRepSessionStatus.from((String) innerMap.get(STATUS))); details.setCrawlStatus(GeoRepCrawlStatus.from((String) innerMap.get(CRAWL_STATUS))); details.setCheckPointStatus((String) innerMap.get(CHECK_POINT_STATUS)); @@ -70,12 +70,12 @@ protected GlusterGeoRepSession getSession(String masterVolumeName, Map<String, Object> innerMap) { GlusterGeoRepSession geoRepSession = new GlusterGeoRepSession(); - // sessionslave in the form - the uuid is the gluster server uuid on master - // <session_slave>11ae7a03-e793-4270-8fc4-b42def8b3051:ssh://192.168.122.14::slave2</session_slave> - String sessionKey = (String) innerMap.get(SESSION_SLAVE); + // sessionKey in the form - the uuid is the gluster server uuid on master + // <sessionKey>11ae7a03-e793-4270-8fc4-b42def8b3051:ssh://192.168.122.14::slave2</sessionKey> + String sessionKey = (String) innerMap.get(SESSION_KEY); String sessSplit[] = sessionKey.split("([://]+)"); String slaveNode = sessSplit[sessSplit.length - 2]; - String slaveVolume = sessSplit[sessSplit.length - 1]; + String slaveVolume = (String) innerMap.get(REMOTE_VOL_NAME); geoRepSession.setSlaveHostName(slaveNode); geoRepSession.setSlaveVolumeName(slaveVolume); geoRepSession.setSessionKey(sessionKey); @@ -88,26 +88,28 @@ } @SuppressWarnings("unchecked") - private void populateSessions(Object[] geoRepVolSessions) { - for (Object geoRepVolSession : geoRepVolSessions) { - Map<String, Object> innerMap = (Map<String, Object>) geoRepVolSession; - if (innerMap.containsKey(VOLUME_NAME)) { - String masterVolName = (String) innerMap.get(VOLUME_NAME); - if (innerMap.containsKey(SESSIONS)) { - for (Object session : (Object[]) innerMap.get(SESSIONS)) { - geoRepSessions.add(populateSession(masterVolName, (Map<String, Object>) session)); - } + protected void populateSessions(Map<String, Object> geoRepVolSessions) { + for (Entry<String, Object> entry : geoRepVolSessions.entrySet()) { + log.debug("received session information for volume '{}'", entry.getKey()); + String masterVolName = entry.getKey(); + + Map<String, Object> sessionsMap = (Map<String, Object>) entry.getValue(); + + if (sessionsMap.containsKey(SESSIONS)) { + for (Object session : (Object[]) sessionsMap.get(SESSIONS)) { + geoRepSessions.add(populateSession(masterVolName, (Map<String, Object>) session)); } } } + } private GlusterGeoRepSession populateSession(String volumeName, Map<String, Object> innerMap) { GlusterGeoRepSession geoRepSession = getSession(volumeName, innerMap); ArrayList<GlusterGeoRepSessionDetails> geoRepSessionDetails = new ArrayList<GlusterGeoRepSessionDetails>(); - if (innerMap.containsKey(GEO_REP_PAIRS)) { - for (Object sessionPair : (Object[]) innerMap.get(GEO_REP_PAIRS)) { - geoRepSessionDetails.add(getSessionDetails((Map<String, Object>) sessionPair)); + if (innerMap.containsKey(BRICKS)) { + for (Object brickSession : (Object[]) innerMap.get(BRICKS)) { + geoRepSessionDetails.add(getSessionDetails((Map<String, Object>) brickSession)); } } geoRepSession.setSessionDetails(geoRepSessionDetails); @@ -120,8 +122,8 @@ public GlusterVolumeGeoRepStatusForXmlRpc(Map<String, Object> innerMap, boolean includeSessions) { super(innerMap); - if (includeSessions && innerMap.containsKey(GEO_REP)) { - populateSessions((Object[]) innerMap.get(GEO_REP)); + if (includeSessions && innerMap.containsKey(SESSIONS)) { + populateSessions((Map<String, Object>) innerMap.get(SESSIONS)); } } 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 27cb0db..c84df99 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 @@ -18,8 +18,8 @@ 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.GlusterVolumeGeoRepStatusDetailForXmlRpc; +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; @@ -1294,6 +1294,7 @@ return new StatusOnlyReturnForXmlRpc(response); } + @Override public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepPause(String masterVolumeName, String slaveHost, String slaveVolumeName, boolean force) { JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepPause").withParameter("volumeName", masterVolumeName) .withParameter("remoteHost", slaveHost) @@ -1492,15 +1493,15 @@ } @Override - public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus() { - JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepStatus").build(); + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList() { + JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepSessionList").build(); Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); return new GlusterVolumeGeoRepStatusForXmlRpc(response); } @Override - public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName) { - JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepStatus") + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(String volumeName) { + JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepSessionList") .withParameter("volName", volumeName) .build(); Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); @@ -1508,8 +1509,11 @@ } @Override - public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName) { - JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepStatus").withParameter("volName", volumeName) + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(String volumeName, + String slaveHost, + String slaveVolumeName) { + JsonRpcRequest request = + new RequestBuilder("GlusterVolume.geoRepSessionList").withParameter("volName", volumeName) .withParameter("remoteHost", slaveHost) .withParameter("remoteVolName", slaveVolumeName).build(); Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); @@ -1517,8 +1521,11 @@ } @Override - public GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepStatusDetail(String volumeName, String slaveHost, String slaveVolumeName) { - JsonRpcRequest request = new RequestBuilder("GlusterVolume.geoRepStatusDetail").withParameter("volName", volumeName) + public GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepSessionStatus(String volumeName, + String slaveHost, + String slaveVolumeName) { + JsonRpcRequest request = + new RequestBuilder("GlusterVolume.geoRepSessionStatus").withParameter("volName", volumeName) .withParameter("remoteHost", slaveHost) .withParameter("remoteVolName", slaveVolumeName).build(); Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); 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 7c08c83..1384564 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 @@ -13,8 +13,8 @@ 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.GlusterVolumeGeoRepStatusDetailForXmlRpc; +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; @@ -315,13 +315,17 @@ GlusterVolumeTaskReturnForXmlRpc glusterVolumeRebalanceStatus(String volumeName); - GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(); + GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(); - GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName); + GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(String volumeName); - GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName); + GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(String volumeName, + String slaveHost, + String slaveVolumeName); - GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepStatusDetail(String volumeName, String slaveHost, String slaveVolumeName); + GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepSessionStatus(String volumeName, + String slaveHost, + String slaveVolumeName); GlusterVolumeTaskReturnForXmlRpc glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList); 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 6eae2dc..1f01276 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 @@ -299,13 +299,17 @@ public Map<String, Object> glusterVolumeRebalanceStatus(String volumeName); - public Map<String, Object> glusterVolumeGeoRepStatus(); + public Map<String, Object> glusterVolumeGeoRepSessionList(); - public Map<String, Object> glusterVolumeGeoRepStatus(String volumeName); + public Map<String, Object> glusterVolumeGeoRepSessionList(String volumeName); - public Map<String, Object> glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName); + public Map<String, Object> glusterVolumeGeoRepSessionList(String volumeName, + String slaveHost, + String slaveVolumeName); - public Map<String, Object> glusterVolumeGeoRepStatusDetail(String volumeName, String slaveHost, String slaveVolumeName); + public Map<String, Object> glusterVolumeGeoRepSessionStatus(String volumeName, + String slaveHost, + String slaveVolumeName); public Map<String, Object> glusterVolumeRemoveBrickStatus(String volumeName, String[] bricksList); 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 d4269be..5a13b97 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 @@ -14,8 +14,8 @@ 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.GlusterVolumeGeoRepStatusDetailForXmlRpc; +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; @@ -1102,6 +1102,7 @@ } } + @Override public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepResume(String volumeName, String slaveHostName, String slaveVolumeName, boolean force) { try{ Map<String, Object> xmlRpcReturnValue = vdsServer.glusterVolumeGeoRepResume(volumeName, slaveHostName, slaveVolumeName, force); @@ -1207,6 +1208,7 @@ } } + @Override public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepPause(String masterVolumeName, String slaveHost, String slaveVolumeName, boolean force) { try { return new StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeGeoRepPause(masterVolumeName, slaveHost, slaveVolumeName, force)); @@ -1399,9 +1401,9 @@ } @Override - public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus() { + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList() { try { - Map<String, Object> response = vdsServer.glusterVolumeGeoRepStatus(); + Map<String, Object> response = vdsServer.glusterVolumeGeoRepSessionList(); return new GlusterVolumeGeoRepStatusForXmlRpc(response); } catch (UndeclaredThrowableException ute) { throw new XmlRpcRunTimeException(ute); @@ -1409,10 +1411,10 @@ } @Override - public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName) { + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(String volumeName) { try { Map<String, Object> response; - response = vdsServer.glusterVolumeGeoRepStatus(volumeName); + response = vdsServer.glusterVolumeGeoRepSessionList(volumeName); return new GlusterVolumeGeoRepStatusForXmlRpc(response); } catch (UndeclaredThrowableException ute) { throw new XmlRpcRunTimeException(ute); @@ -1420,10 +1422,12 @@ } @Override - public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(String volumeName, String slaveHost, String slaveVolumeName) { + public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepSessionList(String volumeName, + String slaveHost, + String slaveVolumeName) { try { Map<String, Object> response; - response = vdsServer.glusterVolumeGeoRepStatus(volumeName, slaveHost, slaveVolumeName); + response = vdsServer.glusterVolumeGeoRepSessionList(volumeName, slaveHost, slaveVolumeName); return new GlusterVolumeGeoRepStatusForXmlRpc(response); } catch (UndeclaredThrowableException ute) { throw new XmlRpcRunTimeException(ute); @@ -1431,9 +1435,12 @@ } @Override - public GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepStatusDetail(String volumeName, String slaveHost, String slaveVolumeName) { + public GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepSessionStatus(String volumeName, + String slaveHost, + String slaveVolumeName) { try { - Map<String, Object> response = vdsServer.glusterVolumeGeoRepStatusDetail(volumeName, slaveHost, slaveVolumeName); + Map<String, Object> response = + vdsServer.glusterVolumeGeoRepSessionStatus(volumeName, slaveHost, slaveVolumeName); return new GlusterVolumeGeoRepStatusDetailForXmlRpc(response); } catch (UndeclaredThrowableException ute) { throw new XmlRpcRunTimeException(ute); diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java index 4f513ff..790957e 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 @@ -812,9 +812,6 @@ @DefaultStringValue("Failed to get status information of geo-replication session(s) on gluster volume") String GlusterVolumeGeoRepStatusFailed(); - @DefaultStringValue("Failed to get detailed status information of geo-replication session(s) on gluster volume") - String GlusterVolumeGeoRepStatusDetailFailed(); - @DefaultStringValue("Failed to get status of gluster volume remove bricks") String GlusterVolumeRemoveBrickStatusFailed(); -- To view, visit https://gerrit.ovirt.org/39629 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7449d6a786f3bae55752eb25f36f6210448cdd83 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5-gluster Gerrit-Owner: Sahina Bose <sab...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches