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

Reply via email to