Forum: Cfengine Help
Subject: Populating slist from an execresult
Author: nbianchi
Link to topic: https://cfengine.com/forum/read.php?3,18222,18222#msg-18222

We grabbed the HPC configuration example from the solutions guide and we're 
using it as a base for assuring that sevices that are chkconfig'd "on"  are 
actually running.
The problem is in the population of the list from the execresult below. 
I can run the command in a shell without issue, but it is not getting to the 
variable. 

######
vars:
      "services" slist =>  execresult("/bin/ls /etc/rc.d/rc3.d/S*|/usr/bin/sed 
's/\/etc\/rc.d\/rc3.d\/S[0-9][0-9]//'", "useshell");
######


When running cf-promises -f cf-process.cf.new -v we get this output. 
What does this mean?
######
Validation: rhs is a scalar, but lhs (slist) is not a scalar type
######

We are then iterating through this list to assure that these services are 
really running.

##########
methods:

   # perform the actual check and restart on services included in the list above

   "any"  usebundle => enable_service("$(services)");

}

###############################################################################

bundle agent enable_service(name)
{
 vars:
   "status" string => execresult("/sbin/chkconfig $(name)", "useshell");

 classes:
   "on"  expression => regcmp(".*on","$(status)");
   "off" expression => regcmp(".*off","$(status)");
   on::
   "running" expression => returnszero("/sbin/service $(name) 
status","noshell");

 commands:
   on.!running::
      "/sbin/service $(name) restart",
        comment => "Restart $(name) service";

 reports:
   on.!running::
      "Restarted $(name) service.";
   off::
      "$(name) has been already disabled. Don't need to perform any actions.";

}


Thoughts, comments, suggestions?
Thanks in advance,
   Nicola

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

Reply via email to