On 15 feb 2011, at 11:13, Bas van der Vlies wrote:

> 
> The usemodule() function is used in a "bundle common" . The init_nodes 
> function is called several times for each input set. Is this the desired 
> behaviour? Or is there no locking for usemodule() function? or must i use 
> this differently?
> 
> example:
> 
> bundle common g
> {
> 
>       classes:
>               GOT_INIT" expression => usemodule("init_node","");
> }
> 
> init_node:
> {{{
> case `cat /etc/node_status/cluster` in
> 
>    lisa)
>        echo +LISA_CLUSTER
>    ;;
> 
>    interne-servers)
>        echo +INTERNE_SERVERS
>    ;;
> esac
> }}}
> 
> output of a run:  Note how many times init_node is called!!!
> {{{
> community>   > Parsing file /var/lib/cfengine3/inputs/promises.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  ?> defining additional global class GOT_INIT
> community>  ?> defining additional global class Production
> community>  ?> defining additional global class debian_squeeze
> community>  ?> defining additional global class all
> community> SET ignore_missing_bundles true
> community>   > Parsing file /var/lib/cfengine3/inputs/update.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/cf-serverd.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/cf-execd.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/cf-monitord.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/cfengine.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/mirror_copy.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/action.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/node_status.cf
> community>   > Parsing file 
> /var/lib/cfengine3/inputs/library/cfengine_stdlib.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/library/sara_stdlib.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community> SET ignore_missing_bundles true
> community>   > Parsing file /var/lib/cfengine3/inputs/lisa/global.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/maui.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/ntp.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/system_access.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/torque.cf
> community>   > Parsing file /var/lib/cfengine3/inputs/bundles/ssh.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  -> Checking common class promises...
> community>  ?> defining additional global class PBS_MOM
> community> SET ignore_missing_bundles true
> community>   > Parsing file 
> /var/lib/cfengine3/inputs/lisa/change_management.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  -> Checking common class promises...
> community> SET ignore_missing_bundles true
> community>   > Parsing file /var/lib/cfengine3/inputs/lisa/quarterly.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  -> Checking common class promises...
> community> SET ignore_missing_bundles true
> community>   > Parsing file /var/lib/cfengine3/inputs/lisa/hourly.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  -> Checking common class promises...
> community> SET ignore_missing_bundles true
> community>   > Parsing file /var/lib/cfengine3/inputs/lisa/daily.cf
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  -> Checking common class promises...
> community> SET ignore_missing_bundles true
> community> Initiate variable convergence...
> community>  -> Checking common class promises...
> community> Executing and using module [/var/lib/cfengine3/modules/init_node ]
> community> Activated classes: LISA_CLUSTER
> community>  -> Checking common class promises...
> community> # Knowledge map reporting feature is only available in version 
> Nova and above
> community>  -> Defined classes = { 192_168_145_133 192_168_153_131 64_bit 
> Day15 February GMT_Hr10 GOT_INIT Hr11 Hr11_Q1 LISA_CLUSTER 
> ....
> }}}}
> 
To reduce the invocation of usemodule function i use:
        !GOT_INIT::
            "GOT_INIT" expression => 
usemodule("init_node","/etc/node_status/cluster");


--
Bas van der Vlies
b...@sara.nl



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

Reply via email to