Hello anmolbabu,

I'd like you to do a code review.  Please visit

    https://gerrit.ovirt.org/39659

to review the following change.

Change subject: engine : Geo-rep config Vds Commands
......................................................................

engine : Geo-rep config Vds Commands

Geo-rep config Vds Commands.

Change-Id: I558ed18b94faae9d4b824c9de1fedda25ffc3f09
Signed-off-by: Anmol Babu <anb...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/VDSCommandType.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepConfigVdsParameters.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/GetGlusterVolumeGeoRepConfigListVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeConfigListXmlRpc.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigDefaultVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/JsonRpcVdsServer.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/IVdsServer.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerWrapper.java
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/VdsmErrors.java
14 files changed, 237 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/59/39659/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
index a60934b..247993b 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
@@ -381,6 +381,7 @@
     GlusterVolumeGeoRepStatusFailed(4203),
     GlusterVolumeGeoRepSessionPauseFailed(4204),
     GlusterVolumeGeoRepSessionResumeFailed(4205),
+    GlusterGeoRepConfigFailed(4206),
     GlusterHostIsNotPartOfCluster(4403),
     GlusterAddHostFailed(4404),
     GlusterHostRemoveFailedException(4406),
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 3ef7f8f..50850da 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
@@ -165,6 +165,9 @@
     
GetGlusterVolumeGeoRepSessionStatus("org.ovirt.engine.core.vdsbroker.gluster"),
     StopGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
     
DeleteGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
+    
GetGlusterVolumeGeoRepConfigList("org.ovirt.engine.core.vdsbroker.gluster"),
+    
SetGlusterVolumeGeoRepConfigDefault("org.ovirt.engine.core.vdsbroker.gluster"),
+    SetGlusterVolumeGeoRepConfig("org.ovirt.engine.core.vdsbroker.gluster"),
     SetNumberOfCpus("org.ovirt.engine.core.vdsbroker"),
     UpdateVmPolicy("org.ovirt.engine.core.vdsbroker"),
     List("org.ovirt.engine.core.vdsbroker.vdsbroker"),           // get a list 
of VMs with status only
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepConfigVdsParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepConfigVdsParameters.java
new file mode 100644
index 0000000..e7ac0d2
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepConfigVdsParameters.java
@@ -0,0 +1,40 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import org.ovirt.engine.core.compat.Guid;
+
+public class GlusterVolumeGeoRepConfigVdsParameters extends 
GlusterVolumeGeoRepSessionVDSParameters {
+
+    private String configKey;
+    private String configValue;
+
+    public GlusterVolumeGeoRepConfigVdsParameters() {
+        super();
+    }
+
+    public GlusterVolumeGeoRepConfigVdsParameters(Guid serverId, String 
volumeName, String slaveHost, String slaveVolume, String configKey, String 
configValue) {
+        super(serverId, volumeName, slaveHost, slaveVolume);
+        this.configKey = configKey;
+        this.configValue = configValue;
+    }
+
+    public GlusterVolumeGeoRepConfigVdsParameters(Guid serverId, String 
volumeName, String slaveHost, String slaveVolume, String configKey) {
+        super(serverId, volumeName, slaveHost, slaveVolume);
+        this.configKey = configKey;
+    }
+
+    public String getConfigKey() {
+        return configKey;
+    }
+
+    public void setConfigKey(String configKey) {
+        this.configKey = configKey;
+    }
+
+    public String getConfigValue() {
+        return configValue;
+    }
+
+    public void setConfigValue(String configValue) {
+        this.configValue = configValue;
+    }
+}
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 4c4fbd3..afc3cf2 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -372,6 +372,7 @@
 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
+
 GlusterLibgfapiException=Command failed due to gluster libgfapi exception
 GlfsStatvfsException=Failed to get gluster volume size info
 GlfsInitException=Command failed while mounting gluster volume
@@ -379,6 +380,7 @@
 GlusterGeoRepSessionDeleteFailedException=Failed to delete geo-replication 
session
 GlusterVolumeGeoRepSessionStopFailed=Failed to stop geo-replication session
 
+GlusterGeoRepConfigFailed=Failed to modify geo-replication config
 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
 FailedToPlugDisk=Failed to hot-plug disk
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 18c95fd..ff997ac 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,6 +70,7 @@
         case GlusterVolumeRemoveBrickStatusFailed:
         case GlusterVolumeRemoveBricksCommitFailed:
         case GlusterVolumeGeoRepStatusFailed:
+        case GlusterGeoRepConfigFailed:
         case GlusterLibgfapiException:
         case GlfsStatvfsException:
         case GlfsInitException:
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepConfigListVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepConfigListVDSCommand.java
new file mode 100644
index 0000000..d71b9ea
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeGeoRepConfigListVDSCommand.java
@@ -0,0 +1,29 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.List;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionConfiguration;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepSessionVDSParameters;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+public class GetGlusterVolumeGeoRepConfigListVDSCommand<P extends 
GlusterVolumeGeoRepSessionVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+
+    private GlusterVolumeConfigListXmlRpc result;
+
+    public GetGlusterVolumeGeoRepConfigListVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return result.mStatus;
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        result = 
getBroker().glusterVolumeGeoRepConfigList(getParameters().getVolumeName(), 
getParameters().getSlaveHost(), getParameters().getSlaveVolume());
+        proceedProxyReturnValue();
+        List<GlusterGeoRepSessionConfiguration> sessionConfigs = 
result.getSessionConfig();
+        setReturnValue(sessionConfigs);
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeConfigListXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeConfigListXmlRpc.java
new file mode 100644
index 0000000..04d75fd
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeConfigListXmlRpc.java
@@ -0,0 +1,45 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionConfiguration;
+import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
+
+public class GlusterVolumeConfigListXmlRpc extends StatusReturnForXmlRpc {
+
+    protected static final String GEO_REP_CONFIG = "geoRepConfig";
+    protected static final String OPTION_NAME = "optionName";
+    protected static final String OPTION_VALUE = "optionValue";
+
+    private List<GlusterGeoRepSessionConfiguration> sessionConfig = new 
ArrayList<>();
+
+    public GlusterVolumeConfigListXmlRpc(Map<String, Object> innerMap) {
+        super(innerMap);
+        if(innerMap.containsKey(GEO_REP_CONFIG)) {
+            prepareConfigMap((Object[])((((Map<String, 
Object>)(innerMap.get(GEO_REP_CONFIG))).get(GEO_REP_CONFIG))));
+        }
+    }
+
+    private void prepareConfigMap(Object[] geoRepConfigs) {
+        for(Object currentGeoRepConfig : geoRepConfigs) {
+            sessionConfig.add(getConfig((Map<String, Object>) 
currentGeoRepConfig));
+        }
+    }
+
+    private GlusterGeoRepSessionConfiguration getConfig(Map<String, Object> 
innerMap) {
+        GlusterGeoRepSessionConfiguration config = new 
GlusterGeoRepSessionConfiguration();
+        config.setKey(innerMap.containsKey(OPTION_NAME) ? 
(String)innerMap.get(OPTION_NAME) : null);
+        config.setValue(innerMap.containsKey(OPTION_VALUE) ? (String) 
innerMap.get(OPTION_VALUE) : null);
+        return config;
+    }
+
+    public List<GlusterGeoRepSessionConfiguration> getSessionConfig() {
+        return sessionConfig;
+    }
+
+    public void setSessionConfig(List<GlusterGeoRepSessionConfiguration> 
sessionConfig) {
+        this.sessionConfig = sessionConfig;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigDefaultVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigDefaultVDSCommand.java
new file mode 100644
index 0000000..8118487
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigDefaultVDSCommand.java
@@ -0,0 +1,17 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepConfigVdsParameters;
+
+public class SetGlusterVolumeGeoRepConfigDefaultVDSCommand<P extends 
GlusterVolumeGeoRepConfigVdsParameters> extends AbstractGlusterBrokerCommand<P> 
{
+
+    public SetGlusterVolumeGeoRepConfigDefaultVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        status = 
getBroker().glusterVolumeGeoRepConfigReset(getParameters().getVolumeName(), 
getParameters().getSlaveHost(), getParameters().getSlaveVolume(), 
getParameters().getConfigKey());
+        proceedProxyReturnValue();
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigVDSCommand.java
new file mode 100644
index 0000000..8d03426
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeGeoRepConfigVDSCommand.java
@@ -0,0 +1,16 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepConfigVdsParameters;
+
+public class SetGlusterVolumeGeoRepConfigVDSCommand<P extends 
GlusterVolumeGeoRepConfigVdsParameters> extends AbstractGlusterBrokerCommand<P> 
{
+
+    public SetGlusterVolumeGeoRepConfigVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        status = 
getBroker().glusterVolumeGeoRepConfigSet(getParameters().getVolumeName(), 
getParameters().getSlaveHost(), getParameters().getSlaveVolume(), 
getParameters().getConfigKey(), getParameters().getConfigValue());
+        proceedProxyReturnValue();
+    }
+}
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 1788cde..64b0530 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,6 +18,7 @@
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeConfigListXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetailForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc;
@@ -1315,6 +1316,44 @@
     }
 
     @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepConfigSet(String 
volumeName, String slaveHost, String slaveVolumeName, String configKey, String 
configValue) {
+        JsonRpcRequest request = new 
RequestBuilder("GlusterVolume.geoRepConfigSet")
+                .withParameter("volumeName", volumeName)
+                .withParameter("remoteHost", slaveHost)
+                .withParameter("remoteVolumeName", slaveVolumeName)
+                .withParameter("key", configKey)
+                .withParameter("value", configValue).build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepConfigReset(String 
volumeName,
+            String slaveHost,
+            String slaveVolumeName,
+            String configKey) {
+        JsonRpcRequest request = new 
RequestBuilder("GlusterVolume.geoRepConfigReset")
+        .withParameter("volumeName", volumeName)
+        .withParameter("remoteHost", slaveHost)
+        .withParameter("remoteVolumeName", slaveVolumeName)
+        .withParameter("key", configKey)
+        .build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
+
+    @Override
+    public GlusterVolumeConfigListXmlRpc glusterVolumeGeoRepConfigList(String 
volumeName, String slaveHost, String slaveVolumeName) {
+        JsonRpcRequest request = new 
RequestBuilder("GlusterVolume.geoRepConfigList")
+        .withParameter("volumeName", volumeName)
+        .withParameter("remoteHost", slaveHost)
+        .withParameter("remoteVolumeName", slaveVolumeName)
+        .build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new GlusterVolumeConfigListXmlRpc(response);
+    }
+
+    @Override
     public GlusterVolumeStatusReturnForXmlRpc glusterVolumeStatus(Guid 
clusterId,
             String volumeName,
             String brickName,
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 c48efc9..fc6f4dd 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,6 +13,7 @@
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeConfigListXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetailForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc;
@@ -328,6 +329,12 @@
             String slaveHost,
             String slaveVolumeName);
 
+    StatusOnlyReturnForXmlRpc glusterVolumeGeoRepConfigSet(String volumeName, 
String slaveHost, String slaveVolumeName, String configKey, String configValue);
+
+    StatusOnlyReturnForXmlRpc glusterVolumeGeoRepConfigReset(String 
volumeName, String slaveHost, String slaveVolumeName, String configKey);
+
+    GlusterVolumeConfigListXmlRpc glusterVolumeGeoRepConfigList(String 
volumeName, String slaveHost, String slaveVolumeName);
+
     GlusterVolumeTaskReturnForXmlRpc glusterVolumeRemoveBrickStatus(String 
volumeName, String[] bricksList);
 
     StatusOnlyReturnForXmlRpc setNumberOfCpus(String vmId, String 
numberOfCpus);
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsServerConnector.java
index b4dec87..6e5985d 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
@@ -252,6 +252,8 @@
 
     public Map<String, Object> glusterVolumeGeoRepSessionStop(String 
volumeName, String remoteHost, String remoteVolumeName, Boolean force);
 
+    public Map<String, Object> glusterVolumeGeoRepConfigSet(String volumeName, 
String slaveHost, String slaveVolumeName, String configKey, String configValue);
+
     public Map<String, Object> ping();
 
     @FutureCall(delegeteTo = "ping")
@@ -316,4 +318,8 @@
     public Map<String, Object> setNumberOfCpus(String vmId, String 
numberOfCpus);
 
     public Map<String, Object> updateVmPolicy(Map info);
+
+    public Map<String, Object> glusterVolumeGeoRepConfigReset(String 
volumeName, String slaveHost, String slaveVolumeName, String configKey);
+
+    public Map<String, Object> glusterVolumeGeoRepConfigList(String 
volumeName, String slaveHost, String slaveVolumeName);
 }
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 eac7a3b..7787c6e 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,6 +14,7 @@
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTasksListReturnForXmlRpc;
+import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeConfigListXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusDetailForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeGeoRepStatusForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc;
@@ -1481,6 +1482,33 @@
     }
 
     @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepConfigSet(String 
volumeName, String slaveHost, String slaveVolumeName, String configKey, String 
configValue) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeGeoRepConfigSet(volumeName, 
slaveHost, slaveVolumeName, configKey, configValue));
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepConfigReset(String 
volumeName, String slaveHost, String slaveVolumeName, String configKey) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeGeoRepConfigReset(volumeName, 
slaveHost, slaveVolumeName, configKey));
+        } catch(UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
+    public GlusterVolumeConfigListXmlRpc glusterVolumeGeoRepConfigList(String 
volumeName, String slaveHost, String slaveVolumeName) {
+        try {
+            return new 
GlusterVolumeConfigListXmlRpc(vdsServer.glusterVolumeGeoRepConfigList(volumeName,
 slaveHost, slaveVolumeName));
+        } catch(UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
     public StatusOnlyReturnForXmlRpc setNumberOfCpus(String vmId, String 
numberOfCpus) {
         try {
             return new 
StatusOnlyReturnForXmlRpc(vdsServer.setNumberOfCpus(vmId, numberOfCpus));
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 67713c4..dd014f3 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,6 +812,9 @@
     @DefaultStringValue("Failed to get status information of geo-replication 
session(s) on gluster volume")
     String GlusterVolumeGeoRepStatusFailed();
 
+    @DefaultStringValue("Failed to modify geo-replication config")
+    String GlusterGeoRepConfigFailed();
+
     @DefaultStringValue("Failed to get status of gluster volume remove bricks")
     String GlusterVolumeRemoveBrickStatusFailed();
 


-- 
To view, visit https://gerrit.ovirt.org/39659
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I558ed18b94faae9d4b824c9de1fedda25ffc3f09
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5-gluster
Gerrit-Owner: Sahina Bose <sab...@redhat.com>
Gerrit-Reviewer: anmolbabu <anb...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to