Dan,

The part about classes being stored in a database has me confused. I
thought that classes were in-memory for each run of a component
(cf-agent, cf-serverd, etc.). Are you saying classes are something like
a shared value between the components, rather than each component
essentially having its own view of the world, so to speak?

I assume you're referring to cf_classes.tcdb. Can you elaborate a bit
more on how that file is used? The reference manual says the file is a
"database of classes that have been defined on the current host,
including their relative frequences, scaled like a probability". That
sounds to me like it's statistical/historical, rather than realtime,
information.

Thanks,
Justin

-----Original Message-----
From: d...@lonewolf.com [mailto:d...@lonewolf.com] On Behalf Of
daniel.kl...@cfengine.com
Sent: Wednesday, April 21, 2010 4:08 PM
To: Lebel, Marco
Cc: Justin Lloyd; fo...@cfengine.com; help-cfengine@cfengine.org
Subject: Re: Cfengine Help: Re: RE: Cfengine Help: cfengine program flow


Kinda-sorta :-)

Classes that are defined in a "common" bundle are global.  Classes that
are
defined in any other kind of bundle are local to that bundle.  See
section
1.6 of the manual.

Likewise, classes are cached with an expiration time, but they do go
away.
Although they can be set with a test, the condition which sets them is
not
continuously evaluated - so they stick around a bit.  Classes are stored
in
a database - so that the various components of Cfengine can share them.
You can clear a class with the -U switch, if you need to.

-Dan

> Justin,
> 
> You are bringing an interesting point since I struggle with classes in
this c
> ontext.  But I have not done any structured testing but I am under the
impres
> sion that once a class has been set it never gets unset.
> 
> Again I want to stress that I never did any exhaustive testing on this
but I 
> believe that classes once set they are set globally (i.e. visible in
all subs
> equent bundle) and never get unset even if the condition that
initially creat
> ed it is no longer true... Again the key word is an impression that
needs to 
> be confirmed by someone in the know or has done the necessary testing.
> 
> Marco
> 
> -----Original Message-----
> From: help-cfengine-boun...@cfengine.org
[mailto:help-cfengine-boun...@cfengi
> ne.org] On Behalf Of Justin Lloyd
> Sent: Wednesday, April 21, 2010 5:31 PM
> To: fo...@cfengine.com; help-cfengine@cfengine.org
> Subject: RE: Cfengine Help: Re: RE: Cfengine Help: cfengine program
flow
> 
> As I understand it, it will reevalute the class promise, and therefore
> check for the file's existence, on all three iterations. A good way to
> see what is happening is to run cf-agent in verbose mode (cf-agent
-vK)
> and write its output to a file then read through it. You'll see lines
> like this (yours will be prefixed with something other than "nova>"):
> 
> [r...@rhn ~]# cf-agent -vK > /tmp/out
> [r...@rhn ~]# grep '^nova>.* in bundle .* ([1-3])' /tmp/out
> nova>    vars in bundle def (1)
> nova>    classes in bundle def (1)
> nova>    vars in bundle def (2)
> nova>    classes in bundle def (2)
> nova>    vars in bundle def (3)
> nova>    classes in bundle def (3)
> nova>    vars in bundle update (1)
> nova>    classes in bundle update (1)
> nova>    processes in bundle update (1)
> nova>    commands in bundle update (1)
> nova>    files in bundle update (1)
> nova>    services in bundle update (1)
> nova>    vars in bundle update (2)
> nova>    classes in bundle update (2)
> nova>    processes in bundle update (2)
> nova>    commands in bundle update (2)
> nova>    files in bundle update (2)
> nova>    services in bundle update (2)
> nova>    vars in bundle update (3)
> nova>    classes in bundle update (3)
> nova>    processes in bundle update (3)
> nova>    commands in bundle update (3)
> nova>    files in bundle update (3)
> nova>    services in bundle update (3)
> nova>    vars in bundle dg (1)
> nova>    classes in bundle dg (1)
> nova>    vars in bundle dg (2)
> nova>    classes in bundle dg (2)
> nova>    vars in bundle dg (3)
> nova>    classes in bundle dg (3)
> 
> Note how it does 3 iterations of the promise types in bundle "def",
then
> 3 of bundle "update", etc. ("dg" is a custom bundle of mine).
> 
> Justin
> 
> -----Original Message-----
> From: help-cfengine-boun...@cfengine.org
> [mailto:help-cfengine-boun...@cfengine.org] On Behalf Of
> fo...@cfengine.com
> Sent: Wednesday, April 21, 2010 3:22 PM
> To: help-cfengine@cfengine.org
> Subject: Cfengine Help: Re: RE: Cfengine Help: cfengine program flow
> 
> Forum: Cfengine Help
> Subject: Re: RE: Cfengine Help: cfengine program flow
> Author: nicolas
> Link to topic:
> https://cfengine.com/forum/read.php?3,16959,16960#msg-16960
> 
> thanks for the fast response.
> 
it helps, i thought this is a recommendation :-/ (i should read more
> exactly)
> 
> but one question i still have: 
> 
> if i define a class:
> 
> classes:
> 
> "xy_installed" expression => fileexists("/usr/example");
> 
> does it recheck this value each time i use 
> 
> xy_installed::
> 
> or only once at the beginning of each of the 3 times?
> 
> regards 
> 
> nicolas
> 
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine
> 
> This electronic communication and any attachments may contain
confidential an
> d proprietary 
> information of DigitalGlobe, Inc. If you are not the intended
recipient, or a
> n agent or employee 
> responsible for delivering this communication to the intended
recipient, or i
> f you have received 
> this communication in error, please do not print, copy, retransmit,
dissemina
> te or 
> otherwise use the information. Please indicate to the sender that you
have re
> ceived this 
> communication in error, and delete the copy you received. DigitalGlobe
reserv
> es the 
> right to monitor any electronic communication sent or received by its
employe
> es, agents 
> or representatives.
> 
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine
> _______________________________________________
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine

This electronic communication and any attachments may contain confidential and 
proprietary 
information of DigitalGlobe, Inc. If you are not the intended recipient, or an 
agent or employee 
responsible for delivering this communication to the intended recipient, or if 
you have received 
this communication in error, please do not print, copy, retransmit, disseminate 
or 
otherwise use the information. Please indicate to the sender that you have 
received this 
communication in error, and delete the copy you received. DigitalGlobe reserves 
the 
right to monitor any electronic communication sent or received by its 
employees, agents 
or representatives.

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

Reply via email to