Sahina Bose has uploaded a new change for review. Change subject: engine:VDS command to update hook content ......................................................................
engine:VDS command to update hook content VDS command to update content of gluster hook on a server from the engine. Gluster hook is identified by gluster command, stage and name. Change-Id: I4dc8e12c7d7760114c392db19a56c9cefd4b5763 Signed-off-by: Sahina Bose <[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 M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.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/UpdateGlusterHookVDSCommand.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 10 files changed, 79 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/14638/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 3c3bda0..04a7089 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 @@ -375,6 +375,7 @@ GlusterHookDisableFailed(4503), GlusterHookNotFound(4504), GlusterHookConflict(4505), + GlusterHookUpdateFailed(4507), 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 455a725..9ec1600 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 @@ -142,6 +142,7 @@ GlusterHooksList("org.ovirt.engine.core.vdsbroker.gluster"), GetGlusterHostUUID("org.ovirt.engine.core.vdsbroker.gluster"), GlusterServicesList("org.ovirt.engine.core.vdsbroker.gluster"), + UpdateGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"), ; String packageName; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java index ec26c44..9844c2b 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterHookVDSParameters.java @@ -6,13 +6,14 @@ /** * Gluster Hook VDS parameter class with gluster command, hook name, and level as parameters. <br> - * This will be used directly by Enable and Disable Gluster Hook VDS commands <br> + * This will be used by Gluster Hook VDS commands <br> */ public class GlusterHookVDSParameters extends VdsIdVDSCommandParametersBase { private String glusterCommand; private String hookName; private GlusterHookStage stage; + private String content; public GlusterHookVDSParameters(Guid serverId, String glusterCommand, GlusterHookStage stage, String hookName) { super(serverId); @@ -21,6 +22,30 @@ setHookName(hookName); } + /** + * + * @param serverId + * @param glusterCommand - gluster command the hook is intended for + * @param stage - PRE/POST stage + * @param hookName - file name + * @param content - non-encoded text content + */ + public GlusterHookVDSParameters(Guid serverId, String glusterCommand, GlusterHookStage stage, String hookName, String content) { + super(serverId); + setGlusterCommand(glusterCommand); + setHookStage(stage); + setHookName(hookName); + setHookContent(content); + } + + public String getHookContent() { + return content; + } + + public void setHookContent(String content) { + this.content = content; + } + public String getGlusterCommand() { return glusterCommand; } 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 d9520da..e3c2f1a 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -352,6 +352,7 @@ GlusterHookListException=Failed to get gluster hook list GlusterHostUUIDNotFound=Gluster host UUID not found GlusterHookConflict=Found conflicting hooks +GlusterHookUpdateFailed=Failed to update gluster hook 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 390e2e2..0e2a804 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 @@ -51,6 +51,7 @@ case GlusterHostUUIDNotFound: case GlusterHookConflict: case GlusterServicesListFailed: + case GlusterHookUpdateFailed: // Capture error from gluster command and record failure getVDSReturnValue().setVdsError(new VDSError(returnStatus, getReturnStatus().mMessage)); getVDSReturnValue().setSucceeded(false); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterHookVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterHookVDSCommand.java new file mode 100644 index 0000000..c1b387e --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/UpdateGlusterHookVDSCommand.java @@ -0,0 +1,27 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.apache.commons.codec.binary.Base64; +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters; + +public class UpdateGlusterHookVDSCommand<P extends GlusterHookVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + public UpdateGlusterHookVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void ExecuteVdsBrokerCommand() { + String encodedString = ""; + + if (getParameters().getHookContent() != null) { + encodedString = Base64.encodeBase64String(getParameters().getHookContent().getBytes()); + } + status = + getBroker().glusterHookUpdate(getParameters().getGlusterCommand(), + getParameters().getHookStage().toString(), + getParameters().getHookName(), + encodedString); + + ProceedProxyReturnValue(); + } +} 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 28c7d88..440b6e1 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 @@ -5,12 +5,12 @@ import java.util.concurrent.FutureTask; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.IsoListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; @@ -248,4 +248,6 @@ OneUuidReturnForXmlRpc glusterHostUUIDGet(); GlusterServicesReturnForXmlRpc glusterServicesList(String[] serviceNames); + + StatusOnlyReturnForXmlRpc glusterHookUpdate(String glusterCommand, String stage, String hookName, String content); } 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 cfd9691..3af45ac 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 @@ -236,4 +236,6 @@ public Map<String, Object> glusterHostUUIDGet(); public Map<String, Object> glusterServicesGet(String[] serviceNames); + + public Map<String,Object> glusterHookUpdate(String glusterCommand, String stage, String hookName, String content); } 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 e435adb..705a6f5 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 @@ -7,12 +7,12 @@ import org.apache.commons.httpclient.HttpClient; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterServersListReturnForXmlRpc; +import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeOptionsInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeProfileInfoReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumeStatusReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterHooksListReturnForXmlRpc; -import org.ovirt.engine.core.vdsbroker.gluster.GlusterServicesReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.gluster.GlusterVolumesListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.IsoListReturnForXmlRpc; import org.ovirt.engine.core.vdsbroker.irsbroker.OneUuidReturnForXmlRpc; @@ -1205,7 +1205,6 @@ @Override public GlusterServicesReturnForXmlRpc glusterServicesList(String[] serviceNames) { try { - Map<String, Object> xmlRpcReturnValue = vdsServer.glusterServicesGet(serviceNames); GlusterServicesReturnForXmlRpc wrapper = new GlusterServicesReturnForXmlRpc(xmlRpcReturnValue); return wrapper; @@ -1213,4 +1212,15 @@ throw new XmlRpcRunTimeException(ute); } } + + @Override + public StatusOnlyReturnForXmlRpc glusterHookUpdate(String glusterCommand, String stage, String hookName, String content) { + try { + Map<String, Object> xmlRpcReturnValue = vdsServer.glusterHookUpdate(glusterCommand, stage, hookName, content); + StatusOnlyReturnForXmlRpc wrapper = new StatusOnlyReturnForXmlRpc(xmlRpcReturnValue); + return wrapper; + } 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 06c0f27..95d5a48 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 @@ -745,4 +745,7 @@ @DefaultStringValue("Failed to fetch statuses of services.") String GlusterServicesListFailed(); + + @DefaultStringValue("Failed to update gluster hook.") + String GlusterHookUpdateFailed(); } -- To view, visit http://gerrit.ovirt.org/14638 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4dc8e12c7d7760114c392db19a56c9cefd4b5763 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Sahina Bose <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
