Hey, attached is a patch that should take care that only kickstartable channels are actually returned by the getKickstartableChannels() method in the ChannelFactory class.
In addition to the existing query, it is checked if the 'anaconda' package is included in all of the returned channels. If that's not the right package to check for or not the way to go in general, then we can fix it of course. Regards, Johannes -- SUSE LINUX Products GmbH, HRB 16746 (AG Nürnberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer
>From 0457b2ae9ed9dd83ef18df3dafa2885598038291 Mon Sep 17 00:00:00 2001 From: Johannes Renner <jren...@suse.de> Date: Wed, 13 Mar 2013 17:00:01 +0100 Subject: [PATCH] Kickstartable channels should contain the anaconda package --- .../src/com/redhat/rhn/common/conf/ConfigDefaults.java | 1 + .../src/com/redhat/rhn/domain/channel/ChannelFactory.java | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java b/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java index 651afe1..653c18e 100644 --- a/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java +++ b/java/code/src/com/redhat/rhn/common/conf/ConfigDefaults.java @@ -114,6 +114,7 @@ public class ConfigDefaults { public static final String DEFAULT_KICKSTART_PACKAGE_NAME = "spacewalk-koan"; public static final String KICKSTART_PACKAGE_NAME = "kickstart_package"; + public static final String DEFAULT_ANACONDA_PACKAGE_NAME = "anaconda"; public static final String MOUNT_POINT = "mount_point"; public static final String KICKSTART_MOUNT_POINT = "kickstart_mount_point"; diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java index 3c47018..5509f2b 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java @@ -14,6 +14,7 @@ */ package com.redhat.rhn.domain.channel; +import com.redhat.rhn.common.conf.ConfigDefaults; import com.redhat.rhn.common.db.datasource.CallableMode; import com.redhat.rhn.common.db.datasource.DataResult; import com.redhat.rhn.common.db.datasource.ModeFactory; @@ -25,6 +26,7 @@ import com.redhat.rhn.domain.kickstart.KickstartableTree; import com.redhat.rhn.domain.org.Org; import com.redhat.rhn.domain.rhnpackage.Package; import com.redhat.rhn.domain.user.User; +import com.redhat.rhn.manager.channel.ChannelManager; import org.apache.log4j.Logger; import org.hibernate.Criteria; @@ -631,8 +633,17 @@ public class ChannelFactory extends HibernateFactory { public static List<Channel> getKickstartableChannels(Org org) { Map params = new HashMap(); params.put("org_id", org.getId()); - return singleton.listObjectsByNamedQuery( + List<Channel> channels = singleton.listObjectsByNamedQuery( "Channel.kickstartableChannels", params, false); + // Only return channels containing the anaconda package + for (Channel c : channels) { + List packages = ChannelManager.listLatestPackagesEqual(c.getId(), + ConfigDefaults.DEFAULT_ANACONDA_PACKAGE_NAME); + if (packages.size() <= 0) { + channels.remove(c); + } + } + return channels; } /** -- 1.7.10.4
_______________________________________________ Spacewalk-devel mailing list Spacewalk-devel@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-devel