help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is this quirky for a simple copy, editfiles operation?


From: Brendan Strejcek
Subject: Re: Is this quirky for a simple copy, editfiles operation?
Date: Thu, 12 May 2005 14:29:54 -0500
User-agent: Mutt/1.5.6+20040907i

Mark Burgess wrote:

> On Thu, 2005-05-12 at 14:06 -0500, Brendan Strejcek wrote:
> > Roy MARANTZ wrote:
> > 
> > > If the action list is eliminated, IMHO, there needs to be some
> > > mechanism to specify the ordering of actions. i.e. I need to
> > > run shellcommands (and others) twice in order to make sure that
> > > perconditions for certain actions are met. To be concrete, I need to
> > > blow up a tar ball before I can override some file in it.
> > 
> > Wouldn't it be cool if you could just do:
> > 
> >     shellcommands:
> >         did_some_command::
> >             "/command/that/must/come/after some/command"
> >         any::
> >             "/some/command"
> >                 define=did_some_command
> > 
> > and have cfagent figure out the rest? There is no complexity or
> > ambiguity for the admin to sort out, and no imperative illusion.
> 
> 
> You already can do this, if you observe AddInstallable.

But not for more complex dependency/ordering relationships, right?

It seems to me like there are cases where this breaks down, as I tried
to outline in my previous long message.

In fact, here is a simple case where the current method breaks down,
even with no cross-action dependencies.

Here is a one level case where it works:

    $ cat test_one_level
    #!/usr/sbin/cfagent -qKf
    
    control:
        AddInstallable = ( did_first )
        actionsequence = ( shellcommands )
    
    shellcommands:
        did_first::
            "/bin/echo second"
        any::
            "/bin/echo first"
                define=did_first

    $ ./test_one_level
    cfengine::/bin/echo first: first
    cfengine::/bin/echo secon: second

But it breaks with two levels:

    $ cat test_two_level
    #!/usr/sbin/cfagent -qKf
    
    control:
        AddInstallable = ( did_first did_second )
        actionsequence = ( shellcommands )
    
    shellcommands:
        did_second::
            "/bin/echo third"
        did_first::
            "/bin/echo second"
                define=did_second
        any::
            "/bin/echo first"
                define=did_first

    $ ./test_two_level
    cfengine::/bin/echo first: first
    cfengine::/bin/echo secon: second
    $




reply via email to

[Prev in Thread] Current Thread [Next in Thread]