/* * Copyright (c) 2009-2011 by Bjoern Kolbeck, * Zuse Institute Berlin * * Licensed under the BSD License, see LICENSE file for details. * */ package org.xtreemfs.osd.operations; import org.xtreemfs.foundation.pbrpc.generatedinterfaces.RPC.Auth; import org.xtreemfs.foundation.pbrpc.generatedinterfaces.RPC.ErrorType; import org.xtreemfs.foundation.pbrpc.generatedinterfaces.RPC.POSIXErrno; import org.xtreemfs.foundation.pbrpc.generatedinterfaces.RPC.RPCHeader.ErrorResponse; import org.xtreemfs.osd.OSDRequest; import org.xtreemfs.osd.OSDRequestDispatcher; import org.xtreemfs.pbrpc.generatedinterfaces.OSDServiceConstants; public final class CleanupStopOperation extends OSDOperation { public CleanupStopOperation(OSDRequestDispatcher master) { super(master); } @Override public int getProcedureId() { return OSDServiceConstants.PROC_ID_XTREEMFS_CLEANUP_STOP; } @Override public void startRequest(final OSDRequest rq) { Auth authData = rq.getRPCRequest().getHeader().getRequestHeader().getAuthData(); if (master.getConfig().getAdminPassword().length() > 0 && (!authData.hasAuthPasswd() || !authData.getAuthPasswd().getPassword() .equals(master.getConfig().getAdminPassword()))) { rq.sendError(ErrorType.ERRNO, POSIXErrno.POSIX_ERROR_EACCES, "Invalid admin password."); return; } master.getCleanupThread().cleanupStop(); rq.sendSuccess(null, null); } @Override public ErrorResponse parseRPCMessage(OSDRequest rq) { rq.setFileId(""); return null; } @Override public boolean requiresCapability() { return false; } @Override public void startInternalEvent(Object[] args) { throw new UnsupportedOperationException("Not supported yet."); } }