anmolbabu has uploaded a new change for review.

Change subject: engine: gluster volume geo replication
......................................................................

engine: gluster volume geo replication

Change-Id: If86abee9276b8f2e4bdd4a4276dbbd76b9514c68
Signed-off-by: Anmol Babu <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoRepSessionCreateCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoRepParamater.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepDetailPair.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepMasterVolume.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepPair.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepSession.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepVolume.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.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/errors/VdcBllMessages.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/GlusterVolumeGeoRepVDSParamaters.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/GlusterVolumeGeoRepSessionCreateVDSCommand.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
20 files changed, 348 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/29605/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoRepSessionCreateCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoRepSessionCreateCommand.java
new file mode 100644
index 0000000..a67592a
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoRepSessionCreateCommand.java
@@ -0,0 +1,68 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import org.ovirt.engine.core.common.AuditLogType;
+import org.ovirt.engine.core.common.action.LockProperties;
+import org.ovirt.engine.core.common.action.LockProperties.Scope;
+import 
org.ovirt.engine.core.common.action.gluster.GlusterVolumeGeoRepParamater;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.core.common.errors.VdcBllMessages;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepVDSParamaters;
+
+public class GlusterVolumeGeoRepSessionCreateCommand extends 
GlusterCommandBase<GlusterVolumeGeoRepParamater>{
+
+    GlusterVolumeEntity masterVolume;
+    GlusterVolumeGeoRepParamater parameter;
+
+    public 
GlusterVolumeGeoRepSessionCreateCommand(GlusterVolumeGeoRepParamater params) {
+        super(params);
+    }
+
+    @Override
+    protected LockProperties applyLockProperties(LockProperties 
lockProperties) {
+        return lockProperties.withScope(Scope.Command);
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        
addCanDoActionMessage(VdcBllMessages.VAR_ACTION_CREATE_GEO_REPLICATION_SESSION);
+        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__GLUSTER_VOLUME);
+        super.setActionMessageParameters();
+    }
+
+    @Override
+    protected boolean canDoAction() {
+        parameter = getParameters();
+        if (parameter == null || parameter.getVolumeId() == null || 
parameter.getSlaveNodeIp() == null || parameter.getSlaveVolumeId() == null) {
+            return false;
+        }
+        masterVolume = getGlusterVolumeDao().getById(parameter.getVolumeId());
+        if (masterVolume.getStatus() == GlusterStatus.DOWN) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        if(getSucceeded()) {
+            return AuditLogType.GLUSTER_VOLUME_GEO_REP_START;
+        } else {
+            return AuditLogType.GLUSTER_VOLUME_GEO_REP_START_FAILED;
+        }
+    }
+
+    @Override
+    protected void executeCommand() {
+        GlusterVolumeEntity slaveVolume = 
getGlusterVolumeDao().getById(parameter.getSlaveVolumeId());
+        VDSReturnValue returnValue = 
runVdsCommand(VDSCommandType.CreateGlusterVolumeGeoRepSession, new 
GlusterVolumeGeoRepVDSParamaters(upServer.getId(), masterVolume.getName(), 
parameter.getSlaveNodeIp(), slaveVolume.getName(), parameter.isForce()));
+        if (!getSucceeded()) {
+            handleVdsError(AuditLogType.GLUSTER_VOLUME_GEO_REP_START_FAILED, 
returnValue.getVdsError().getMessage());
+            return;
+        }
+        setSucceeded(returnValue.getSucceeded());
+        getReturnValue().setActionReturnValue(returnValue);
+    }
+}
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 f8ca690..f7fc4af 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
@@ -374,6 +374,8 @@
     REMOVE_GLUSTER_VOLUME_BRICKS_NOT_FOUND_FROM_CLI(4092, 
AuditLogSeverity.WARNING),
     GLUSTER_VOLUME_DETAILS_REFRESH(4093),
     GLUSTER_VOLUME_DETAILS_REFRESH_FAILED(4094, AuditLogSeverity.ERROR),
+    GLUSTER_VOLUME_GEO_REP_START(4095),
+    GLUSTER_VOLUME_GEO_REP_START_FAILED(4096, AuditLogSeverity.ERROR),
 
     USER_FORCE_SELECTED_SPM(159),
     USER_VDS_RESTART(41),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoRepParamater.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoRepParamater.java
new file mode 100644
index 0000000..e81bea0
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoRepParamater.java
@@ -0,0 +1,40 @@
+package org.ovirt.engine.core.common.action.gluster;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class GlusterVolumeGeoRepParamater extends GlusterVolumeParameters{
+
+    private static final long serialVersionUID = 1L;
+    
+    //Master Volume id is volumeId of base class
+
+    private String slaveNodeIp;
+
+    private Guid slaveVolumeId;
+
+    private boolean isForce;
+
+    public String getSlaveNodeIp() {
+        return slaveNodeIp;
+    }
+
+    public void setSlaveNodeIp(String slaveNodeIp) {
+        this.slaveNodeIp = slaveNodeIp;
+    }
+
+    public Guid getSlaveVolumeId() {
+        return slaveVolumeId;
+    }
+
+    public void setSlaveVolumeId(Guid slaveVolumeId) {
+        this.slaveVolumeId = slaveVolumeId;
+    }
+
+    public boolean isForce() {
+        return isForce;
+    }
+
+    public void setForce(boolean isForce) {
+        this.isForce = isForce;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepDetailPair.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepDetailPair.java
new file mode 100644
index 0000000..d28043b
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepDetailPair.java
@@ -0,0 +1,39 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+public class GlusterGeoRepDetailPair extends GlusterGeoRepPair{
+    Long files_syncd;
+    Long files_pending;
+    Long bytes_pending;
+    Long deletes_pending;
+    Long files_skipped;
+    public Long getFiles_syncd() {
+        return files_syncd;
+    }
+    public void setFiles_syncd(Long files_syncd) {
+        this.files_syncd = files_syncd;
+    }
+    public Long getFiles_pending() {
+        return files_pending;
+    }
+    public void setFiles_pending(Long files_pending) {
+        this.files_pending = files_pending;
+    }
+    public Long getBytes_pending() {
+        return bytes_pending;
+    }
+    public void setBytes_pending(Long bytes_pending) {
+        this.bytes_pending = bytes_pending;
+    }
+    public Long getDeletes_pending() {
+        return deletes_pending;
+    }
+    public void setDeletes_pending(Long deletes_pending) {
+        this.deletes_pending = deletes_pending;
+    }
+    public Long getFiles_skipped() {
+        return files_skipped;
+    }
+    public void setFiles_skipped(Long files_skipped) {
+        this.files_skipped = files_skipped;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepMasterVolume.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepMasterVolume.java
new file mode 100644
index 0000000..9344708
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepMasterVolume.java
@@ -0,0 +1,13 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+public class GlusterGeoRepMasterVolume extends GlusterGeoRepVolume {
+    String brickName;
+
+    public String getBrickName() {
+        return brickName;
+    }
+
+    public void setBrickName(String brickName) {
+        this.brickName = brickName;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepPair.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepPair.java
new file mode 100644
index 0000000..4b5dafd
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepPair.java
@@ -0,0 +1,41 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+
+public class GlusterGeoRepPair {
+    GlusterGeoRepVolume slaveVolume;
+    GlusterGeoRepMasterVolume masterVolume;
+    String pairStatus;
+    String checkPointStatus;
+    String crawlStatus;
+
+    public GlusterGeoRepVolume getSlaveVolume() {
+        return slaveVolume;
+    }
+    public void setSlaveVolume(GlusterGeoRepVolume slaveVolume) {
+        this.slaveVolume = slaveVolume;
+    }
+    public GlusterGeoRepMasterVolume getMasterVolume() {
+        return masterVolume;
+    }
+    public void setMasterVolume(GlusterGeoRepMasterVolume masterVolume) {
+        this.masterVolume = masterVolume;
+    }
+    public String getPairStatus() {
+        return pairStatus;
+    }
+    public void setPairStatus(String pairStatus) {
+        this.pairStatus = pairStatus;
+    }
+    public String getCheckPointStatus() {
+        return checkPointStatus;
+    }
+    public void setCheckPointStatus(String checkPointStatus) {
+        this.checkPointStatus = checkPointStatus;
+    }
+    public String getCrawlStatus() {
+        return crawlStatus;
+    }
+    public void setCrawlStatus(String crawlStatus) {
+        this.crawlStatus = crawlStatus;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepSession.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepSession.java
new file mode 100644
index 0000000..605592f
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepSession.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+import java.util.List;
+
+public class GlusterGeoRepSession {
+    List<GlusterGeoRepPair> pairList;
+
+    public List<GlusterGeoRepPair> getPairList() {
+        return pairList;
+    }
+
+    public void setPairList(List<GlusterGeoRepPair> pairList) {
+        this.pairList = pairList;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepVolume.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepVolume.java
new file mode 100644
index 0000000..e6ea8ad
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterGeoRepVolume.java
@@ -0,0 +1,43 @@
+package org.ovirt.engine.core.common.businessentities.gluster;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class GlusterGeoRepVolume {
+
+    String nodeHostName;
+    String name;
+    Guid id;
+    Guid nodeUuid;
+
+    public Guid getId() {
+        return id;
+    }
+
+    public void setId(Guid id) {
+        this.id = id;
+    }
+
+    public String getNodeHostName() {
+        return nodeHostName;
+    }
+
+    public void setNodeHostName(String nodeHostName) {
+        this.nodeHostName = nodeHostName;
+    }
+
+    public String getVolumeName() {
+        return name;
+    }
+
+    public void setSlaveVolumeName(String slaveVolumeName) {
+        this.name = slaveVolumeName;
+    }
+
+    public Guid getSlaveNodeUuid() {
+        return nodeUuid;
+    }
+
+    public void setSlaveNodeUuid(Guid slaveNodeUuid) {
+        this.nodeUuid = slaveNodeUuid;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
index 5a0f113..f097281 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
@@ -17,6 +17,7 @@
 import org.ovirt.engine.core.common.businessentities.BusinessEntityWithStatus;
 import org.ovirt.engine.core.common.businessentities.IVdcQueryable;
 import org.ovirt.engine.core.common.constants.gluster.GlusterConstants;
+import org.ovirt.engine.core.common.job.JobExecutionStatus;
 import org.ovirt.engine.core.common.utils.ListUtils;
 import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.common.validation.group.CreateEntity;
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 32758a5..52530ee 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),
+    GlusterVolumeGeoReplicationSessionCreateFailed(4162),
     GlusterHostIsNotPartOfCluster(4403),
     GlusterAddHostFailed(4404),
     GlusterHostRemoveFailedException(4406),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
index 2597294..55fad6d 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
@@ -86,6 +86,7 @@
     VAR__ACTION__HOT_UNPLUG,
     VAR__ACTION__LOGON,
     VAR__ACTION__LOGOFF,
+    VAR_ACTION_CREATE_GEO_REPLICATION_SESSION,
     VAR__ACTION__REBALANCE_START,
     VAR__ACTION__REBALANCE_STOP,
     VAR__ACTION__REMOVE_BRICKS_START,
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 0b68804..898ee3d 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
@@ -136,6 +136,7 @@
     StopRebalanceGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"),
     AddBricksToGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"),
     ReplaceGlusterVolumeBrick("org.ovirt.engine.core.vdsbroker.gluster"),
+    
CreateGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
     RemoveGlusterServer("org.ovirt.engine.core.vdsbroker.gluster"),
     AddGlusterServer("org.ovirt.engine.core.vdsbroker.gluster"),
     GlusterServersList("org.ovirt.engine.core.vdsbroker.gluster"),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepVDSParamaters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepVDSParamaters.java
new file mode 100644
index 0000000..91ebc41
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepVDSParamaters.java
@@ -0,0 +1,45 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class GlusterVolumeGeoRepVDSParamaters extends 
GlusterVolumeVDSParameters {
+    //Master Volume id is volumeId of base class
+
+    private String slaveNodeIp;
+
+    private String slaveVolumeName;
+
+    private boolean isForce;
+
+    
+    public GlusterVolumeGeoRepVDSParamaters(Guid serverId, String volumeName, 
String slaveNodeIp, String slaveVolumeName, boolean isForce) {
+        super(serverId, volumeName);
+        this.slaveNodeIp = slaveNodeIp;
+        this.slaveVolumeName = slaveVolumeName;
+        this.isForce = isForce;
+    }
+
+    public String getSlaveNodeIp() {
+        return slaveNodeIp;
+    }
+
+    public void setSlaveNodeIp(String slaveNodeIp) {
+        this.slaveNodeIp = slaveNodeIp;
+    }
+
+    public boolean isForce() {
+        return isForce;
+    }
+
+    public void setForce(boolean isForce) {
+        this.isForce = isForce;
+    }
+
+    public String getSlaveVolumeName() {
+        return slaveVolumeName;
+    }
+
+    public void setSlaveVolumeName(String slaveVolumeName) {
+        this.slaveVolumeName = slaveVolumeName;
+    }
+}
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 f98da09..5fcefd7 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -346,6 +346,7 @@
 GlusterVolumeRemoveBricksCommitFailed=Failed to commit removal of Bricks from 
Gluster Volume
 GlusterVolumeProfileStartFailed=Gluster Volume Profile Start Failed
 GlusterVolumeProfileStopFailed=Gluster Volume Profile Stop Failed
+GlusterVolumeGeoReplicationSessionCreateFailed=Gluster Volume Geo-Replication 
Session Creation Failed
 GlusterAddHostFailed=Gluster Server Add Failed
 GlusterHostRemoveFailedException=Gluster Host Remove Failed
 GlusterHostIsNotPartOfCluster=Host is not part of the cluster
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..266ce2f 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 GlusterVolumeGeoReplicationSessionCreateFailed:
         case GlusterLibgfapiException:
         case GlfsStatvfsException:
         case GlfsInitException:
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepSessionCreateVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepSessionCreateVDSCommand.java
new file mode 100644
index 0000000..d0c1ca5
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoRepSessionCreateVDSCommand.java
@@ -0,0 +1,18 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepVDSParamaters;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeVDSParameters;
+
+public class GlusterVolumeGeoRepSessionCreateVDSCommand<P extends 
GlusterVolumeVDSParameters> extends AbstractGlusterBrokerCommand<P> {
+
+    public GlusterVolumeGeoRepSessionCreateVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        GlusterVolumeGeoRepVDSParamaters parameters = 
(GlusterVolumeGeoRepVDSParamaters)getParameters();
+        status = 
getBroker().glusterVolumeCreateGeoRepSession(parameters.getVdsId(), 
parameters.getVolumeName(), parameters.getSlaveNodeIp(), 
parameters.getSlaveVolumeName());
+        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 64a7c68..632fcdc 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
@@ -267,6 +267,8 @@
 
     StatusOnlyReturnForXmlRpc glusterVolumeProfileStop(String volumeName);
 
+    StatusOnlyReturnForXmlRpc glusterVolumeCreateGeoRepSession(Guid 
masterServerId, String masterVolumeName, String slaveServerIp, String 
slaveVolumeName);
+
     GlusterVolumeStatusReturnForXmlRpc glusterVolumeStatus(Guid clusterId,
             String volumeName,
             String brickName,
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 de27444..d5b2377 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
@@ -3,6 +3,8 @@
 import java.util.Map;
 import java.util.concurrent.FutureTask;
 
+import org.ovirt.engine.core.compat.Guid;
+
 public interface VdsServerConnector {
     public Map<String, Object> create(Map createInfo);
 
@@ -239,6 +241,8 @@
 
     public Map<String, Object> glusterVolumeReplaceBrickStart(String 
volumeName, String existingBrickDir, String newBrickDir);
 
+    public Map<String, Object> glusterVolumeCreateGeoRepSession(Guid 
masterServerId, String masterVolumeName, String slaveServerIp, String 
slaveVolumeName);
+
     public Map<String, Object> glusterHostAdd(String hostName);
 
     public Map<String, Object> glusterHostsList();
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 0d54aaa..cc7f155 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
@@ -1186,6 +1186,15 @@
     }
 
     @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeCreateGeoRepSession(Guid 
masterServerId, String masterVolumeName, String slaveServerIp, String 
slaveVolumeName) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeCreateGeoRepSession(masterServerId,
 masterVolumeName, slaveServerIp, slaveVolumeName));
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
     public StatusOnlyReturnForXmlRpc glusterVolumeProfileStop(String 
volumeName) {
         try {
             return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeProfileStop(volumeName));
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..1126a50 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
@@ -717,6 +717,9 @@
     @DefaultStringValue("Gluster Volume Rebalance Start Failed.")
     String GlusterVolumeRebalanceStartFailed();
 
+    @DefaultStringValue("Gluster Volume Geo-Replication Session Creation 
Failed")
+    String GlusterVolumeGeoReplicationSessionCreateFailed();
+
     @DefaultStringValue("Gluster Volume Rebalance Stop Failed.")
     String GlusterVolumeRebalanceStopFailed();
 


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

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

Reply via email to