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/businessentities/gluster/GlusterVolumeSnapshotConfig.java 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 13 files changed, 136 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/50/39350/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfig.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfig.java index 78e923e..3bf665a 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfig.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSnapshotConfig.java @@ -90,4 +90,19 @@ return true; } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("GlusterVolumeSnapshotConfig {"); + sb.append("clusterId="); + sb.append(getClusterId()); + sb.append(", volumeId="); + sb.append(getVolumeId()); + sb.append(", paramName="); + sb.append(getParamName()); + sb.append(", paramValue="); + sb.append(getParamValue()); + sb.append("}"); + return sb.toString(); + } } 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 64ab287..86dc606 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 @@ -405,7 +405,8 @@ GlusterSnapshotActivateFailedException(4704), GlusterSnapshotDeactivateFailedException(4705), GlusterSnapshotRestoreFailedException(4706), - GlusterSnapshotInfoFailedException(4708), + GlusterSnapshotConfigFailedException(4708), + GlusterSnapshotInfoFailedException(4710), 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 8116673..dead4eb 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 @@ -166,6 +166,7 @@ DeactivateGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"), RestoreGlusterVolumeSnapshot("org.ovirt.engine.core.vdsbroker.gluster"), CreateGlusterVolumeSnapshot("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..d7408da --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeSnapshotSetConfigVDSParameters.java @@ -0,0 +1,26 @@ +package org.ovirt.engine.core.common.vdscommands.gluster; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfig; +import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase; +import org.ovirt.engine.core.compat.Guid; + +public class GlusterVolumeSnapshotSetConfigVDSParameters extends VdsIdVDSCommandParametersBase { + GlusterVolumeSnapshotConfig configParam; + + public GlusterVolumeSnapshotSetConfigVDSParameters() { + } + + public GlusterVolumeSnapshotSetConfigVDSParameters(Guid serverId, GlusterVolumeSnapshotConfig configParam) { + super(serverId); + this.configParam = configParam; + } + + public GlusterVolumeSnapshotConfig getConfgParam() { + return this.configParam; + } + + @Override + public String toString() { + return String.format("%s, configParam=%s", super.toString(), configParam); + } +} 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 cbaa8c8..7134943 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -380,6 +380,7 @@ GlusterSnapshotDeactivateFailedException=Failed to de-activate gluster volume snapshot GlusterSnapshotRestoreFailedException=Failed to restore the gluster volume snapshot GlusterSnapshotCreateFailedException=Failed to create snapshot for gluster volume +GlusterSnapshotConfigFailedException=Failed to set the Gluster snapshot configuration 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 185ca1c..2fe810c 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 @@ -78,6 +78,7 @@ case GlusterSnapshotDeactivateFailedException: case GlusterSnapshotRestoreFailedException: case GlusterSnapshotCreateFailedException: + case GlusterSnapshotConfigFailedException: // 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..e9ba13f --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/SetGlusterVolumeSnapshotConfigVDSCommand.java @@ -0,0 +1,37 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfig; +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() { + GlusterVolumeSnapshotConfig cfgParam = getParameters() + .getConfgParam(); + + if (cfgParam.getVolumeId() != null) { + GlusterVolumeEntity volume = DbFacade.getInstance().getGlusterVolumeDao().getById(cfgParam.getVolumeId()); + status = + getBroker().glusterVolumeSnapshotConfigSet(volume.getName(), + cfgParam.getParamName(), + cfgParam.getParamValue()); + } else { + status = getBroker().glusterSnapshotConfigSet(cfgParam.getParamName(), cfgParam.getParamValue()); + } + + 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 22b60f4..1874166 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 @@ -1563,4 +1563,27 @@ new FutureMap(this.client, request).withIgnoreResponseKey(); return new OneUuidReturnForXmlRpc(response); } + + @Override + public StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String volumeName, String configName, String configValue) { + JsonRpcRequest request = + new RequestBuilder("GlusterVolume.snapshotConfigSet").withParameter("volumeName", volumeName) + .withParameter("option", configName) + .withParameter("value", configValue) + .build(); + + Map<String, Object> response = new FutureMap(this.client, request).withIgnoreResponseKey(); + return new StatusOnlyReturnForXmlRpc(response); + } + + @Override + public StatusOnlyReturnForXmlRpc glusterSnapshotConfigSet(String configName, String configValue) { + JsonRpcRequest request = + new RequestBuilder("GlusterSnapshot.configSet").withParameter("option", configName) + .withParameter("value", configValue) + .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 646b668..4a92a68 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 @@ -329,4 +329,8 @@ StatusOnlyReturnForXmlRpc glusterSnapshotRestore(String snapshotName); OneUuidReturnForXmlRpc glusterSnapshotCreate(String volumeName, String snapshotName, String description, boolean force); + + StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String volumeName, String cfgName, String cfgValue); + + StatusOnlyReturnForXmlRpc glusterSnapshotConfigSet(String cfgName, String cfgValue); } 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 e6f3563..a4d9dcb 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 @@ -310,4 +310,8 @@ public Map<String, Object> glusterSnapshotRestore(String snapshotName); public Map<String, Object> glusterSnapshotCreate(String volumeName, String snapshotName, String description, boolean force); + + public Map<String, Object> glusterVolumeSnapshotConfigSet(String volumeName, String cfgName, String cfgValue); + + public Map<String, Object> glusterSnapshotConfigSet(String cfgName, String cfgValue); } 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 4c358d3..6b94255 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 @@ -1534,4 +1534,22 @@ throw new XmlRpcRunTimeException(ute); } } + + @Override + public StatusOnlyReturnForXmlRpc glusterVolumeSnapshotConfigSet(String volumeName, String cfgName, String cfgValue) { + try { + return new StatusOnlyReturnForXmlRpc(vdsServer.glusterVolumeSnapshotConfigSet(volumeName, cfgName, cfgValue)); + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override + public StatusOnlyReturnForXmlRpc glusterSnapshotConfigSet(String cfgName, String cfgValue) { + try { + return new StatusOnlyReturnForXmlRpc(vdsServer.glusterSnapshotConfigSet(cfgName, cfgValue)); + } 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 a4ea7c7..75693e4 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 @@ -845,4 +845,7 @@ @DefaultStringValue("Failed to create snapshot for gluster volume") String GlusterSnapshotCreateFailedException(); + + @DefaultStringValue("Failed to set the Gluster snapshot configuration") + String GlusterSnapshotConfigFailedException(); } 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 23aecb4..1338527 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 @@ -389,3 +389,4 @@ GlusterSnapshotDeactivateFailedException=Failed to de-activate gluster volume snapshot GlusterSnapshotRestoreFailedException=Failed to restore the gluster volume snapshot GlusterSnapshotCreateFailedException=Failed to create snapshot for gluster volume +GlusterSnapshotConfigSetFailedException=Gluster snapshot configuration set failed -- To view, visit https://gerrit.ovirt.org/39350 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I15a4915b8f0f0b884d335fb238f866b5a7823fab 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
