Shubhendu Tripathi has uploaded a new change for review. Change subject: gluster: VDS Command - Gluster vol snapshot create ......................................................................
gluster: VDS Command - Gluster vol snapshot create Introduced the VDS commands for the creation of gluster volume snaphost Change-Id: Ib610f49c3b6c5aa108ce6fef0291cd9693429197 Signed-off-by: Shubhendu Tripathi <[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 A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateGlusterVolumeSnapshotVDSParameters.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/CreateGlusterVolumeSnapshotVDSCommand.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 M frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties 12 files changed, 124 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/39345/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 8b7f071..64ab287 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 @@ -406,6 +406,7 @@ GlusterSnapshotDeactivateFailedException(4705), GlusterSnapshotRestoreFailedException(4706), GlusterSnapshotInfoFailedException(4708), + GlusterSnapshotCreateFailedException(4701), 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 903857a..8116673 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,7 @@ ActivateGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"), DeactivateGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"), RestoreGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"), + CreateGlusterVolumeSnapshot("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/CreateGlusterVolumeSnapshotVDSParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateGlusterVolumeSnapshotVDSParameters.java new file mode 100644 index 0000000..ece7b66 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/CreateGlusterVolumeSnapshotVDSParameters.java @@ -0,0 +1,56 @@ +package org.ovirt.engine.core.common.vdscommands.gluster; + +import org.ovirt.engine.core.compat.Guid; + +public class CreateGlusterVolumeSnapshotVDSParameters extends GlusterVolumeVDSParameters { + protected String snapshotName; + protected String description; + protected boolean force; + + public CreateGlusterVolumeSnapshotVDSParameters() { + } + + public CreateGlusterVolumeSnapshotVDSParameters(Guid serverId, + String volumeName, + String snapshotName, + String description, + boolean force) { + super(serverId, volumeName); + this.snapshotName = snapshotName; + this.description = description; + this.force = force; + } + + public String getSnapshotName() { + return this.snapshotName; + } + + public void setSnapshotName(String snapshotName) { + this.snapshotName = snapshotName; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public boolean getForce() { + return this.force; + } + + public void setForce(boolean force) { + this.force = force; + } + + @Override + public String toString() { + return String.format("%s, snapshotName=%s, description=%s, force=%s", + super.toString(), + getSnapshotName(), + getDescription(), + getForce()); + } +} 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 58429f8..cbaa8c8 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -379,6 +379,7 @@ GlusterSnapshotActivateFailedException=Failed to activate gluster volume snapshot GlusterSnapshotDeactivateFailedException=Failed to de-activate gluster volume snapshot GlusterSnapshotRestoreFailedException=Failed to restore the gluster volume snapshot +GlusterSnapshotCreateFailedException=Failed to create snapshot for gluster volume 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/AbstractGlusterBrokerCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AbstractGlusterBrokerCommand.java index 425e556..185ca1c 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 @@ -77,6 +77,7 @@ case GlusterSnapshotActivateFailedException: case GlusterSnapshotDeactivateFailedException: case GlusterSnapshotRestoreFailedException: + case GlusterSnapshotCreateFailedException: // Capture error from gluster command and record failure getVDSReturnValue().setVdsError(new VDSError(returnStatus, getReturnStatus().mMessage)); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateGlusterVolumeSnapshotVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateGlusterVolumeSnapshotVDSCommand.java new file mode 100644 index 0000000..3a57773 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/CreateGlusterVolumeSnapshotVDSCommand.java @@ -0,0 +1,33 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.CreateGlusterVolumeSnapshotVDSParameters; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; +import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc; + +public class CreateGlusterVolumeSnapshotVDSCommand<P extends CreateGlusterVolumeSnapshotVDSParameters> extends AbstractGlusterBrokerCommand<P> { + private OneUuidReturnForXmlRpc uuidReturn; + + public CreateGlusterVolumeSnapshotVDSCommand(P params) { + super(params); + } + + @Override + protected StatusForXmlRpc getReturnStatus() { + return uuidReturn.mStatus; + } + + @Override + protected void executeVdsBrokerCommand() { + String volumeName = getParameters().getVolumeName(); + String snapshotName = getParameters().getSnapshotName(); + String description = getParameters().getDescription() == null ? "" : getParameters().getDescription(); + boolean force = getParameters().getForce(); + uuidReturn = getBroker().glusterSnapshotCreate(volumeName, snapshotName, description, force); + proceedProxyReturnValue(); + + if (getVDSReturnValue().getSucceeded()) { + setReturnValue(Guid.createGuidFromStringDefaultEmpty(uuidReturn.mUuid)); + } + } +} 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 4005bd6..22b60f4 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 @@ -1550,4 +1550,17 @@ Map<String, Object> response = new FutureMap(this.client, request); return new StatusOnlyReturnForXmlRpc(response); } + + @Override + public OneUuidReturnForXmlRpc glusterSnapshotCreate(String volumeName, String snapshotName, String description, boolean force) { + JsonRpcRequest request = + new RequestBuilder("GlusterVolume.snapshotCreate").withParameter("volumeName", volumeName) + .withParameter("snapName", snapshotName) + .withOptionalParameter("description", description) + .withParameter("force", force) + .build(); + Map<String, Object> response = + new FutureMap(this.client, request).withIgnoreResponseKey(); + return new OneUuidReturnForXmlRpc(response); + } } 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 6551ebd..646b668 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 @@ -327,4 +327,6 @@ StatusOnlyReturnForXmlRpc glusterSnapshotDeactivate(String snapshotName); StatusOnlyReturnForXmlRpc glusterSnapshotRestore(String snapshotName); + + OneUuidReturnForXmlRpc glusterSnapshotCreate(String volumeName, String snapshotName, String description, 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 d82e665..e6f3563 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 @@ -308,4 +308,6 @@ public Map<String, Object> glusterSnapshotDeactivate(String snapshotName); public Map<String, Object> glusterSnapshotRestore(String snapshotName); + + public Map<String, Object> glusterSnapshotCreate(String volumeName, String snapshotName, String description, boolean force); } 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 dfdb45f..4c358d3 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 @@ -1466,6 +1466,15 @@ GlusterVolumeSnapshotConfigReturnForXmlRpc wrapper = new GlusterVolumeSnapshotConfigReturnForXmlRpc(clusterId, xmlRpcReturnValue); return wrapper; + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override + public OneUuidReturnForXmlRpc glusterSnapshotCreate(String volumeName, String snapshotName, String description, boolean force) { + try { + return new OneUuidReturnForXmlRpc(vdsServer.glusterSnapshotCreate(volumeName, snapshotName, description, force)); } catch (UndeclaredThrowableException ute) { throw new XmlRpcRunTimeException(ute); } 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 0ae7595..a4ea7c7 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 @@ -842,4 +842,7 @@ @DefaultStringValue("Failed to restore the gluster volume snapshot") String GlusterSnapshotRestoreFailedException(); + + @DefaultStringValue("Failed to create snapshot for gluster volume") + String GlusterSnapshotCreateFailedException(); } diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties index a6f7b5d..23aecb4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/VdsmErrors.properties @@ -387,4 +387,5 @@ GlusterSnapshotDeleteFailedException=Failed to delete gluster volume snapshot GlusterSnapshotActivateFailedException=Failed to activate gluster volume snapshot GlusterSnapshotDeactivateFailedException=Failed to de-activate gluster volume snapshot -GlusterSnapshotRestoreFailedException=Failed to restore the gluster volume snapshot \ No newline at end of file +GlusterSnapshotRestoreFailedException=Failed to restore the gluster volume snapshot +GlusterSnapshotCreateFailedException=Failed to create snapshot for gluster volume -- To view, visit https://gerrit.ovirt.org/39345 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib610f49c3b6c5aa108ce6fef0291cd9693429197 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5-gluster Gerrit-Owner: Shubhendu Tripathi <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
