Selvasundaram has uploaded a new change for review.

Change subject: engine: Gluster Volume Georeplication Stop
......................................................................

engine: Gluster Volume Georeplication Stop

   - New Bll action and parameter
   - New VDS command and parameter
   - Audit Log Messages and Severities
   - App Errors
   - Vdsm Errors

Change-Id: I0ea1eff5552f1cc84c12344db67c643ab97f6bc0
Signed-off-by: Selvasundaram <sesub...@redhat.com>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoreplicationStopCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoreplicationIdParameters.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/java/org/ovirt/engine/core/dal/VdcBllMessages.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M 
backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
M backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoreplicationStopVDSCommand.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
15 files changed, 259 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/8922/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoreplicationStopCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoreplicationStopCommand.java
new file mode 100644
index 0000000..39f86ea
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterVolumeGeoreplicationStopCommand.java
@@ -0,0 +1,172 @@
+package org.ovirt.engine.core.bll.gluster;
+
+import org.apache.commons.lang.StringUtils;
+import org.ovirt.engine.core.bll.NonTransactiveCommandAttribute;
+import org.ovirt.engine.core.common.AuditLogType;
+import 
org.ovirt.engine.core.common.action.gluster.GlusterVolumeGeoreplicationIdParameters;
+import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VDSGroup;
+import org.ovirt.engine.core.common.businessentities.VDSStatus;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoreplicationEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
+import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoreplicationVDSParameters;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dal.VdcBllMessages;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.dao.gluster.GlusterGeoreplicationDao;
+
+/**
+ * BLL command to Gluster Volume Geo-replication Stop
+ */
+@NonTransactiveCommandAttribute
+public class GlusterVolumeGeoreplicationStopCommand
+        extends GlusterCommandBase<GlusterVolumeGeoreplicationIdParameters> {
+
+    private static final long serialVersionUID = 8535744691720840682L;
+
+    private GlusterGeoreplicationEntity georepEntity;
+
+    public 
GlusterVolumeGeoreplicationStopCommand(GlusterVolumeGeoreplicationIdParameters 
params) {
+        super(params);
+    }
+
+    @Override
+    protected void setActionMessageParameters() {
+        addCanDoActionMessage(VdcBllMessages.VAR__ACTION__START);
+        addCanDoActionMessage(VdcBllMessages.VAR__TYPE__GLUSTER_VOLUME);
+    }
+
+
+    @Override
+    protected boolean canDoAction() {
+        try {
+            georepEntity = getGeoreplicationEntity();
+        } catch (Exception e) {
+            
addCanDoActionMessage(VdcBllMessages.CAN_DO_ACTION_GENERAL_FAILURE);
+            return false;
+        }
+
+        if (georepEntity == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_NO_GEOREPLICATION_FOUND);
+            return false;
+        }
+
+        if (!super.canDoAction()) {
+            return false;
+        }
+
+        if (upServer.getstatus() != VDSStatus.Up) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_SERVER_IS_NOT_UP);
+            return false;
+        }
+
+        if (getGlusterVolume().getStatus() == GlusterStatus.DOWN) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_GLUSTER_VOLUME_IS_DOWN);
+            return false;
+        }
+
+        VDSGroup cluster = getVdsGroup();
+        if (cluster == null) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_CLUSTER_IS_NOT_VALID);
+            return false;
+        }
+
+        if (!cluster.supportsGlusterService()) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_CLUSTER_DOES_NOT_SUPPORT_GLUSTER);
+            return false;
+        }
+
+        if (StringUtils.isEmpty(georepEntity.getRemoteServerIpOrHostname())) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_REMOTE_SERVER_REQUIRED);
+            return false;
+        }
+
+        if (StringUtils.isEmpty(georepEntity.getFingerprint())) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_INVALID_FINGERPRINT);
+            return false;
+        }
+
+        if (StringUtils.isEmpty(georepEntity.getUserName())) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_USERNAME_REQUIRED);
+            return false;
+        }
+
+        if (StringUtils.isEmpty(georepEntity.getRemoteVolumeOrDir())) {
+            
addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_VOLUME_OR_DIR_REQUIRED);
+            return false;
+        }
+
+        return true;
+    }
+
+    public GlusterGeoreplicationDao getGlusterGeoReplicationDao() {
+        return DbFacade.getInstance().getGlusterGeoreplicationDao();
+    }
+
+    public GlusterGeoreplicationEntity getGeoreplicationEntity() {
+        return georepEntity = 
getGlusterGeoReplicationDao().getById(getParameters().getId());
+    }
+
+    /**
+     * GetUpServer return the Server of Server Id passed in the parameter. 
Overriding this method to reuse the existing
+     * canDoAction
+     */
+    @Override
+    protected VDS getUpServer() {
+        return getVdsDAO().get(georepEntity.getServerId());
+    }
+
+    @Override
+    protected GlusterVolumeEntity getGlusterVolume() {
+        if (georepEntity.getVolumeId() != null) {
+            return 
getGlusterVolumeDao().getById(georepEntity.getVolumeId().getValue());
+        }
+        return null;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.ovirt.engine.core.bll.CommandBase#executeCommand()
+     */
+    @Override
+    protected void executeCommand() {
+        VDSReturnValue returnValue = runVdsCommand(
+                VDSCommandType.GlusterVolumeGeoReplicationStop,
+                new GlusterVolumeGeoreplicationVDSParameters(upServer.getId(),
+                        getGlusterVolume().getName(),
+                        georepEntity.getRemoteServerIpOrHostname(),
+                        georepEntity.getRemoteVolumeOrDir()));
+        setSucceeded(returnValue.getSucceeded());
+
+        if (!getSucceeded()) {
+            handleVdsError(AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_START,
+                    returnValue.getVdsError().getMessage());
+            return;
+        }
+        removeFromDb(getParameters().getId());
+    }
+
+    private void removeFromDb(Guid georepId) {
+        
getDbFacade().getGlusterGeoreplicationDao().removeGeoreplication(georepId);
+    }
+
+    @Override
+    public DbFacade getDbFacade() {
+        return DbFacade.getInstance();
+    }
+
+    @Override
+    public AuditLogType getAuditLogTypeValue() {
+        if (getSucceeded()) {
+            return AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_STOP;
+        } else {
+            return errorType == null
+                    ? AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_STOP_FAILED
+                    : errorType;
+        }
+    }
+}
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 b5dd23c..e3d35ba 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
@@ -213,6 +213,8 @@
     PASSWORDLESS_SSH_CONFIG_FAILED(4407),
     GLUSTER_VOLUME_GEO_REPLICATION_START(4022),
     GLUSTER_VOLUME_GEO_REPLICATION_START_FAILED(4023),
+    GLUSTER_VOLUME_GEO_REPLICATION_STOP(4024),
+    GLUSTER_VOLUME_GEO_REPLICATION_STOP_FAILED(4025),
 
     USER_VDS_RESTART(41),
     USER_FAILED_VDS_RESTART(107),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
index ad57b05..769cb44 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/VdcEventNotificationUtils.java
@@ -64,6 +64,10 @@
                 AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_START);
         AddEventNotificationEntry(EventNotificationEntity.GlusterVolume,
                 AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_START_FAILED);
+        AddEventNotificationEntry(EventNotificationEntity.GlusterVolume,
+                AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_STOP);
+        AddEventNotificationEntry(EventNotificationEntity.GlusterVolume,
+                AuditLogType.GLUSTER_VOLUME_GEO_REPLICATION_STOP_FAILED);
 
         // DWH
         AddEventNotificationEntry(EventNotificationEntity.DWH, 
AuditLogType.DWH_STOPPED);
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
index 374857d..2b012d1 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java
@@ -257,6 +257,7 @@
     AddBricksToGlusterVolume(1409, ActionGroup.MANIPULATE_GLUSTER_VOLUME),
     ConfigPasswordlessSsh(1410, ActionGroup.CONFIGURE_PASSWORDLESS_SSH),
     GlusterVolumeGeoreplicationStart(1411, 
ActionGroup.MANIPULATE_GLUSTER_VOLUME),
+    GlusterVolumeGeoreplicationStop(1412, 
ActionGroup.MANIPULATE_GLUSTER_VOLUME),
     ;
 
     private int intValue;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoreplicationIdParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoreplicationIdParameters.java
new file mode 100644
index 0000000..c3f79e0
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/gluster/GlusterVolumeGeoreplicationIdParameters.java
@@ -0,0 +1,28 @@
+package org.ovirt.engine.core.common.action.gluster;
+
+import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+/**
+ * Command parameters for Geo-replication stop, status and config actions
+ */
+public class GlusterVolumeGeoreplicationIdParameters extends 
VdcActionParametersBase {
+
+    private static final long serialVersionUID = 7803930563846142720L;
+
+
+    private Guid id;
+
+    public GlusterVolumeGeoreplicationIdParameters(Guid id) {
+        setId(id);
+    }
+
+    public Guid getId() {
+        return id;
+    }
+
+    public void setId(Guid id) {
+        this.id = id;
+    }
+
+}
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 621fde4..3d02f9d 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
@@ -348,7 +348,7 @@
     SshRsaPubKeyGenerationFailed(4505),
     SshSetupFailed(4506),
     GlusterVolumeGeoReplicationStartFailed(4160),
-
+    GlusterVolumeGeoReplicationStopFailed(4161),
 
     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 50b6f7d..6857bf5 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
@@ -141,6 +141,7 @@
     GetPasswordlessSshStatus("org.ovirt.engine.core.vdsbroker.gluster"),
     ConfigPasswordlessSsh("org.ovirt.engine.core.vdsbroker.gluster"),
     
GlusterVolumeGeoReplicationStart("org.ovirt.engine.core.vdsbroker.gluster"),
+    GlusterVolumeGeoReplicationStop("org.ovirt.engine.core.vdsbroker.gluster"),
     ;
 
     String packageName;
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
index 28602a5..9d4b58f 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
@@ -666,6 +666,7 @@
     ACTION_TYPE_FAILED_SERVER_IS_NOT_UP,
     ACTION_TYPE_FAILED_INVALID_REMOTE_HOSTNAME,
     ACTION_TYPE_FAILED_VOLUME_OR_DIR_REQUIRED,
+    ACTION_TYPE_FAILED_NO_GEOREPLICATION_FOUND,
 
     VM_INTERFACE_NOT_EXIST,
     ACTION_TYPE_FAILED_CANNOT_REMOVE_ACTIVE_DEVICE,
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
index b971315..7cf9160 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -771,6 +771,7 @@
 ACTION_TYPE_FAILED_GLUSTER_VOLUME_ALREADY_STOPPED=Cannot ${action} ${type}. 
Gluster Volume ${volumeName} already stopped.
 ACTION_TYPE_FAILED_GLUSTER_BRICK_INVALID=Cannot ${action} ${type}. Invalid 
gluster brick.
 ACTION_TYPE_FAILED_BRICK_ID_REQUIRED=Cannot ${action} ${type}. Brick ID is 
required.
+ACTION_TYPE_FAILED_NO_GEOREPLICATION_FOUND=Cannot ${action} ${type}. Could not 
found the Gluster Volume Geo-replication.
 VMPAYLOAD_INVALID_PAYLOAD_TYPE=VM Payload only supported in CDROM or Floppy 
devices
 VMPAYLOAD_SIZE_EXCEEDED=Payload is limited to ${size}K
 VMPAYLOAD_CDROM_EXCEEDED=Payload CDROM cannot be used when using an additional 
CDROM
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
 
b/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
index 89bf576..da396be 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/ExecutionMessages.properties
@@ -71,6 +71,7 @@
 job.RemoveSnapshot=Removing Snapshot ${Snapshot} of VM ${VM}
 job.ConfigPasswordlessSsh=Configuring Passwordless SSH on Server ${VDS}. 
 job.GlusterVolumeGeoReplicationStart=Starting Gluster Volume ${GlusterVolume} 
Geo-Replication on Server ${VDS}.
+job.GlusterVolumeGeoReplicationStart=Stopping Gluster Volume ${GlusterVolume} 
Geo-Replication on Server ${VDS}.
 
 # Step types
 step.VALIDATING=Validating
diff --git 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
index f157a61..2c123d0 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -323,6 +323,7 @@
 GlusterAddHostFailed=Gluster Server Add Failed
 GlusterPeerListFailed=Gluster Peer List Failed
 GlusterVolumeGeoReplicationStartFailed=Gluster Volume Geo-replication Start 
Failed
+GlusterVolumeGeoReplicationStopFailed=Gluster Volume Geo-replication Stop 
Failed
 
 CANT_RECONSTRUCT_WHEN_A_DOMAIN_IN_POOL_IS_LOCKED=Can't reconstruct the Master 
Domain when the Data Center contains Domains in Locked state.\nPlease wait 
until the operation for these Domains ends before trying to reconstruct the 
Master Domain again.
 NO_IMPLEMENTATION=Not implemented
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoreplicationStopVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoreplicationStopVDSCommand.java
new file mode 100644
index 0000000..010aaf7
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeGeoreplicationStopVDSCommand.java
@@ -0,0 +1,25 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoreplicationVDSParameters;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+public class GlusterVolumeGeoreplicationStopVDSCommand<P extends 
GlusterVolumeGeoreplicationVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+    public GlusterVolumeGeoreplicationStopVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return status.mStatus;
+    }
+
+    @Override
+    protected void ExecuteVdsBrokerCommand() {
+        status =
+                
getBroker().glusterVolumeGeoReplicationStop(getParameters().getVolumeName(),
+                        getParameters().getRemoteServer(),
+                        getParameters().getRemoteDir());
+
+        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 655bd22..c305cc4 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
@@ -248,4 +248,9 @@
     StatusOnlyReturnForXmlRpc glusterVolumeGeoReplicationStart(String 
volumeName,
             String remoteServer,
             String remoteDir);
+
+    StatusOnlyReturnForXmlRpc glusterVolumeGeoReplicationStop(String 
volumeName,
+            String remoteServer,
+            String remoteDir);
+
 }
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 d552695..b2873ba 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
@@ -243,4 +243,8 @@
     public Map<String, Object> glusterVolumeGeoReplicationStart(String 
volumeName,
             String remoteServer,
             String remoteDir);
+
+    public Map<String, Object> glusterVolumeGeoReplicationStop(String 
volumeName,
+            String remoteServer,
+            String remoteDir);
 }
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 e836b09..b336e87 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
@@ -1191,4 +1191,16 @@
         }
     }
 
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoReplicationStop(String 
volumeName,
+            String remoteServer,
+            String remoteDir) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeGeoReplicationStop(volumeName,
+                    remoteServer,
+                    remoteDir));
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0ea1eff5552f1cc84c12344db67c643ab97f6bc0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Selvasundaram <sesub...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to