com.redhat.rhn.frontend.action.kickstart.KickstartTroubleshootingEditAction.java Source code

Java tutorial

Introduction

Here is the source code for com.redhat.rhn.frontend.action.kickstart.KickstartTroubleshootingEditAction.java

Source

/**
 * Copyright (c) 2009--2013 Red Hat, Inc.
 *
 * This software is licensed to you under the GNU General Public License,
 * version 2 (GPLv2). There is NO WARRANTY for this software, express or
 * implied, including the implied warranties of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
 * along with this software; if not, see
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
 *
 * Red Hat trademarks are not licensed under GPLv2. No permission is
 * granted to use or replicate Red Hat trademarks that are incorporated
 * in this software or its documentation.
 */
package com.redhat.rhn.frontend.action.kickstart;

import com.redhat.rhn.common.validator.ValidatorError;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.manager.kickstart.BaseKickstartCommand;
import com.redhat.rhn.manager.kickstart.KickstartTroubleshootingCommand;

import org.apache.commons.lang.BooleanUtils;
import org.apache.struts.action.DynaActionForm;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

/**
 * Handles display and update of Kickstart -> System Details -> Troubleshooting
 *
 * @version $Rev $
 */
public class KickstartTroubleshootingEditAction extends BaseKickstartEditAction {

    public static final String BOOTLOADER_OPTIONS = "bootloaders";
    public static final String KERNEL_PARAMS = "kernelParams";
    public static final String BOOTLOADER = "bootloader";
    public static final String UPDATE_METHOD = "kickstart.troubleshooting.jsp.updatekickstart";
    public static final String NONCHROOTPOST = "nonChrootPost";
    public static final String VERBOSEUP2DATE = "verboseUp2date";

    /**
     *
     * {@inheritDoc}
     */
    protected void setupFormValues(RequestContext ctx, DynaActionForm form, BaseKickstartCommand cmdIn) {
        KickstartTroubleshootingCommand cmd = (KickstartTroubleshootingCommand) cmdIn;

        ArrayList bootloaders = getBootLoaders(cmd);
        ctx.getRequest().setAttribute(BOOTLOADER_OPTIONS, bootloaders);

        form.set(BOOTLOADER, cmd.getBootloaderType());
        form.set(KERNEL_PARAMS, cmd.getKernelParams());
        form.set(NONCHROOTPOST, cmd.getNonChrootPost());
        form.set(VERBOSEUP2DATE, cmd.getVerboseUp2date());
    }

    /**
     *
     * {@inheritDoc}
     */
    protected ValidatorError processFormValues(HttpServletRequest request, DynaActionForm form,
            BaseKickstartCommand cmd) {

        ValidatorError retval = null;

        KickstartTroubleshootingCommand tscmd = (KickstartTroubleshootingCommand) cmd;
        tscmd.setBootloaderType(form.getString(BOOTLOADER));

        String kernelParams = form.getString(KERNEL_PARAMS);
        if (kernelParams.length() > 128) {
            retval = new ValidatorError("kickstart.troubleshooting." + "validation.kernelparams.too_long");
        }

        tscmd.setKernelParams(form.getString(KERNEL_PARAMS));

        tscmd.getKickstartData().setNonChrootPost(BooleanUtils.toBoolean((Boolean) form.get(NONCHROOTPOST)));

        tscmd.getKickstartData().setVerboseUp2date(BooleanUtils.toBoolean((Boolean) form.get(VERBOSEUP2DATE)));

        return retval;
    }

    /**
     *
     * {@inheritDoc}
     */
    protected String getSuccessKey() {
        return "kickstart.troubleshooting.success";
    }

    /**
     *
     * {@inheritDoc}
     */
    protected BaseKickstartCommand getCommand(RequestContext ctx) {
        return new KickstartTroubleshootingCommand(ctx.getRequiredParam(RequestContext.KICKSTART_ID),
                ctx.getCurrentUser());
    }

    /**
     * Returns formatted and ordered list of bootloaders. (Just GRUB
     * and LILO for the forseeable future)
     * @return List of bootloaders.
     */
    private ArrayList getBootLoaders(KickstartTroubleshootingCommand cmd) {
        /* return [ { display => "GRUB", value => "grub" },
                { display => "LILO", value => "lilo " },
              ];
        */

        Map grub = new HashMap();
        grub.put("display", "GRUB");
        grub.put("value", "grub");

        ArrayList displayList = new ArrayList();

        displayList.add(grub);
        if (!cmd.getKickstartData().isRhel5OrGreater()) {
            Map lilo = new HashMap();
            lilo.put("display", "LILO");
            lilo.put("value", "lilo");

            displayList.add(lilo);
        }

        return displayList;
    }

}