Shubhendu Tripathi has uploaded a new change for review.

Change subject: gluster: VDS command to set volume snapshot config
......................................................................

gluster: VDS command to set volume snapshot config

Introduced VDS command for setting the volume snapshot configurations
parameter values.

Change-Id: I15a4915b8f0f0b884d335fb238f866b5a7823fab
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/GlusterVolumeSnapshotSetConfigVDSParameters.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/SetGlusterVolumeSnapshotConfigVDSCommand.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, 120 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/93/36293/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 c24b560..0c1bafd 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
@@ -408,6 +408,7 @@
     GlusterSnapshotException(4700),
     GlusterSnapshotCreateFailedException(4701),
     GlusterSnapshotInfoFailedException(4708),
+    GlusterSnapshotConfigSetFailedException(4170),
 
     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 a42cf1e..cc1fe82 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
@@ -164,6 +164,7 @@
     CreateGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"),
     GetGlusterVolumeSnapshotInfo("org.ovirt.engine.core.vdsbroker.gluster"),
     
GetGlusterVolumeSnapshotConfigInfo("org.ovirt.engine.core.vdsbroker.gluster"),
+    SetGlusterVolumeSnapshotConfig("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/GlusterVolumeSnapshotSetConfigVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeSnapshotSetConfigVDSParameters.java
new file mode 100644
index 0000000..6eb3599
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeSnapshotSetConfigVDSParameters.java
@@ -0,0 +1,23 @@
+package org.ovirt.engine.core.common.vdscommands.gluster;
+
+import java.util.List;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfigParam;
+import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.compat.Guid;
+
+public class GlusterVolumeSnapshotSetConfigVDSParameters extends 
VdsIdVDSCommandParametersBase {
+    List<GlusterVolumeSnapshotConfigParam> configParams;
+
+    public GlusterVolumeSnapshotSetConfigVDSParameters() {
+    }
+
+    public GlusterVolumeSnapshotSetConfigVDSParameters(Guid serverId, 
List<GlusterVolumeSnapshotConfigParam> configParams) {
+        super(serverId);
+        this.configParams = configParams;
+    }
+
+    public List<GlusterVolumeSnapshotConfigParam> getConfgParams() {
+        return this.configParams;
+    }
+}
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 1d35961..3e36d2f 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
@@ -381,6 +381,7 @@
 GlusterSnapshotException=Gluster Snapshot Exception
 GlusterSnapshotCreateFailedException=Gluster snapshot create failed
 GlusterSnapshotInfoFailedException=Gluster snapshot info failed
+GlusterSnapshotConfigSetFailedException=Gluster snapshot configuration set 
failed
 
 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 92db1e4..a61c363 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 GlusterSnapshotException:
         case GlusterSnapshotCreateFailedException:
         case GlusterSnapshotInfoFailedException:
+        case GlusterSnapshotConfigSetFailedException:
 
             // 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/SetGlusterVolumeSnapshotConfigVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeSnapshotConfigVDSCommand.java
new file mode 100644
index 0000000..0d06f1f
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeSnapshotConfigVDSCommand.java
@@ -0,0 +1,50 @@
+package org.ovirt.engine.core.vdsbroker.gluster;
+
+import java.util.List;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfigParam;
+import 
org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumeSnapshotSetConfigVDSParameters;
+import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc;
+
+public class SetGlusterVolumeSnapshotConfigVDSCommand<P extends 
GlusterVolumeSnapshotSetConfigVDSParameters> extends 
AbstractGlusterBrokerCommand<P> {
+    public SetGlusterVolumeSnapshotConfigVDSCommand(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected StatusForXmlRpc getReturnStatus() {
+        return status.mStatus;
+    }
+
+    @Override
+    protected void executeVdsBrokerCommand() {
+        List<GlusterVolumeSnapshotConfigParam> cfgParams = 
getParameters().getConfgParams();
+        String volumeName = "";
+        String volumeSnapMaxLimit = "";
+        String clusterSnapMaxLimit = "";
+        String clusterSnapMaxLimitPcnt = "";
+        String clusterAutoDelete = "";
+
+        for (GlusterVolumeSnapshotConfigParam cfgParam : cfgParams) {
+            if (cfgParam.getVolumeId() != null) {
+                // in case of volume there is only one parameter to be set
+                GlusterVolumeEntity volume = 
DbFacade.getInstance().getGlusterVolumeDao().getById(cfgParam.getVolumeId());
+                volumeName = volume.getName();
+                volumeSnapMaxLimit = cfgParam.getParamValue();
+            } else {
+                if (cfgParam.getParamName().equalsIgnoreCase("auto-delete")) {
+                    clusterAutoDelete = cfgParam.getParamValue();
+                } else if 
(cfgParam.getParamName().equalsIgnoreCase("snap-max-hard-limit")) {
+                    clusterSnapMaxLimit = cfgParam.getParamValue();
+                } else if 
(cfgParam.getParamName().equalsIgnoreCase("snap-max-soft-limit")) {
+                    clusterSnapMaxLimitPcnt = 
cfgParam.getParamValue().substring(0, cfgParam.getParamValue().length() - 1);
+                }
+            }
+        }
+
+        status = getBroker().glusterVolumeSnapshotConfigSet(volumeName, 
volumeSnapMaxLimit, clusterSnapMaxLimit, clusterSnapMaxLimitPcnt, 
clusterAutoDelete);
+        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 2cf0452..0d1239b 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
@@ -64,7 +64,6 @@
  * Implementation of <code>IVdsServer</code> interface which provides JSONRPC 
by using {@link JsonRpcClient}. Each
  * method uses {@link RequestBuilder} to build request object and sends it 
using client. The response is represented as
  * {@link FutureMap} which is lazy evaluated.
- *
  */
 public class JsonRpcVdsServer implements IVdsServer {
 
@@ -1594,4 +1593,22 @@
         Map<String, Object> response = new FutureMap(this.client, 
request).withIgnoreResponseKey();
         return new GlusterVolumeSnapshotConfigReturnForXmlRpc(clusterId, 
response);
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String 
volumeName,
+            String volumeSnapMaxLimit,
+            String clusterSnapMaxLimit,
+            String clusterSnapMaxLimitPcnt,
+            String clusterAutoDelete) {
+        JsonRpcRequest request =
+                new 
RequestBuilder("GlusterSnapshot.configSet").withOptionalParameter("volumeName", 
volumeName)
+                        .withOptionalParameter("volumeSnapMaxHardLimit", 
volumeSnapMaxLimit)
+                        .withOptionalParameter("clusterSnapMaxHardLimit", 
clusterSnapMaxLimit)
+                        .withOptionalParameter("snapMaxSoftLimit", 
clusterSnapMaxLimitPcnt)
+                        .withOptionalParameter("autoDelete", clusterAutoDelete)
+                        .build();
+
+        Map<String, Object> response = new FutureMap(this.client, 
request).withIgnoreResponseKey();
+        return new StatusOnlyReturnForXmlRpc(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 7d5e64d..0537a81 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
@@ -359,4 +359,10 @@
     GlusterVolumeSnapshotInfoReturnForXmlRpc glusterSnapshotInfo(Guid 
clusterId, String snapshotName, String volumeName);
 
     GlusterVolumeSnapshotConfigReturnForXmlRpc 
glusterVolumeSnapshotConfigGet(Guid clusterId, String volumeName);
+
+    StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String volumeName,
+            String volumeSnapMaxLimit,
+            String clusterSnapMaxLimit,
+            String clusterSnapMaxLimitPcnt,
+            String clusterAutoDelete);
 }
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 bb1da6a..a0c99eb 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
@@ -339,4 +339,6 @@
     public Map<String, Object> glusterSnapshotInfo(String snapshotName, String 
volumeName);
 
     public Map<String, Object> glusterSnapshotConfigGet(String volumeName);
+
+    public Map<String, Object> glusterSnapshotConfigSet(String volumeName, 
String volumeSnapMaxLimit, String clusterSnapMaxLimit, String 
clusterSnapMaxLimitPcnt, String clusterAutoDelete);
 }
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 f46288f..4e579ca 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
@@ -1585,4 +1585,17 @@
             throw new XmlRpcRunTimeException(ute);
         }
     }
+
+    @Override
+    public StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String 
volumeName,
+            String volumeSnapMaxLimit,
+            String clusterSnapMaxLimit,
+            String clusterSnapMaxLimitPcnt,
+            String clusterAutoDelete) {
+        try {
+            return new 
StatusOnlyReturnForXmlRpc(vdsServer.glusterSnapshotConfigSet(volumeName, 
volumeSnapMaxLimit, clusterSnapMaxLimit, clusterSnapMaxLimitPcnt, 
clusterAutoDelete));
+        } 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 bcff534..0270188 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("Gluster snapshot info failed")
     String GlusterSnapshotInfoFailedException();
+
+    @DefaultStringValue("Gluster snapshot configuration set failed")
+    String GlusterSnapshotConfigSetFailedException();
 }
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 fc5bf02..3a66869 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
@@ -384,3 +384,4 @@
 GlusterSnapshotException=Gluster Snapshot Exception
 GlusterSnapshotCreateFailedException=Gluster snapshot create failed
 GlusterSnapshotInfoFailedException=Gluster snapshot info failed
+GlusterSnapshotConfigSetFailedException=Gluster snapshot configuration set 
failed


-- 
To view, visit http://gerrit.ovirt.org/36293
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to