I am trying to replicate the "rm -rf" command.  I am getting the correct result 
but I have errors.  Help.

Here is the config file.
#
#       testing cfengine with following:
#               delete local folder
#
body common control
{
        bundlesequence          => { "createFile" , "copyLocalFile" , 
"deleteLocalFolder" };
        ignore_missing_bundles  => "true";
        require_comments        => "true";
        inputs                  => { "/var/cfengine/inputs/cfengine_stdlib.cf" 
};
        version                 => "1.0";
}

body agent control
{
        verbose         => "true";
}

bundle agent createFile
{
        files:
#
#       the stanza below creates folders and file if it does not exist
#
                "/tmp/test/create_folder1/create_file4.txt"
                comment => "create file",
                perms => mog("755", "root", "root"),
                create => "true";

                "/tmp/test/create_folder1/create_folder2/create_file5.txt"
                comment => "create file",
                perms => mog("755", "root", "root"),
                create => "true";

                "/tmp/test/create_folder1/create_folder2/create_file7.txt"
                comment => "create file",
                perms => mog("755", "root", "root"),
                create => "true";

                "/tmp/test/create_folder1/create_folder3/create_file6.txt"
                comment => "create file",
                perms => mog("755", "root", "root"),
                create => "true";

                "/tmp/test/create_folder1/create_folder3/create_file8.txt"
                comment => "create file",
                perms => mog("755", "root", "root"),
                create => "true";
}

bundle agent copyLocalFile
{
        files:
                "/tmp/test/create_folder1/copy_local_file.txt"
                comment         => "copy local file",
                preserve        => "true",
                copy_from       => myLocalCopy("/etc/hosts");

                "/tmp/test/create_folder1/copy_local_file2.txt"
                comment         => "copy local file",
                preserve        => "true",
                copy_from       => 
myLocalCopy("/tmp/test/create_folder1/copy_local_file.txt");
}

bundle agent deleteLocalFolder
{
        files:
                "/tmp/test/create_folder1/create_fo.*"
                comment         => "delete local folders",
                include_basedir => "true",
#               include_dirs    => { "/tmp/test/create_folder1/create_folde.*" 
},
                depth_search    => recurse("inf"),
                file_select     => 
specifyFile("/tmp/test/create_folder1/create_fo.*"),
                delete          => tidy;
}

body copy_from myLocalCopy(from)
{
        source  => "$(from)";
}

body file_select specifyFile(x)
{
        path_name               => { "$(x)" };
        file_types              => { "plain" , "dir" , "reg" };
        file_result             => "path_name";
}

Here are the errors that I am getting.
cf3> *****************************************************************
cf3> BUNDLE deleteLocalFolder
cf3> *****************************************************************
cf3> 
cf3> 
cf3>      +  Private classes augmented:
cf3> 
cf3>      -  Private classes diminished:
cf3> 
cf3> 
cf3> 
cf3>    =========================================================
cf3>    files in bundle deleteLocalFolder (1)
cf3>    =========================================================
cf3> 
cf3> 
cf3>     .........................................................
cf3>     Promise handle: 
cf3>     Promise made by: /tmp/test/create_folder1/create_fo.*
cf3> 
cf3>     Comment:  delete local folders
cf3>     .........................................................
cf3> 
cf3>  -> Using regex pathtype for /tmp/test/create_folder1/create_fo.* (see 
pathtype)
cf3>  -> Using expanded file base path /tmp/test/create_folder1/create_folder2
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder2
cf3>  -> Verifying file deletions for /tmp/test/create_folder1/create_folder2
cf3>  !! Delete directory /tmp/test/create_folder1/create_folder2 failed 
(cannot delete node called "create_folder2")
cf3>  !!! System reports error for rmdir: "Directory not empty"
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder2/create_file7.txt
cf3>  -> Verifying file deletions for 
/tmp/test/create_folder1/create_folder2/create_file7.txt
cf3>  -> Deleted file /tmp/test/create_folder1/create_folder2/create_file7.txt
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder2/create_file5.txt
cf3>  -> Verifying file deletions for 
/tmp/test/create_folder1/create_folder2/create_file5.txt
cf3>  -> Deleted file /tmp/test/create_folder1/create_folder2/create_file5.txt
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder2
cf3>  -> Verifying file deletions for /tmp/test/create_folder1/create_folder2
cf3>  -> Deleted directory /tmp/test/create_folder1/create_folder2
cf3>  -> Using expanded file base path /tmp/test/create_folder1/create_folder3
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder3
cf3>  -> Verifying file deletions for /tmp/test/create_folder1/create_folder3
cf3>  !! Delete directory /tmp/test/create_folder1/create_folder3 failed 
(cannot delete node called "create_folder3")
cf3>  !!! System reports error for rmdir: "Directory not empty"
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder3/create_file8.txt
cf3>  -> Verifying file deletions for 
/tmp/test/create_folder1/create_folder3/create_file8.txt
cf3>  -> Deleted file /tmp/test/create_folder1/create_folder3/create_file8.txt
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder3/create_file6.txt
cf3>  -> Verifying file deletions for 
/tmp/test/create_folder1/create_folder3/create_file6.txt
cf3>  -> Deleted file /tmp/test/create_folder1/create_folder3/create_file6.txt
cf3>  -> Handling file existence constraints on 
/tmp/test/create_folder1/create_folder3
cf3>  -> Verifying file deletions for /tmp/test/create_folder1/create_folder3
cf3>  -> Deleted directory /tmp/test/create_folder1/create_folder3
cf3> 
cf3>      +  Private classes augmented:
cf3> 
cf3>      -  Private classes diminished:
cf3> 
cf3> 
cf3> 
cf3>    =========================================================
cf3>    files in bundle deleteLocalFolder (2)
cf3>    =========================================================
cf3> 
cf3> 
cf3>      +  Private classes augmented:
cf3> 
cf3>      -  Private classes diminished:
cf3> 
cf3> 
cf3> 
cf3>    =========================================================
cf3>    files in bundle deleteLocalFolder (3)
cf3>    =========================================================
cf3> 
cf3> Outcome of version 1.0 (agent-0): Promises observed to be kept 34%, 
Promises repaired 52%, Promises not repaired 14%
cf3> Estimated system complexity as touched objects = 9, for 8 promises
cf3>  -> Writing last-seen observations
cf3>  -> Keyring is empty
cf3>  -> No lock purging scheduled

Regards,
j

-----Original Message-----
From: help-cfengine-boun...@cfengine.org 
[mailto:help-cfengine-boun...@cfengine.org] On Behalf Of no-re...@cfengine.com
Sent: Thursday, June 16, 2011 1:32 PM
To: help-cfengine@cfengine.org
Subject: Cfengine Help: Re: Cfengine Help: Deleting a Local File

Forum: Cfengine Help
Subject: Re: Cfengine Help: Deleting a Local File
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,22450,22484#msg-22484

Try rmdirs in the manual.  Also I don't think you can delete the top level dir 
of your promise.  You might need to trail the path with the dot.

_______________________________________________
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