on Thursday 10 March 2011 Justin Sherrill wrote: > > --- > > a/java/code/src/com/redhat/rhn/frontend/action/kickstart/tree/BaseTreeAct > >ion.java +++ > > b/java/code/src/com/redhat/rhn/frontend/action/kickstart/tree/BaseTreeAct > >ion.java @@ -30,6 +30,7 @@ import org.apache.struts.util.LabelValueBean; > > > > import java.util.Iterator; > > import java.util.List; > > +import java.net.*; > > We generally don't include entire packages without our code. Please > only include the specific classes that you are using.
I have attached a new patch. The new patch does not have that import anymore. > While this works, typically we would prefer to use the request to get > the hostname. HttpServletRequest.getLocalName() should get you the > hostname that the request comes in on. You would have to change the > method signature of processCommandSetters to accept the request, but > that is a better way to get the hostname IMHO. I did it like you suggested. I hope I'll find some time to enhance cobbler in the future to parse kopts and replaces variables but for the moment we can live with the solution I have attached I think. Patch attached. -- ciao, Uwe Gansert Uwe Gansert SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Business: http://www.suse.de/~ug
From 9628facefd3201c5b85cfc0934eba9d496e02df4 Mon Sep 17 00:00:00 2001 From: Uwe Gansert <u...@suse.de> Date: Thu, 28 Oct 2010 16:59:04 +0200 Subject: [PATCH] * added support for SUSE autoinstallation and some cleanup - added support for SUSE autoinstallation - fixed some indentations and java import - add request to method signature --- .../rhn/domain/kickstart/KickstartInstallType.java | 8 ++++++++ .../rhn/domain/kickstart/KickstartableTree.java | 8 ++++++++ .../redhat/rhn/frontend/action/BaseEditAction.java | 4 ++-- .../action/kickstart/tree/BaseTreeAction.java | 20 ++++++++++++++++++-- .../BasePreservationListEditAction.java | 5 ++++- .../cobbler/CobblerDistroCreateCommand.java | 4 ++++ java/code/src/org/cobbler/Distro.java | 3 +++ 7 files changed, 47 insertions(+), 5 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartInstallType.java b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartInstallType.java index a3f613a..ef92ce6 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartInstallType.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartInstallType.java @@ -31,6 +31,7 @@ public class KickstartInstallType extends BaseDomainHelper { public static final String RHEL_6 = "rhel_6"; public static final String FEDORA = "fedora"; public static final String GENERIC = "generic"; + public static final String SUSE = "suse"; private Long id; private String label; @@ -94,6 +95,13 @@ public class KickstartInstallType extends BaseDomainHelper { } /** + * @return true if the installer type is suse. + */ + public boolean isSUSE() { + return SUSE.equals(getLabel()); + } + + /** * @return Returns the id. */ public Long getId() { diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java index 41e3202..510609f 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartableTree.java @@ -277,6 +277,10 @@ public class KickstartableTree extends BaseDomainHelper { else if (arch.equals("channel-ppc")) { return StringUtil.addPath(getAbsolutePath(), "/ppc/ppc64/vmlinuz"); } + else if ( this.installType.isSUSE() ) + { + return StringUtil.addPath(getAbsolutePath(), "/boot/" + this.getChannel().getChannelArch().getName() + "/loader/linux"); + } else { return StringUtil.addPath(getAbsolutePath(), "/images/pxeboot/vmlinuz"); } @@ -296,6 +300,10 @@ public class KickstartableTree extends BaseDomainHelper { else if (arch.equals("channel-ppc")) { return StringUtil.addPath(getAbsolutePath(), "/ppc/ppc64/ramdisk.image.gz"); } + else if ( this.installType.isSUSE() ) + { + return StringUtil.addPath(getAbsolutePath(), "/boot/" + this.getChannel().getChannelArch().getName() + "/loader/initrd"); + } else { return StringUtil.addPath(getAbsolutePath(), "/images/pxeboot/initrd.img"); } diff --git a/java/code/src/com/redhat/rhn/frontend/action/BaseEditAction.java b/java/code/src/com/redhat/rhn/frontend/action/BaseEditAction.java index fb72fee..8851a8e 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/BaseEditAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/BaseEditAction.java @@ -58,7 +58,7 @@ public abstract class BaseEditAction extends RhnAction { getStrutsDelegate().saveMessages(request, errors); } else { - ValidatorError verrors = processCommandSetters(opr, form); + ValidatorError verrors = processCommandSetters(opr, form, request); if (verrors == null) { verrors = opr.store(); @@ -114,7 +114,7 @@ public abstract class BaseEditAction extends RhnAction { * @return TODO */ protected abstract ValidatorError processCommandSetters(PersistOperation opr, - DynaActionForm form); + DynaActionForm form, HttpServletRequest request); /** diff --git a/java/code/src/com/redhat/rhn/frontend/action/kickstart/tree/BaseTreeAction.java b/java/code/src/com/redhat/rhn/frontend/action/kickstart/tree/BaseTreeAction.java index a2cbbdd..79603dd 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/kickstart/tree/BaseTreeAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/kickstart/tree/BaseTreeAction.java @@ -12,6 +12,9 @@ * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ +/* + * Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. + */ package com.redhat.rhn.frontend.action.kickstart.tree; import com.redhat.rhn.common.validator.ValidatorError; @@ -31,6 +34,8 @@ import org.apache.struts.util.LabelValueBean; import java.util.Iterator; import java.util.List; +import javax.servlet.http.HttpServletRequest; + /** * TreeCreate class for creating Kickstart Trees * @version $Rev: 1 $ @@ -81,7 +86,8 @@ public abstract class BaseTreeAction extends BaseEditAction { } protected ValidatorError processCommandSetters(PersistOperation operation, - DynaActionForm form) { + DynaActionForm form, + HttpServletRequest request) { BaseTreeEditOperation bte = (BaseTreeEditOperation) operation; String label = form.getString(LABEL); @@ -103,7 +109,17 @@ public abstract class BaseTreeAction extends BaseEditAction { lookupKickstartInstallTypeByLabel(form.getString(INSTALL_TYPE)); bte.setInstallType(type); - bte.setKernelOptions(form.getString(KERNEL_OPTS)); + if (type.isSUSE()) { + String kopts = form.getString(POST_KERNEL_OPTS); + if (kopts.contains("install=")) { + kopts = kopts + " install=http://" + request.getLocalName() + + "/ks/dist/" + form.getString(LABEL); + } + bte.setKernelOptions(kopts); + } + else { + bte.setKernelOptions(form.getString(KERNEL_OPTS)); + } bte.setPostKernelOptions(form.getString(POST_KERNEL_OPTS)); return null; diff --git a/java/code/src/com/redhat/rhn/frontend/action/systems/provisioning/BasePreservationListEditAction.java b/java/code/src/com/redhat/rhn/frontend/action/systems/provisioning/BasePreservationListEditAction.java index 6535db8..2570984 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/systems/provisioning/BasePreservationListEditAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/systems/provisioning/BasePreservationListEditAction.java @@ -14,6 +14,8 @@ */ package com.redhat.rhn.frontend.action.systems.provisioning; +import javax.servlet.http.HttpServletRequest; + import com.redhat.rhn.common.validator.ValidatorError; import com.redhat.rhn.frontend.action.BaseEditAction; import com.redhat.rhn.frontend.struts.RequestContext; @@ -43,7 +45,8 @@ public abstract class BasePreservationListEditAction extends BaseEditAction { } protected ValidatorError processCommandSetters(PersistOperation opr, - DynaActionForm form) { + DynaActionForm form, + HttpServletRequest request) { BaseFileListEditCommand bopr = (BaseFileListEditCommand) opr; bopr.setLabel(form.getString(LABEL)); bopr.updateFiles(form.getString(FILES_STRING)); diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerDistroCreateCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerDistroCreateCommand.java index 5f1a4f6..f7e405d 100644 --- a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerDistroCreateCommand.java +++ b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerDistroCreateCommand.java @@ -83,6 +83,10 @@ public class CobblerDistroCreateCommand extends CobblerDistroCommand { ksmeta.put("org", tree.getOrgId().toString()); } + if( tree.getInstallType().isSUSE() ) { + ksmeta.put("autoyast", "true"); + } + Distro distro = Distro.create(CobblerXMLRPCHelper.getConnection(user), tree.getCobblerDistroName(), tree.getKernelPath(), tree.getInitrdPath(), ksmeta); diff --git a/java/code/src/org/cobbler/Distro.java b/java/code/src/org/cobbler/Distro.java index ff4940b..f12ced8 100644 --- a/java/code/src/org/cobbler/Distro.java +++ b/java/code/src/org/cobbler/Distro.java @@ -53,6 +53,9 @@ public class Distro extends CobblerObject { distro.modify(NAME, name); distro.setKernel(kernel); distro.setInitrd(initrd); + if( ksmeta.containsKey( "autoyast" ) ) { + distro.setBreed( "suse" ); + } distro.setKsMeta(ksmeta); distro.save(); distro = lookupByName(client, name); -- 1.6.4.2
_______________________________________________ Spacewalk-devel mailing list Spacewalk-devel@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-devel