I'm pretty sure modules can do what you want. They are programs that are
executed by cfengine, and return in serialized form a stream of classes to
be defined (or undefined). You can make that program as smart or dumb as you
want, and simulate things like persistent classes.

On Mon, Sep 13, 2010 at 7:40 PM, Trond Hasle Amundsen <
t.h.amund...@usit.uio.no> wrote:

>
> Hi,
>
> I've been playing with class persistence recently. The idea is to run
> potentially heavy class-generating commands not too frequently, but
> being able to use those classes every time Cfengine runs.
>
> What I have now is this:
>
> ----------------------------------------------------------------
>  bundle common get_the_classes
>  {
>  vars:
>    hourly::
>      "test_command"
>         string => "some heavy command";
>
>  classes:
>    hourly::
>      "yes_test"
>         expression =>
> strcmp("yes",execresult("$(test_command)","noshell"));
>
>      "not_test"
>         expression => strcmp("no",execresult("$(test_command)","noshell"));
>
>  reports:
>    yes_test::
>      "$(sys.fqhost) test = yes!",
>         classes => persist("yes_test","120");
>
>    not_test::
>      "$(sys.fqhost) test = no!",
>         classes => persist("not_test","120");
>
>    !yes_test.!not_test::
>      "OOPS! $(sys.fqhost) - Something is wrong with test classes!";
>  }
>
>  body classes persist(class,time)
>  {
>    promise_repaired => { "$(class)" };
>    persist_time     => "$(time)";
>    timer_policy     => "reset";
>  }
> ----------------------------------------------------------------
>
> (The class "hourly" is a splayclass).
>
> Is it possible to make the classes persistent in the class promise
> somehow, or do I have to set the persistence whenever the class is
> actually used (like with reports in the example above)?
>
> I've tried this:
>
>  classes:
>    hourly::
>      "yes_test"
>         expression =>
> strcmp("yes",execresult("$(test_command)","noshell")),
>         classes => persist("yes_test","120");
>
> But that didn't do the trick, although it passed as valid syntax.
>
> Cheers,
> --
> Trond H. Amundsen <t.h.amund...@usit.uio.no>
> Center for Information Technology Services, University of Oslo
> _______________________________________________
> 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

Reply via email to