Thanks Joe, I thought I was going crazy with this. This is definitely the behavior I've found as well. Individual rules work fine, combined rules are an issue. Joseph V Moss wrote:
Ok, here's my log during the install after it parses the rules.xml file...In this case, you'll see my system has 3584MB of memory, yet its pulling the rules files for matching at greater than 3000 and 5000 memsize...
and there's the problem, right there:
2005-09-13 15:48:26 <1> linux(722) [YCP] AutoInstallRules.ycp:375 Bash return: if [ "$disksize_size0" -gt "1000" -a "$disksize_device0" = "/dev/cciss/c0d0" -o "$disksize_size1" -gt "1000" -a "$disksize_device1" = "/dev/cciss/c0d0" -o "$disksize_size2" -gt "1000" -a "$disksize_device2" = "/dev/cciss/c0d0" -o "$disksize_size3" -gt "1000" -a "$disksize_device3" = "/dev/cciss/c0d0" -o "$disksize_size4" -gt "1000" -a "$disksize_device4" = "/dev/cciss/c0d0" -a "$memsize" -gt "5000" ]; then exit 0; else exit 1; fi ($["exit":0, "stderr":"", "stdout":""]) ($["disksize_device0":"/dev/cciss/c0d0", "disksize_device1":"/dev/cciss/c1d0", "disksize_device2":"/dev/cciss/c2d0", "disksize_device3":"/dev/cciss/c3d0", "disksize_device4":"/dev/evms", "disksize_size0":34727, "disksize_size1":2097151, "disksize_size2":2097151, "disksize_size3":2097151, "disksize_size4":0, "memsize":3584]) 2005-09-13 15:48:26 <1> linux(722) [YCP] AutoInstallRules.ycp:382 file: cciss6g.xml
It has nothing to do with memsize checking. The problem is that multiple conditions within a single rule aren't handled properly (or at least not when one of the conditions is a <disksize> condition). The bash test should be:
if [ \( "$disksize_size0" -gt "1000" -a "$disksize_device0" = "/dev/cciss/c0d0" -o "$disksize_size1" -gt "1000" -a "$disksize_device1" = "/dev/cciss/c0d0" -o "$disksize_size2" -gt "1000" -a "$disksize_device2" = "/dev/cciss/c0d0" -o "$disksize_size3" -gt "1000" -a "$disksize_device3" = "/dev/cciss/c0d0" -o "$disksize_size4" -gt "1000" -a "$disksize_device4" = "/dev/cciss/c0d0" \) -a "$memsize" -gt "5000" ]; then exit 0; else exit 1; fi
The key being the '\(' & '\)' pair. I reported this to Novell as a bug in SLES9 back in October (i.e. almost a year ago). I would have thought that the fix would have been incorporated by SP2.