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
[email protected]
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine