package org.ovirt.engine.core.bll.gluster; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.StringUtils; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookContentType; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterServerHook; import org.ovirt.engine.core.common.queries.gluster.GlusterHookContentQueryParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; import org.ovirt.engine.core.common.vdscommands.gluster.GlusterHookVDSParameters; /** * Query to fetch gluster hook content for the Gluster cluster */ public class GetGlusterHookContentQuery<P extends GlusterHookContentQueryParameters> extends GlusterQueriesCommandBase<P> { public GetGlusterHookContentQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { GlusterHookEntity hook = glusterHooksDao.getById(getParameters().getGlusterHookId()); String content = ""; if (getParameters().getGlusterServerId() == null) { if (hook.getContentType().equals(GlusterHookContentType.TEXT)) { content = glusterHooksDao.getGlusterHookContent(getParameters().getGlusterHookId()); } } else { GlusterServerHook serverHook = glusterHooksDao.getGlusterServerHook(hook.getId(), getParameters().getGlusterServerId()); if (serverHook != null && serverHook.getContentType() == GlusterHookContentType.TEXT) { VDSReturnValue returnValue = runVdsCommand(VDSCommandType.GetGlusterHookContent, new GlusterHookVDSParameters(getParameters().getGlusterServerId(), hook.getGlusterCommand(), hook.getStage(), hook.getName())); if (returnValue.getSucceeded()) { content = (String) returnValue.getReturnValue(); } } } content = StringUtils.newStringUtf8(Base64.decodeBase64(content)); getQueryReturnValue().setReturnValue(content); } }