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
