On Thu, Jan 29, 2009 at 12:28 PM, Michael DeHaan mdehaan@redhat.com wrote:
Jeff Schroeder wrote:
On Thu, Jan 29, 2009 at 11:44 AM, Michael DeHaan mdehaan@redhat.com wrote: ...snip...
+# Loop until the ssh rpm is installed +if [ "$keys_found" = "yes" ]; then
- while : ; do
sleep 10
if [ -d /mnt/sysimage/etc/ssh ] ; then
cp -f /tmp/ssh/ssh_host* /mnt/sysimage/etc/ssh/
logger "SSH-HOST-KEY copied to newly installed system"
break
fi
- done &
+fi +#end
Could the looping be eliminated by doing the top part in %pre and the later in %post?
ex:
%pre $SNIPPET('preserve_ssh_host_keys_pre')
%post SNIPPET('preserve_ssh_host_keys_post')
Splitting this up requires "%post nochroot" because /mnt/sysimage isn't available until after %pre. I am of the opinion "%post nochroot" is more hacky than the alternative and chose not to do it this way on purpose. What do you think is better given the options? It also seems overly complicated to require %pre and %post sections when it can all be done in %pre.
I think looping in Anaconda is kind of scary and wasn't really clear that pre could loop infinitely.
I don't think this is a problem. If will only loop if it gets ssh keys off of the local box, and it is backgrounded. It would be killed after %post if it was looping forever.
Also folks putting code below the loop might be suprised to see it delays things. (In fact, I wasn't clear %packages didn't wait for all pre sections to complete? Maybe I'm skimming this too fast).
You are most certainly skimming this too fast :-) The loop is backgrounded (done &) the installation continues. If the loop wasn't backgrounded the package install would never work. This is why an infinite loop won't matter. It will die when anaconda sends a reboot.
Waiting until after the packages are installed (%post) seems quite sane, and Anaconda does support multiple %post sections. We could call the snippet preserve_ssh_host_keys_post_nochroot if needed :)
On the other hand I'm all for splitting this up if it is the difference between being included in upstream cobbler or not.
Yeah let's do this.
*sigh* ok so here is a question. Should the user of this snippet be required to put a "%post nochroot" line, or should that be included inside of the post snippet towards the top?