anmolbabu has uploaded a new change for review.

Change subject: engine : VDS command for creating geo-rep session
......................................................................

engine : VDS command for creating geo-rep session

VDS command for creating geo-rep session

Change-Id: Ia8164990c5c377481f1b1244ae548f7eca3066b6
Signed-off-by: Anmol Babu <[email protected]>
---
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/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/SetUpGlusterGeoRepMountBrokerVDSParameters.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/UpdateGlusterGeoRepKeysVDSParameters.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/CreateGlusterVolumeGeoRepSessionVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterHostsPubKeyVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHostsPubKeyReturnForXmlRpc.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetupGlusterGeoRepMountBrokerVDSCommand.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterGeoRepKeysVDSCommand.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
17 files changed, 406 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/40120/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 5b1d9d4..8f4c333 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
@@ -386,6 +386,14 @@
     GlusterVolumeGeoRepSessionPauseFailed(4204),
     GlusterVolumeGeoRepSessionResumeFailed(4205),
     GlusterGeoRepConfigFailed(4206),
+    GlusterGeoRepPublicKeyFileCreateFailed(4207),
+    GlusterGeoRepPublicKeyFileReadError(4208),
+    GlusterGeoRepUserNotFound(4209),
+    GlusterGeoRepPublicKeyWriteFailed(4210),
+    GlusterGeoRepExecuteMountBrokerOptFailed(4211),
+    GlusterGeoRepExecuteMountBrokerUserAddFailed(4212),
+    GlusterMountBrokerRootCreateFailed(4213),
+    GlusterGeoRepSessionCreateFailed(4214),
     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 e3e4177..e71ff8f 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
@@ -134,6 +134,10 @@
     CommitRemoveGlusterVolumeBricks("org.ovirt.engine.core.vdsbroker.gluster"),
     StartRebalanceGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"),
     StopRebalanceGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"),
+    SetupGlusterGeoRepMountBroker("org.ovirt.engine.core.vdsbroker.gluster"),
+    GetGlusterHostsPubKey("org.ovirt.engine.core.vdsbroker.gluster"),
+    UpdateGlusterGeoRepKeys("org.ovirt.engine.core.vdsbroker.gluster"),
+    
CreateGlusterVolumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
     ResumeGeoRepSession("org.ovirt.engine.core.vdsbroker.gluster"),
     AddBricksToGlusterVolume("org.ovirt.engine.core.vdsbroker.gluster"),
     ReplaceGlusterVolumeBrick("org.ovirt.engine.core.vdsbroker.gluster"),
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java
index b027f9b..eca3211 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeGeoRepSessionVDSParameters.java
@@ -7,6 +7,7 @@
     private String slaveHost;
     private String slaveVolume;
     private Boolean force = false;
+    private String userName = "root";
 
     public GlusterVolumeGeoRepSessionVDSParameters() {
 
@@ -28,6 +29,30 @@
         this.slaveHost = slaveHost;
         this.slaveVolume = slaveVolume;
         this.force = force;
+    }
+
+    public GlusterVolumeGeoRepSessionVDSParameters(Guid serverId,
+            String volumeName,
+            String slaveHost,
+            String slaveVolume,
+            String userName,
+            Boolean force) {
+        super(serverId, volumeName);
+        this.slaveHost = slaveHost;
+        this.slaveVolume = slaveVolume;
+        this.force = force;
+        this.userName = userName;
+    }
+
+    public GlusterVolumeGeoRepSessionVDSParameters(Guid serverId,
+            String volumeName,
+            String slaveHost,
+            String slaveVolume,
+            String userName) {
+        super(serverId, volumeName);
+        this.slaveHost = slaveHost;
+        this.slaveVolume = slaveVolume;
+        this.userName = userName;
     }
 
     public String getSlaveHost() {
@@ -54,4 +79,11 @@
         this.force = force;
     }
 
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/SetUpGlusterGeoRepMountBrokerVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/SetUpGlusterGeoRepMountBrokerVDSParameters.java
new file mode 100644
index 0000000..2b2639a
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/SetUpGlusterGeoRepMountBrokerVDSParameters.java
@@ -0,0 +1,45 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+public class SetUpGlusterGeoRepMountBrokerVDSParameters extends 
VdsIdVDSCommandParametersBase {
+    private String remoteUserName;
+    private String remoteGroupName;
+    private String remoteVolumeName;
+
+    public SetUpGlusterGeoRepMountBrokerVDSParameters() {
+
+    }
+
+    public SetUpGlusterGeoRepMountBrokerVDSParameters(Guid vdsId, String 
userName, String userGroup, String remoteVolumeName) {
+        super(vdsId);
+        this.remoteUserName = userName;
+        this.remoteGroupName = userGroup;
+        this.remoteVolumeName = remoteVolumeName;
+    }
+
+    public String getRemoteUserName() {
+        return remoteUserName;
+    }
+
+    public void setRemoteUserName(String remoteUserName) {
+        this.remoteUserName = remoteUserName;
+    }
+
+    public String getRemoteGroupName() {
+        return remoteGroupName;
+    }
+
+    public void setRemoteGroupName(String userGroup) {
+        this.remoteGroupName = userGroup;
+    }
+
+    public String getRemoteVolumeName() {
+        return remoteVolumeName;
+    }
+
+    public void setRemoteVolumeName(String remoteVolumeName) {
+        this.remoteVolumeName = remoteVolumeName;
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/UpdateGlusterGeoRepKeysVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/UpdateGlusterGeoRepKeysVDSParameters.java
new file mode 100644
index 0000000..30535e9
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/UpdateGlusterGeoRepKeysVDSParameters.java
@@ -0,0 +1,43 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+public class UpdateGlusterGeoRepKeysVDSParameters extends 
VdsIdVDSCommandParametersBase {
+    private String remoteUserName = "root";
+    private List<String> geoRepPubKeys = new ArrayList<String>();
+
+    public UpdateGlusterGeoRepKeysVDSParameters() {
+
+    }
+
+    public UpdateGlusterGeoRepKeysVDSParameters(Guid vdsId, List<String> 
geoRepPubKeys) {
+        super(vdsId);
+        this.geoRepPubKeys = geoRepPubKeys;
+    }
+
+    public UpdateGlusterGeoRepKeysVDSParameters(Guid vdsId, List<String> 
geoRepPubKeys, String remoteUserName) {
+        super(vdsId);
+        this.remoteUserName = remoteUserName;
+        this.geoRepPubKeys = geoRepPubKeys;
+    }
+
+    public String getRemoteUserName() {
+        return remoteUserName;
+    }
+
+    public void setRemoteUserName(String remoteUserName) {
+        this.remoteUserName = remoteUserName;
+    }
+
+    public List<String> getGeoRepPubKeys() {
+        return geoRepPubKeys;
+    }
+
+    public void setGeoRepPubKeys(List<String> geoRepPubKeys) {
+        this.geoRepPubKeys = geoRepPubKeys;
+    }
+}
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 5052412..0bced23 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -376,7 +376,14 @@
 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
-
+GlusterGeoRepPublicKeyFileCreateFailed=Failed to create gluster host public 
key file.
+GlusterGeoRepPublicKeyFileReadError=Error in reading gluster host public key.
+GlusterGeoRepUserNotFound=Geo-replication user does not exist.
+GlusterGeoRepPublicKeyWriteFailed=Failed to write gluster host public key.
+GlusterGeoRepExecuteMountBrokerOptFailed=Failed to set geo rep mount broker 
option.
+GlusterGeoRepExecuteMountBrokerUserAddFailed=Failed to add geo rep mount 
broker user.
+GlusterMountBrokerRootCreateFailed=Failed to create root geo-rep mount broker.
+GlusterGeoRepSessionCreateFailed=Failed to create geo-replication session.
 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 cceeba0..3635ab8 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
@@ -63,6 +63,14 @@
         case GlusterVolumeRebalanceStopFailed:
         case GlusterVolumeStatusAllFailedException:
         case GlusterVolumeRebalanceStatusFailedException:
+        case GlusterGeoRepPublicKeyFileCreateFailed:
+        case GlusterGeoRepPublicKeyFileReadError:
+        case GlusterGeoRepUserNotFound:
+        case GlusterGeoRepPublicKeyWriteFailed:
+        case GlusterGeoRepExecuteMountBrokerOptFailed:
+        case GlusterGeoRepExecuteMountBrokerUserAddFailed:
+        case GlusterMountBrokerRootCreateFailed:
+        case GlusterGeoRepSessionCreateFailed:
         case GlusterVolumeGeoRepSessionResumeFailed:
         case GlusterGeoRepException:
         case GlusterVolumeRemoveBricksStartFailed:
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateGlusterVolumeGeoRepSessionVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateGlusterVolumeGeoRepSessionVDSCommand.java
new file mode 100644
index 0000000..277971d
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateGlusterVolumeGeoRepSessionVDSCommand.java
@@ -0,0 +1,23 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeGeoRepSessionVDSParameters;
+
+public class CreateGlusterVolumeGeoRepSessionVDSCommand<P extends 
GlusterVolumeGeoRepSessionVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+
+    public CreateGlusterVolumeGeoRepSessionVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        GlusterVolumeGeoRepSessionVDSParameters parameters = getParameters();
+        status =
+                
getBroker().glusterVolumeGeoRepSessionCreate(parameters.getVolumeName(),
+                        parameters.getSlaveHost(),
+                        parameters.getSlaveVolume(),
+                        parameters.getUserName(),
+                        parameters.getForce());
+        proceedProxyReturnValue();
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterHostsPubKeyVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterHostsPubKeyVDSCommand.java
new file mode 100644
index 0000000..04461ff
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterHostsPubKeyVDSCommand.java
@@ -0,0 +1,26 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+public class GetGlusterHostsPubKeyVDSCommand<P extends 
VdsIdVDSCommandParametersBase> extends AbstractGlusterBrokerCommand<P> {
+
+    private GlusterHostsPubKeyReturnForXmlRpc result;
+
+    public GetGlusterHostsPubKeyVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return result.mStatus;
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        result = getBroker().glusterGeoRepKeysGet();
+        proceedProxyReturnValue();
+        setReturnValue(result.getGeoRepPublicKeys());
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHostsPubKeyReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHostsPubKeyReturnForXmlRpc.java
new file mode 100644
index 0000000..3f371fd
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterHostsPubKeyReturnForXmlRpc.java
@@ -0,0 +1,32 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
+
+public class GlusterHostsPubKeyReturnForXmlRpc extends StatusReturnForXmlRpc {
+
+    private List<String> geoRepPublicKeys = null;
+
+    private static final String GEO_REP_PUB_KEYS = "geoRepPubKeys";
+
+    @SuppressWarnings("unchecked")
+    public GlusterHostsPubKeyReturnForXmlRpc(Map<String, Object> innerMap) {
+        super(innerMap);
+        if (innerMap.containsKey(GEO_REP_PUB_KEYS)) {
+            Object[] keys = (Object[]) innerMap.get(GEO_REP_PUB_KEYS);
+            for (Object key : keys) {
+                if (geoRepPublicKeys == null) {
+                    geoRepPublicKeys = new ArrayList<>();
+                }
+                geoRepPublicKeys.add((String) key);
+            }
+        }
+    }
+
+    public List<String> getGeoRepPublicKeys() {
+        return geoRepPublicKeys;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetupGlusterGeoRepMountBrokerVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetupGlusterGeoRepMountBrokerVDSCommand.java
new file mode 100644
index 0000000..8036e6a
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetupGlusterGeoRepMountBrokerVDSCommand.java
@@ -0,0 +1,21 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.SetUpGlusterGeoRepMountBrokerVDSParameters;
+
+public class SetupGlusterGeoRepMountBrokerVDSCommand<P extends 
SetUpGlusterGeoRepMountBrokerVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+
+    public SetupGlusterGeoRepMountBrokerVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        SetUpGlusterGeoRepMountBrokerVDSParameters parameters = 
getParameters();
+        status =
+                
getBroker().glusterGeoRepMountBrokerSetup(parameters.getRemoteVolumeName(),
+                        parameters.getRemoteUserName(),
+                        parameters.getRemoteGroupName());
+        proceedProxyReturnValue();
+    }
+
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterGeoRepKeysVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterGeoRepKeysVDSCommand.java
new file mode 100644
index 0000000..8a88537
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterGeoRepKeysVDSCommand.java
@@ -0,0 +1,25 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import 
org.ovirt.engine.core.common.vdscommands.gluster.UpdateGlusterGeoRepKeysVDSParameters;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+public class UpdateGlusterGeoRepKeysVDSCommand<P extends 
UpdateGlusterGeoRepKeysVDSParameters> extends AbstractGlusterBrokerCommand<P> {
+
+    public UpdateGlusterGeoRepKeysVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return status.mStatus;
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        UpdateGlusterGeoRepKeysVDSParameters parameters = getParameters();
+        status =
+                
getBroker().glusterGeoRepKeysUpdate(parameters.getGeoRepPubKeys(), 
parameters.getRemoteUserName());
+        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 16440a6..5d62712 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
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
@@ -14,6 +15,7 @@
 import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterHookContentInfoReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc;
+import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterHostsPubKeyReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc;
@@ -1180,6 +1182,45 @@
     }
 
     @Override
+    public GlusterHostsPubKeyReturnForXmlRpc glusterGeoRepKeysGet() {
+        JsonRpcRequest request = new 
RequestBuilder("GlusterVolume.geoRepKeysGet").build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new GlusterHostsPubKeyReturnForXmlRpc(response);
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterGeoRepKeysUpdate(List<String> 
geoRepPubKeys, String remoteUserName) {
+        JsonRpcRequest request =
+                new RequestBuilder("Gluster.writeGeoRepPubKeys")
+                        .withParameter("geoRepPubKeys", geoRepPubKeys)
+                        .withOptionalParameter("userName", 
remoteUserName).build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterGeoRepMountBrokerSetup(String 
remoteVolumeName, String remoteUserName, String remoteGroupName) {
+        JsonRpcRequest request =
+                new 
RequestBuilder("GlusterVolume.geoRepMountBrokerSetup").withParameter("remoteVolumeName",
 remoteVolumeName)
+                        .withOptionalParameter("remoteUserName", 
remoteUserName)
+                        .withOptionalParameter("remoteGroupName", 
remoteGroupName).build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionCreate(String 
volumeName, String remoteHost, String remotVolumeName, String remoteUserName, 
Boolean force) {
+        JsonRpcRequest request =
+                new 
RequestBuilder("GlusterVolume.geoRepSessionCreate").withParameter("volumeName", 
volumeName)
+                .withParameter("remoteHost", remoteHost)
+                .withParameter("remoteVolumeName", remotVolumeName)
+                .withParameter("force", force)
+                .withOptionalParameter("remoteUserName", 
remoteUserName).build();
+        Map<String, Object> response = new FutureMap(this.client, request);
+        return new StatusOnlyReturnForXmlRpc(response);
+    }
+
+    @Override
     public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionResume(String 
volumeName, String slaveHostName, String slaveVolumeName, boolean force) {
         JsonRpcRequest request = new 
RequestBuilder("GlusterVolume.geoRepSessionResume").withParameter("volumeName", 
volumeName)
                 .withParameter("remoteHost", slaveHostName)
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 aefeb8b..5bd87c1 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
@@ -1,5 +1,6 @@
 package org.ovirt.engine.core.vdsbroker.vdsbroker;
 
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
@@ -9,6 +10,7 @@
 import org.ovirt.engine.core.compat.Guid;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterHookContentInfoReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc;
+import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterHostsPubKeyReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc;
@@ -272,6 +274,14 @@
 
     GlusterServersListReturnForXmlRpc glusterServersList();
 
+    GlusterHostsPubKeyReturnForXmlRpc glusterGeoRepKeysGet();
+
+    StatusOnlyReturnForXmlRpc glusterGeoRepKeysUpdate(List<String> 
geoRepPubKeys, String remoteUserName);
+
+    StatusOnlyReturnForXmlRpc glusterGeoRepMountBrokerSetup(String 
remoteVolumeName, String remoteUserName, String remoteGroupName);
+
+    StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionCreate(String 
volumeName, String remoteHost, String remoteVolumeName, String remoteUserName, 
Boolean force);
+
     StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionDelete(String 
volumeName, String remoteHost, String remoteVolumeName);
 
     StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionStop(String 
volumeName, String remoteHost, String remoteVolumeName, Boolean force);
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 87964dd..c0d8154 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
@@ -1,5 +1,6 @@
 package org.ovirt.engine.core.vdsbroker.vdsbroker;
 
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.FutureTask;
 
@@ -232,6 +233,14 @@
 
     public Map<String, Object> glusterVolumeRebalanceStart(String volumeName, 
Boolean fixLayoutOnly, Boolean force);
 
+    public Map<String, Object> glusterGeoRepKeysGet();
+
+    public Map<String, Object> glusterGeoRepKeysUpdate(String remoteUserName, 
List<String> geoRepPubKeys);
+
+    public Map<String, Object> glusterGeoRepMountBrokerSetup(String 
remoteUserName, String remoteGroupName, String remoteVolumeName);
+
+    public Map<String, Object> glusterVolumeGeoRepSessionCreate(String 
volumeName, String remoteHost, String remoteVolumeName, String remoteUserName, 
Boolean force);
+
     public Map<String, Object> glusterVolumeGeoRepSessionResume(String 
volumeName, String slaveHostName, String slaveVolumeName, boolean force);
 
     public Map<String, Object> glusterVolumeRebalanceStop(String volumeName);
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 06abadc..0e9ed96 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
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.vdsbroker.vdsbroker;
 
 import java.lang.reflect.UndeclaredThrowableException;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
@@ -10,6 +11,7 @@
 import org.ovirt.engine.core.compat.Guid;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterHookContentInfoReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc;
+import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterHostsPubKeyReturnForXmlRpc;
 import 
org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc;
 import org.ovirt.engine.core.vdsbroker.gluster.GlusterTaskInfoReturnForXmlRpc;
@@ -1108,6 +1110,50 @@
     }
 
     @Override
+    public GlusterHostsPubKeyReturnForXmlRpc glusterGeoRepKeysGet() {
+        try {
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterGeoRepKeysGet();
+            GlusterHostsPubKeyReturnForXmlRpc wrapper = new 
GlusterHostsPubKeyReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterGeoRepKeysUpdate(List<String> 
geoRepPubKeys, String remoteUserName) {
+        try {
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterGeoRepKeysUpdate(remoteUserName, geoRepPubKeys);
+            StatusOnlyReturnForXmlRpc wrapper = new 
StatusOnlyReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterGeoRepMountBrokerSetup(String 
remoteVolumeName, String remoteUserName, String remoteGroupName) {
+        try {
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterGeoRepMountBrokerSetup(remoteUserName, remoteGroupName, 
remoteVolumeName);
+            StatusOnlyReturnForXmlRpc wrapper = new 
StatusOnlyReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionCreate(String 
volumeName, String remoteHost, String remoteVolumeName, String remoteUserName, 
Boolean force) {
+        try {
+            Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterVolumeGeoRepSessionCreate(volumeName, remoteHost, 
remoteVolumeName, remoteUserName, force);
+            StatusOnlyReturnForXmlRpc wrapper = new 
StatusOnlyReturnForXmlRpc(xmlRpcReturnValue);
+            return wrapper;
+        } catch (UndeclaredThrowableException ute) {
+            throw new XmlRpcRunTimeException(ute);
+        }
+    }
+
+    @Override
     public StatusOnlyReturnForXmlRpc glusterVolumeGeoRepSessionResume(String 
volumeName, String slaveHostName, String slaveVolumeName, boolean force) {
         try{
             Map<String, Object> xmlRpcReturnValue = 
vdsServer.glusterVolumeGeoRepSessionResume(volumeName, slaveHostName, 
slaveVolumeName, force);
@@ -1570,6 +1616,7 @@
         return wrapper;
     }
 
+    @Override
     public GlusterVolumeSnapshotInfoReturnForXmlRpc glusterSnapshotInfo(Guid 
clusterId,
             String volumeName) {
         try {
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 93307e8..f440d0a 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
@@ -721,6 +721,30 @@
     @DefaultStringValue("Gluster Volume Rebalance Start Failed.")
     String GlusterVolumeRebalanceStartFailed();
 
+    @DefaultStringValue("Failed to create gluster host public key file.")
+    String GlusterGeoRepPublicKeyFileCreateFailed();
+
+    @DefaultStringValue("Error in reading gluster host public key")
+    String GlusterGeoRepPublicKeyFileReadError();
+
+    @DefaultStringValue("Geo-replication user does not exist.")
+    String GlusterGeoRepUserNotFound();
+
+    @DefaultStringValue("Failed to write gluster host public key")
+    String GlusterGeoRepPublicKeyWriteFailed();
+
+    @DefaultStringValue("Failed to create root geo-rep mount broker.")
+    String GlusterMountBrokerRootCreateFailed();
+
+    @DefaultStringValue("Failed to set geo rep mount broker option.")
+    String GlusterGeoRepExecuteMountBrokerOptFailed();
+
+    @DefaultStringValue("Failed to add geo rep mount broker user.")
+    String GlusterGeoRepExecuteMountBrokerUserAddFailed();
+
+    @DefaultStringValue("Failed to create geo-replication session.")
+    String GlusterGeoRepSessionCreateFailed();
+
     @DefaultStringValue("Resume of geo-replication session failed on gluster 
volume")
     String GlusterVolumeGeoRepSessionResumeFailed();
 


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

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

Reply via email to