java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 30
+++-------
1 file changed, 9 insertions(+), 21 deletions(-)
New commits:
commit a19054e2b131eefa62d5c29df58132e0727fc501
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Jul 11 19:02:38 2011 +0200
720282 - fix some issues when spacewalk-koan needs to be installed for systems to
kickstart
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
index 4b1a255..547ae6c 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
@@ -65,6 +65,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.cobbler.SystemRecord;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
@@ -837,22 +838,8 @@ public class KickstartScheduleCommand extends BaseSystemOperation {
}
}
-
- KickstartData data = getKsdata();
- if (!data.isRawData()) {
- // Check that we have a tools channel. The host server needs to contain the
- // tools channel since it is the one performing the actions.
-
- log.debug("** Checking for a Spacewalk tools channel");
- Channel toolsChannel = getToolsChannel(this.ksdata, this.user, hostServer);
- if (toolsChannel == null) {
- Object[] args = new Object[2];
- args[0] = this.getKsdata().getChannel().getId();
- args[1] = this.getKsdata().getChannel().getName();
- return new ValidatorError("kickstart.session.notoolschannel",
- args);
- }
- }
+ // we already shall be subscribed to the tools channel
+ // (since validateKickstartPackage), so no other actions needed
return null;
}
@@ -1103,18 +1090,19 @@ public class KickstartScheduleCommand extends BaseSystemOperation
{
}
Server hostServer = getHostServer();
- Set channelIds = SystemManager.subscribableChannelIds(hostServer.getId(),
- this.user.getId(), hostServer.getBaseChannel().getId());
-
- // Add list of channels
+ List channelIds = new ArrayList();
Set serverChannelIds = new HashSet();
Iterator i = hostServer.getChannels().iterator();
while (i.hasNext()) {
Channel c = (Channel) i.next();
serverChannelIds.add(c.getId());
}
-
+ // first add channels, the system is currently subscribed to
channelIds.addAll(serverChannelIds);
+ // then add all the other subscribable channels
+ channelIds.addAll(SystemManager.subscribableChannelIds(hostServer.getId(),
+ this.user.getId(), hostServer.getBaseChannel().getId()));
+
i = channelIds.iterator();
while (i.hasNext()) {
Object id = i.next();
Show replies by date