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
