Well spotted, Nicholas,

A missing registration. Adding to svn a fix
M

Nicolas Charles wrote:
> Consider the following example
> 
> bundle agent createfolder {
> 
> files:
>             "/home/nicolas/foo/."
>                 create => "true",
>                 comment => "Creating directory",
>                 classes => if_else("foldercreated", "failure");
> 
> commands:
>         foldercreated::
>                 "/bin/echo \"Folder created or present\"";
> 
>         failure::
>                 "/bin/echo \"Failure\"";
> 
> }
> 
> body classes if_else(if, else) {
>         promise_repaired => {"foldercreated"};
>         promise_kept => {"foldercreated"};
>         repair_failed => {"$(else)"};
> }
> 
> 
> 
> It should create the folder foo if it doesn't exist, and set the class 
> foldercreated. But it doesn't (latest trunk build and cf3.0.2)
> 
> Output if folder doesn't exist :
> cf3 Verifying SQL table promises is only available with Cfengine Nova or 
> above
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Folder created or present"), 
> as context foldercreated is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Failure"), as context 
> failure is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3
> cf3    =========================================================
> cf3    files in bundle createfolder (1)
> cf3    =========================================================
> cf3
> cf3 Verifying SQL table promises is only available with Cfengine Nova or 
> above
> cf3
> cf3     .........................................................
> cf3     Promise handle:
> cf3     Promise made by: /home/nicolas/foo/.
> cf3
> cf3     Comment:  Creating directory
> cf3     .........................................................
> cf3
> cf3  -> Using literal pathtype for /home/nicolas/foo/.
> cf3
> cf3      +  Private classes augmented:
> cf3
> cf3      -  Private classes diminished:
> cf3
> cf3
> cf3
> cf3    =========================================================
> cf3    commands in bundle createfolder (2)
> cf3    =========================================================
> cf3
> cf3 Verifying SQL table promises is only available with Cfengine Nova or 
> above
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Folder created or present"), 
> as context foldercreated is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Failure"), as context 
> failure is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> 
> 
> 
> 
> Output if folder exists:
> 
> cf3 Verifying SQL table promises is only available with Cfengine Nova or 
> above
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Folder created or present"), 
> as context foldercreated is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Failure"), as context 
> failure is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3
> cf3    =========================================================
> cf3    files in bundle createfolder (1)
> cf3    =========================================================
> cf3
> cf3 Verifying SQL table promises is only available with Cfengine Nova or 
> above
> cf3
> cf3     .........................................................
> cf3     Promise handle:
> cf3     Promise made by: /home/nicolas/foo/.
> cf3
> cf3     Comment:  Creating directory
> cf3     .........................................................
> cf3
> cf3  -> Using literal pathtype for /home/nicolas/foo/.
> cf3  -> File /home/nicolas/foo/. exists as promised
> cf3  ?> defining promise result class foldercreated
> cf3  -> Handling file existence constraints on /home/nicolas/foo/.
> cf3
> cf3      +  Private classes augmented:
> cf3
> cf3      -  Private classes diminished:
> cf3
> cf3
> cf3
> cf3    =========================================================
> cf3    commands in bundle createfolder (2)
> cf3    =========================================================
> cf3
> cf3 Verifying SQL table promises is only available with Cfengine Nova or 
> above
> cf3  -> Promiser string contains a valid executable (/bin/echo) - ok
> cf3
> cf3     .........................................................
> cf3     Promise handle:
> cf3     Promise made by: /bin/echo "Folder created or present"
> cf3     .........................................................
> cf3
> cf3  -> Executing '/bin/echo "Folder created or present"' 
> ...(timeout=0,owner=-1,group=-1)
> cf3  -> (Setting umask to 77)
> cf3 Q: ".../bin/echo "Fold": Folder created or present
> cf3  -> Finished script - succeeded /bin/echo "Folder created or present"
> cf3 I: Last 1 QUOTEed lines were generated by promiser "/bin/echo 
> "Folder created or present""
> cf3 I: Report relates to a promise with handle ""
> cf3 I: Made in version 'not specified' of './createfolder.cf' near line 18
> cf3  -> Completed execution of /bin/echo "Folder created or present"
> cf3
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> cf3 Skipping whole next promise (/bin/echo "Failure"), as context 
> failure is not relevant
> cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
> 
> 
> 
> 
> Using "/home/nicolas/foo/" as a temporary workaround: it failed for it 
> is not a file, but a folder, and at the next iteration the folder is 
> there, so the promise is kept
> 
> Regards,
> Nicolas
> _______________________________________________
> Bug-cfengine mailing list
> Bug-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/bug-cfengine

-- 
Mark Burgess

-------------------------------------------------
Professor of Network and System Administration
Oslo University College, Norway

Personal Web: http://www.iu.hio.no/~mark
Office Telf : +47 22453272
-------------------------------------------------
_______________________________________________
Bug-cfengine mailing list
Bug-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/bug-cfengine

Reply via email to