java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java | 3 +- java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java | 3 ++ java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 6 ++++ java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerDistroCreateCommand.java | 14 ++++++++-- java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerProfileSyncCommand.java | 4 -- java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java | 12 ++++++++ java/code/src/org/cobbler/SystemRecord.java | 9 +++++- 7 files changed, 44 insertions(+), 7 deletions(-)
New commits: commit d5df7da09e32ff9d5e5a814a17d5d50ff7471bb5 Author: Partha Aji paji@redhat.com Date: Thu Jul 23 18:52:03 2009 -0400
510299 & 510785- Fixed issues pertaining to static network and upgrade.
diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java index ae19e78..c7a5108 100644 --- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java +++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java @@ -871,7 +871,7 @@ public class KickstartFactory extends HibernateFactory { * @param tree to lookup by * @return List of KickstartData objects if found */ - public static List lookupKickstartDatasByTree(KickstartableTree tree) { + public static List<KickstartData> lookupKickstartDatasByTree(KickstartableTree tree) { String query = "KickstartData.lookupByTreeId"; Session session = HibernateFactory.getSession(); return session.getNamedQuery(query) @@ -1023,4 +1023,5 @@ public class KickstartFactory extends HibernateFactory { Session session = HibernateFactory.getSession(); return (List<KickstartableTree>) session.getNamedQuery(query).list(); } + } diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java index cb90be6..bdddc4c 100644 --- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java +++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java @@ -4062,6 +4062,9 @@ public class SystemHandler extends BaseHandler { String hostName = (String)data.get("hostname"); String command = KickstartFormatter.makeStaticNetworkCommand(device, ip, gateway, nameservers.get(0), netmask, hostName); + rec.setHostName(hostName); + rec.setGateway(gateway); + rec.setNameServers(nameservers); Map<String, Object> meta = rec.getKsMeta(); meta.put(KickstartFormatter.STATIC_NETWORK_VAR, command); rec.setKsMeta(meta); 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 ff57259..942fdbd 100644 --- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java +++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java @@ -576,6 +576,9 @@ public class KickstartScheduleCommand extends BaseSystemOperation { cmd.setKernelOptions(getExtraOptions()); cmd.setPostKernelOptions(postKernelOptions); cmd.setScheduledAction(kickstartAction); + if (!isDhcp) { + cmd.setStaticNetwork(networkInterface); + } ValidatorError cobblerError = cmd.store(); if (cobblerError != null) { return cobblerError; @@ -589,6 +592,9 @@ public class KickstartScheduleCommand extends BaseSystemOperation { cmd.setKernelOptions(kernelOptions); cmd.setPostKernelOptions(postKernelOptions); cmd.setScheduledAction(kickstartAction); + if (!isDhcp) { + cmd.setStaticNetwork(networkInterface); + } ValidatorError cobblerError = cmd.store(); if (cobblerError != null) { return cobblerError; 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 e24207c..e8e07d4 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 @@ -15,6 +15,8 @@ package com.redhat.rhn.manager.kickstart.cobbler;
import com.redhat.rhn.common.validator.ValidatorError; +import com.redhat.rhn.domain.kickstart.KickstartData; +import com.redhat.rhn.domain.kickstart.KickstartFactory; import com.redhat.rhn.domain.kickstart.KickstartableTree; import com.redhat.rhn.domain.user.User; import com.redhat.rhn.manager.kickstart.KickstartUrlHelper; @@ -23,6 +25,7 @@ import org.apache.log4j.Logger; import org.cobbler.Distro;
import java.util.HashMap; +import java.util.List; import java.util.Map;
/** @@ -95,10 +98,17 @@ public class CobblerDistroCreateCommand extends CobblerDistroCommand { }
if (syncProfiles) { - CobblerProfileSyncCommand syncer = new CobblerProfileSyncCommand(); - syncer.store(); + List<KickstartData> profiles = KickstartFactory. + lookupKickstartDatasByTree(tree); + for (KickstartData profile : profiles) { + createProfile(profile); + } } return null; }
+ private void createProfile(KickstartData profile) { + CobblerProfileCreateCommand creator = new CobblerProfileCreateCommand(profile); + creator.store(); + } } diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerProfileSyncCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerProfileSyncCommand.java index a9f8b53..7c83dc8 100644 --- a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerProfileSyncCommand.java +++ b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerProfileSyncCommand.java @@ -70,12 +70,10 @@ public class CobblerProfileSyncCommand extends CobblerCommand { public ValidatorError store() { //First are there any profiles within spacewalk that aren't within cobbler List<KickstartData> profiles = KickstartFactory.listAllKickstartData(); - - Map<String, Map> profileNames = getModifiedProfileNames(); for (KickstartData profile : profiles) { if (!profileNames.containsKey(profile.getCobblerId())) { - if (profile.getKickstartDefaults().getKstree().getCobblerId() != null) { + if (profile.getKickstartDefaults().getKstree().getCobblerId() == null) { log.warn("Kickstart profile " + profile.getLabel() + " could not be synced to cobbler, due to it's " + "tree being unsynced. Please edit the tree url " + diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java index 853dd7b..00b7abe 100644 --- a/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java +++ b/java/code/src/com/redhat/rhn/manager/kickstart/cobbler/CobblerSystemCreateCommand.java @@ -55,6 +55,14 @@ public class CobblerSystemCreateCommand extends CobblerCommand { private String kickstartHost; private String kernelOptions; private String postKernelOptions; + private String staticNetwork; + + /** + * @param staticNetworkIn The staticNetwork to set. + */ + public void setStaticNetwork(String staticNetworkIn) { + staticNetwork = staticNetworkIn; + }
/** * Constructor @@ -313,6 +321,10 @@ public class CobblerSystemCreateCommand extends CobblerCommand { if (!StringUtils.isBlank(n.getNetmask())) { inet.put("subnet-" + n.getName(), n.getNetmask()); } + if (!StringUtils.isBlank(staticNetwork) && + n.getName().equals(staticNetwork)) { + inet.put("static-" + n.getName(), Boolean.TRUE); + } } } log.debug("Networks: " + inet); diff --git a/java/code/src/org/cobbler/SystemRecord.java b/java/code/src/org/cobbler/SystemRecord.java index 32bcd50..234ad40 100644 --- a/java/code/src/org/cobbler/SystemRecord.java +++ b/java/code/src/org/cobbler/SystemRecord.java @@ -27,6 +27,7 @@ import java.util.Set; */
public class SystemRecord extends CobblerObject { + private static final String HOSTNAME = "hostname"; private static final String NAME_SERVERS = "name_servers"; private static final String GATEWAY = "gateway"; private static final String PROFILE = "profile"; @@ -306,7 +307,7 @@ public class SystemRecord extends CobblerObject { /** * @param nameServersIn the NameServers */ - public void setNameServers(String nameServersIn) { + public void setNameServers(List<String> nameServersIn) { modify(NAME_SERVERS, nameServersIn); }
@@ -316,4 +317,10 @@ public class SystemRecord extends CobblerObject { public void setGateway(String gateway) { modify(GATEWAY, gateway); } + /** + * @param hostname the hostname + */ + public void setHostName(String hostname) { + modify(HOSTNAME, hostname); + } }
spacewalk-commits@lists.fedorahosted.org