Forum: CFEngine Help
Subject: Re: Explanation for 3x iteration in a bundle
Author: frans
Link to topic: https://cfengine.com/forum/read.php?3,24402,24410#msg-24410

Beto - 

I didn't see any "commands:" section in your bundle.. but I think I've figured 
out what's going on.  As verbose output indicates, variable convergence happens 
just once at the execution of cf-agent and is not revisited regardless of what 
classes change during actual bundle execution.  

Other parts of a bundle DO get processed three times.  

This bundle works fine:


bundle agent test {

files:

 red::
        "/tmp/foo/red"
                copy_from => local_cp("/root/red"),
                classes => if_repaired("$(myslist)");

commands:

        "/root/setredclass.sh"
                module => "true";

}


The "/tmp/foo/red" promise is skipped over the first time but on the second 
loop through the bundle it does get copied into place.

This bundle, however, does not work the same way.


bundle agent test {

vars:

  red::
        "redvar" string => "redvar";

commands:
        
        "/root/setredclass.sh"
                module => "true";

reports:

 red::
        "$(redvar) is set.";

}


The report only ever shows "$(redvar)"  

If I'm right then this is a subtlety to cfengine that might warrant a sentence 
or two extra in the discussion of normal ordering... even though I appear to be 
the only person to have stubbed my toe on this behaviour. :)

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to