Sahina Bose has uploaded a new change for review. Change subject: engine: Add, remove gluster hooks VDS commands ......................................................................
engine: Add, remove gluster hooks VDS commands VDS commands to add and remove gluster hooks. When adding gluster hooks, an argument can be passed whether to enable/disable the hook. Change-Id: I716c1ca642f37e039ab9ea11c1f6dea1741522c0 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/AddGlusterHookVDSCommand.java A backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/RemoveGlusterHookVDSCommand.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 11 files changed, 128 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/38/14738/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 04a7089..3cd4124 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,7 +375,11 @@ GlusterHookDisableFailed(4503), GlusterHookNotFound(4504), GlusterHookConflict(4505), - GlusterHookUpdateFailed(4507), + GlusterHookUpdateFailed(4506), + GlusterHookAlreadyExists(4507), + GlusterHookChecksumMismatch(4508), + GlusterHookAddFailed(4509), + GlusterHookRemoveFailed(4510), 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 9ec1600..0fa186b 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 @@ -143,6 +143,8 @@ GetGlusterHostUUID("org.ovirt.engine.core.vdsbroker.gluster"), GlusterServicesList("org.ovirt.engine.core.vdsbroker.gluster"), UpdateGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"), + AddGlusterHook("org.ovirt.engine.core.vdsbroker.gluster"), + RemoveGlusterHook("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 bedfbfb..ea6e8e9 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 @@ -15,6 +15,7 @@ private GlusterHookStage stage; private String content; private String checksum; + private Boolean enabled; public GlusterHookVDSParameters(Guid serverId, String glusterCommand, GlusterHookStage stage, String hookName) { super(serverId); @@ -29,7 +30,8 @@ * @param glusterCommand - gluster command the hook is intended for * @param stage - PRE/POST stage * @param hookName - file name - * @param content - non-encoded text content + * @param content - encoded text content + * @param checksum - checksum of content */ public GlusterHookVDSParameters(Guid serverId, String glusterCommand, GlusterHookStage stage, String hookName, String content, String checksum) { @@ -39,6 +41,22 @@ setHookName(hookName); setHookContent(content); setChecksum(checksum); + } + + /** + * + * @param serverId + * @param glusterCommand - gluster command the hook is intended for + * @param stage - PRE/POST stage + * @param hookName - file name + * @param content - encoded text content + * @param checksum - checksum of content + * @param enabled - if the hook needs to be enabled/not + */ + public GlusterHookVDSParameters(Guid serverId, String glusterCommand, GlusterHookStage stage, String hookName, + String content, String checksum, Boolean enabled) { + this(serverId, glusterCommand, stage, hookName, content, checksum); + setEnabled(enabled); } public String getHookContent() { @@ -81,4 +99,12 @@ this.checksum = checksum; } + public Boolean getEnabled() { + return enabled; + } + + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + } 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 e3c2f1a..120c14f 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties @@ -353,6 +353,10 @@ GlusterHostUUIDNotFound=Gluster host UUID not found GlusterHookConflict=Found conflicting hooks GlusterHookUpdateFailed=Failed to update gluster hook +GlusterHookAlreadyExists=Failed to add hook as hook already exists +GlusterHookChecksumMismatch=Failed to update hook due to mismatch in checksum +GlusterHookAddFailed=Failed to add hook +GlusterHookRemoveFailed=Failed to remove 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 0e2a804..1f61df3 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 @@ -52,6 +52,10 @@ case GlusterHookConflict: case GlusterServicesListFailed: case GlusterHookUpdateFailed: + case GlusterHookAlreadyExists: + case GlusterHookChecksumMismatch: + case GlusterHookAddFailed: + case GlusterHookRemoveFailed: // 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/AddGlusterHookVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AddGlusterHookVDSCommand.java new file mode 100644 index 0000000..8d455bf --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/AddGlusterHookVDSCommand.java @@ -0,0 +1,23 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters; + +public class AddGlusterHookVDSCommand<P extends GlusterHookVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + public AddGlusterHookVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void ExecuteVdsBrokerCommand() { + status = + getBroker().glusterHookAdd(getParameters().getGlusterCommand(), + getParameters().getHookStage().toString(), + getParameters().getHookName(), + getParameters().getHookContent(), + getParameters().getChecksum(), + getParameters().getEnabled()); + + ProceedProxyReturnValue(); + } +} diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/RemoveGlusterHookVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/RemoveGlusterHookVDSCommand.java new file mode 100644 index 0000000..eac5c66 --- /dev/null +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/RemoveGlusterHookVDSCommand.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.core.vdsbroker.gluster; + +import org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters; + +public class RemoveGlusterHookVDSCommand<P extends GlusterHookVDSParameters> extends AbstractGlusterBrokerCommand<P> { + + public RemoveGlusterHookVDSCommand(P parameters) { + super(parameters); + } + + @Override + protected void ExecuteVdsBrokerCommand() { + status = + getBroker().glusterHookRemove(getParameters().getGlusterCommand(), + getParameters().getHookStage().toString(), + getParameters().getHookName()); + + 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 616c17d..1a69003 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 @@ -249,7 +249,9 @@ GlusterServicesReturnForXmlRpc glusterServicesList(Guid serverId, String[] serviceNames); - GlusterServicesReturnForXmlRpc glusterServicesList(String[] serviceNames); - StatusOnlyReturnForXmlRpc glusterHookUpdate(String glusterCommand, String stage, String hookName, String content, String checksum); + + StatusOnlyReturnForXmlRpc glusterHookAdd(String glusterCommand, String stage, String hookName, String content, String checksum, Boolean enabled); + + StatusOnlyReturnForXmlRpc glusterHookRemove(String glusterCommand, String stage, String hookName); } 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 0bac988..bb05cd3 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 @@ -238,4 +238,8 @@ public Map<String, Object> glusterServicesGet(String[] serviceNames); public Map<String,Object> glusterHookUpdate(String glusterCommand, String stage, String hookName, String content, String checksum); + + public Map<String,Object> glusterHookAdd(String glusterCommand, String stage, String hookName, String content, String checksum, Boolean enabled); + + public Map<String,Object> glusterHookRemove(String glusterCommand, String stage, String hookName); } 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 7e65a04..ac6ae9a 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 @@ -1223,4 +1223,27 @@ throw new XmlRpcRunTimeException(ute); } } + + @Override + public StatusOnlyReturnForXmlRpc glusterHookAdd(String glusterCommand, String stage, String hookName, + String content, String checksum, Boolean enabled) { + try { + Map<String, Object> xmlRpcReturnValue = vdsServer.glusterHookAdd(glusterCommand, stage, hookName, content, checksum, enabled); + StatusOnlyReturnForXmlRpc wrapper = new StatusOnlyReturnForXmlRpc(xmlRpcReturnValue); + return wrapper; + } catch (UndeclaredThrowableException ute) { + throw new XmlRpcRunTimeException(ute); + } + } + + @Override + public StatusOnlyReturnForXmlRpc glusterHookRemove(String glusterCommand, String stage, String hookName) { + try { + Map<String, Object> xmlRpcReturnValue = vdsServer.glusterHookRemove(glusterCommand, stage, hookName); + 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 95d5a48..ef27f2e 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 @@ -748,4 +748,16 @@ @DefaultStringValue("Failed to update gluster hook.") String GlusterHookUpdateFailed(); + + @DefaultStringValue("Failed to add hook as hook already exists.") + String GlusterHookAlreadyExists(); + + @DefaultStringValue("Failed to update hook due to mismatch in checksum.") + String GlusterHookChecksumMismatch(); + + @DefaultStringValue("Failed to add hook") + String GlusterHookAddFailed(); + + @DefaultStringValue("Failed to remove hook") + String GlusterHookRemoveFailed(); } -- To view, visit http://gerrit.ovirt.org/14738 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I716c1ca642f37e039ab9ea11c1f6dea1741522c0 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
