Forum: CFEngine Help
Subject: Define classes if a process is running or not
Author: loopx
Link to topic: https://cfengine.com/forum/read.php?3,26838,26838#msg-26838

Hi, 


To make some promise, I need to define classes like this :
- XXX_running
- XXX_stopped


At the beginning, we was using (like for Cfengine2) the following module :

for process in $@ ; do
        processname=$(echo $process | sed s/-//g );

        if ps aux | grep $process | grep -qv grep ; then
                echo "+${processname}_running";
                echo "-${processname}_stopped";
        else
                echo "-${processname}_running";
                echo "+${processname}_stopped";
        fi
done


But, I've seen that it's possible to define classes with built-in methods of 
Cfengine3. In the community lib, I've tried to use "if_else" but, it is always 
"yes" which win and print the final report, even if the process is not running :


body classes if_else(yes,no)

{
promise_kept     => { "$(yes)" };
promise_repaired => { "$(yes)" };
repair_failed    => { "$(no)" };
repair_denied    => { "$(no)" };
repair_timeout   => { "$(no)" };
}

        processes:
                redhat_6::
                        "rhsmcertd"
                                classes         => if_else("rhsmcertd_running", 
"rhsmcertd_stopped"),
                                comment         => "Check if process 
'rhsmcertd' is running ; should be stopped ...";

        reports:
                redhat_6.rhsmcertd_running::
                        "WARNING> Service 'rhsmcertd' is running and should be 
stopped ...";

                redhat_6.rhsmcertd_stopped::
                        "DEBUG> Service 'rhsmcertd' is stopped and this is OK 
...";


So, how should I do to only define a class if the process is running, and 
another class if the process is not running ???


Thanks

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

Reply via email to