hello

sorry to rehash an issue, but i'm still not able to get this to work in
spite of trying things suggested in previous threads. i've read these
threads:

'Problems with ExecResult & ReturnsZero in 2.1.18'
http://marc2.theaimsgroup.com/?t=113582729300001&r=1&w=2

'ReturnsZero and redirecting output'
http://cfengine.org/pipermail/help-cfengine/2006-March/000041.html

we have some (embarassingly old) versions of Mandrake in our
environment, and in cfengine 2.1.13, we use ReturnsZero to determine
which Mandrake version a host is.

  groups:
  mandrake9      = ( ReturnsZero(/bin/grep "Mandrake Linux release 9.0" 
/etc/mandrake-release) )
  mandrake91     = ( ReturnsZero(/bin/grep "Mandrake Linux release 9.1" 
/etc/mandrake-release) )
  mandrake10     = ( ReturnsZero(/bin/grep "Mandrake Linux release 10.0" 
/etc/mandrake-release) )

while testing 2.1.20, the above isn't working, spewing stuff to STDOUT.
testing even failed when using grep -q. the upshot of the failure is
that the correct class isn't getting set, as i can see all 3 of the
above "mandrake*" show up in AddClassToHeap. i'll not yet paste
debugging output, unless requested.

i tested the above using various things, including putting quotes in
different places, escaping the quotes, etc. i'll paste them at the very
end.

another suggestion i read in one of the threads was to create a "module"
for this test. i'm not sure what is meant by that, i'll have to do more
reading of docs.

i could create a wrapper script to determine Mandrake version, and
return the exit status, but i was really hoping i could stick with using
grep. i suppose i could do something like this, and i hopefully write
*one* script correctly to do the right thing.

mandrake9      = ( ReturnsZero(/bin/sh -c '/tmp/am_i_mdk9.sh'))
mandrake91     = ( ReturnsZero(/bin/sh -c '/tmp/am_i_mdk91.sh'))
mandrake10     = ( ReturnsZero(/bin/sh -c '/tmp/am_i_mdk10.sh'))


last question: is this bit of documentation still correct wrt
ReturnsZero syntax? i tried exactly this syntax, and no workie.
http://www.cfengine.org/confdir/define-class-if-string-in-file.html



these are some variations i tried. certainly not exhaustive. if helpful,
i can add portions of -d2 output from the client.

mandrake9      = ( ReturnsZero(/bin/sh -c '/bin/grep "Mandrake Linux release 
9.0" /etc/mandrake-release') )

mandrake9      = ( ReturnsZero('/bin/grep -q "Mandrake Linux release 9.0" 
/etc/mandrake-release') )

mandrake9      = ( ReturnsZero(/bin/grep -q "Mandrake Linux release 9.0" 
/etc/mandrake-release > /dev/null 2>&1) )

mandrake9      = ( ReturnsZero('/bin/grep -q \"Mandrake Linux release 9.0\" 
/etc/mandrake-release') )


thanks much,
kallen

-- 
"For one human being to love another, that is perhaps the most difficult
of our tasks; the ultimate, the last test and proof; the work for which all
other work is but preparation."

-- Rainer Maria Rilke
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
http://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to