Hello, Follow attached a patch which allows multiple keys when setting kernel_options or kernel_post_options kickstart profile. I created a test spacewalk-java RPM package and it worked as expected.
Thank you. Cheers, mmello -- Marcelo Moreira de Mello RHCA RHCSS RHCVA Software Maintenance Engineer/SEG gpg id: 2048R/FDB110E5 gpg fingerprint: 3BE7 EF71 4DD7 6812 D309 8F18 BD42 D095 FDB1 10E5
From: Marcelo Moreira de Mello <mme...@redhat.com> Date: Mon, 29 Aug 2011 16:06:00 -0300 Subject: [PATCH] 672652 - fixed allowing duplicate key for kernel_post_options and kernel_options editing kickstart profile: Kernel Options: console=tty0 console=ttyS0,9600n8 result: Kernel Options: console=ttyS0,9600n8 Thanks Alessadro Lazarotti <alessandr...@gmail.com> for help. --- java/code/src/org/cobbler/CobblerObject.java | 28 +++++++++++++++++-------- 1 files changed, 19 insertions(+), 9 deletions(-) diff --git a/java/code/src/org/cobbler/CobblerObject.java b/java/code/src/org/cobbler/CobblerObject.java index 025fae9..647dbfa 100644 --- a/java/code/src/org/cobbler/CobblerObject.java +++ b/java/code/src/org/cobbler/CobblerObject.java @@ -19,6 +19,7 @@ import com.redhat.rhn.common.util.StringUtil; import org.apache.commons.lang.StringUtils; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Date; @@ -335,11 +336,15 @@ public abstract class CobblerObject { private String convertOptionsMap(Map<String, Object> map) { StringBuilder string = new StringBuilder(); - for (Object key : map.keySet()) { - if (StringUtils.isEmpty((String)map.get(key))) { + for (String key : map.keySet()) { + if (map.get(key) == null) { string.append(key + " "); - } - else { + } else if(map.get(key) instanceof List<?>){ + List<String> values = (List)map.get(key); + for (String value : values) { + string.append(key + "=" + value + " "); + } + } else { string.append(key + "=" + map.get(key) + " "); } } @@ -372,7 +377,7 @@ public abstract class CobblerObject { private Map<String, Object> parseKernelOpts(String kernelOpts) { Map<String, Object> toRet = new HashMap<String, Object>(); - if (StringUtils.isEmpty(kernelOpts)) { + if (kernelOpts == null || kernelOpts.equals("")) { return toRet; } @@ -380,10 +385,15 @@ public abstract class CobblerObject { for (String option : options) { String[] split = option.split("="); if (split.length == 1) { - toRet.put(split[0], ""); - } - else if (split.length == 2) { - toRet.put(split[0], split[1]); + toRet.put(split[0], null); + } else if (split.length == 2) { + if (toRet.containsKey(split[0])) { + List<String> list = (List)toRet.get(split[0]); + list.add(split[1]); + toRet.put(split[0], list); + } else { + toRet.put(split[0],new ArrayList<String>(Arrays.asList(split[1]))); + } } } return toRet; -- 1.7.6
_______________________________________________ Spacewalk-devel mailing list Spacewalk-devel@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-devel