package com.n2bb.sysmonui.availability;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import org.apache.struts.action.*;
import com.n2bb.util.N2bbSettings;
import com.n2bb.action.AbstractAction;
import com.n2bb.web.util.ListPage;
import com.n2bb.form.ListForm;

/**
 * Toggles servers' requested state.
 *
 * @author kmatsuoka
 * @version $Id: ToggleServersAction.java,v 1.1 2006/08/30 18:34:04 kmehta Exp $
 */
public class ToggleServersAction extends AbstractAction {
    private static final Log log = LogFactory.getLog(N2bbSettings.N2BB_LOG);

    protected ActionForward executeAction(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        String serverName = request.getParameter("serverName");
        String currentReqState = request.getParameter("currentReqState");
        if (serverName != null && currentReqState != null) {
            try {
                int newReqState = Integer.parseInt(currentReqState) == 1 ? 0 : 1;
                AvailabilityFacade.getInstance().requestServerState(serverName, newReqState);
                String key = "sysmonui.server." +
                        (newReqState == 1 ? "starting" : "stopping");
                saveGlobalMessage(key, new String[] { serverName }, request);
            }
            catch (NumberFormatException ex) {
                // no-op
            }
        }
        return mapping.findForward("success");
    }
}
