Hi again,

Brendan Strejcek wrote:
> Set classes based on what kind of file /srv/www is.
> 
> http://www.cfengine.org/manuals/cf3-reference.html#Function-islink
> http://www.cfengine.org/manuals/cf3-reference.html#Function-isplain
> http://www.cfengine.org/manuals/cf3-reference.html#Function-isdir
> 
> Conditionals should allow you to avoid any race conditions.
> 
> Let me know if you need specific examples, or if that is enough to go on.


No matter how I write my test promises, I always end up with the error
message "!! Promise constraint conflicts - /var/www/. cannot be
renamed/moved and exist there at the same time".

*** FIRST EXAMPLE *** - does not work:
<snip>
classes:
        SRV_APACHE::
                "isdir" expression => isdir("/var/www");
files:
        SRV_APACHE.isdir::
                "/var/www/."
                        rename => MoveTo("/srv/www/."),
                        perms => PermsChgrp("www-data"),
                        create => "true";
                "/var/www"
                        link_from => LinkFrom("/srv/www"),
                        perms => PermsChgrp("www-data");
</snip>

*** SECOND EXAMPLE (just to make sure...) *** - same error message:
<snip>
classes:
        SRV_APACHE::
                "isdir" expression => isdir("/var/www");
                "islink" expression => islink("/var/www");
files:
        SRV_APACHE.isdir::
                "/var/www/."
                        rename => MoveTo("/srv/www/."),
                        perms => PermsChgrp("www-data"),
                        create => "true";
        SRV_APACHE.!islink::
                "/var/www"
                        link_from => LinkFrom("/srv/www"),
                        perms => PermsChgrp("www-data");
</snip>

So the race condition is avoided, but cfengine still complains. Ideas
anyone?

Cheers,
Robert

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

Reply via email to