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 Change-Id: I7449d6a786f3bae55752eb25f36f6210448cdd83 Signed-off-by: Sahina Bose <[email protected]> --- 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 R 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 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/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 13 files changed, 67 insertions(+), 80 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/37390/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 f35634a..8360f8a 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 0aff3e6..05f789b 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 840cd5e..da33d95 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 @@ -378,6 +378,7 @@ GlusterVolumeProfileStopFailed(4159), GlusterVolumeProfileInfoFailed(4160), GlusterVolumeStatusAllFailedException(4161), + GlusterVolumeGeoRepStatusFailed(4203), GlusterHostIsNotPartOfCluster(4403), GlusterAddHostFailed(4404), GlusterHostRemoveFailedException(4406), @@ -406,8 +407,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 9e7947e..2ea21e7 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 @@ -160,8 +160,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 ad0b67b..0c254d9 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -374,7 +374,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/GetGlusterVolumeGeoRepStatusVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionListVDSCommand.java similarity index 83% rename from backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepStatusVDSCommand.java rename to backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepSessionListVDSCommand.java index 0dca615..5ad1fd1 100644 --- 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/GetGlusterVolumeGeoRepSessionListVDSCommand.java @@ -3,10 +3,10 @@ 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> { +public class GetGlusterVolumeGeoRepSessionListVDSCommand<P extends GlusterVolumeGeoRepSessionVDSParameters> extends AbstractGlusterBrokerCommand<P> { GlusterVolumeGeoRepStatusForXmlRpc result; - public GetGlusterVolumeGeoRepStatusVDSCommand(P parameters) { + public GetGlusterVolumeGeoRepSessionListVDSCommand(P parameters) { super(parameters); } 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 78% 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..860416b 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); } 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..9e0f076 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,6 +9,7 @@ public class GlusterVolumeGeoRepStatusDetailForXmlRpc extends GlusterVolumeGeoRepStatusForXmlRpc { + private static final String SESSION_STATUS = "sessionStatus"; private static final String FILES_SYNCED = "filesSyncd"; private static final String FILES_PENDING = "filesPending"; private static final String BYTES_PENDING = "bytesPending"; @@ -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 3aaf89f..eb39aa5 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; @@ -20,30 +21,30 @@ private static final Logger log = LoggerFactory.getLogger(GlusterVolumeGeoRepStatusForXmlRpc.class); - protected static final String GEO_REP = "geo-rep"; 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>(); 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 = @@ -58,11 +59,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)); @@ -71,12 +69,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); @@ -89,26 +87,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); @@ -121,8 +121,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/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 e2b5fd5..6ce86b4 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; @@ -1103,6 +1103,7 @@ } } + @Override public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepResume(String volumeName, String slaveHostName, String slaveVolumeName, boolean force) { try{ Map<String, Object> xmlRpcReturnValue = vdsServer.glusterVolumeGeoRepResume(volumeName, slaveHostName, slaveVolumeName, force); @@ -1208,6 +1209,7 @@ } } + @Override public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepPause(String masterVolumeName, String slaveHost, String slaveVolumeName, boolean force) { try { return new StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeGeoRepPause(masterVolumeName, slaveHost, slaveVolumeName, force)); @@ -1402,7 +1404,7 @@ @Override public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus() { try { - Map<String, Object> response = vdsServer.glusterVolumeGeoRepStatus(); + Map<String, Object> response = vdsServer.glusterVolumeGeoRepSessionList(); return new GlusterVolumeGeoRepStatusForXmlRpc(response); } catch (UndeclaredThrowableException ute) { throw new XmlRpcRunTimeException(ute); @@ -1413,7 +1415,7 @@ public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(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); @@ -1424,7 +1426,7 @@ public GlusterVolumeGeoRepStatusForXmlRpc glusterVolumeGeoRepStatus(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); @@ -1434,7 +1436,8 @@ @Override public GlusterVolumeGeoRepStatusDetailForXmlRpc glusterVolumeGeoRepStatusDetail(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 http://gerrit.ovirt.org/37390 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7449d6a786f3bae55752eb25f36f6210448cdd83 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Sahina Bose <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
