Forum: Cfengine Help
Subject: package_policy => "verify" under freebsd
Author: Igor
Link to topic: https://cfengine.com/forum/read.php?3,19188,19188#msg-19188

Hi!
I want check for some packages, installed it or no:

====PACKAGES_verify.cf===

body common control

{
bundlesequence  => { "packages_verify"  };
}

bundle agent packages_verify
{
 
packages:
"sudo-1.7.4.4"

     package_policy => "verify",
     package_method => freebsd,
     classes   => satisfied("pkg_ok");

reports:
pkg_ok::
"sudo-1.7.4.4 installed";

}

body package_method freebsd

{
any::

 package_changes => "individual";

 # Could use rpm for this
 package_list_command => "/usr/sbin/pkg_info";

 # Remember to escape special characters like |

 package_list_name_regex    => "([^-]+).*";
 package_list_version_regex => "[^-]+-([^\s]+).*";

 package_name_regex    => "([^-]+).*";
 package_version_regex => "[^-]+-([^\s]+).*";

 package_installed_regex => ".*";

 package_name_convention => "$(name)-$(version)";
# package_name_convention => "${localpkgpath}/$(name)-$(version)";


package_verify_command => "/usr/sbin/pkg_info -qE";
package_add_command => "/usr/sbin/pkg_add";
package_delete_command => "/usr/sbin/pkg_delete -f";
package_update_command => "/usr/local/sbin/portupgrade -PP";
}

body classes satisfied(x)
{
promise_repaired => { "$(x)" };
persist_time => "0";
}

===============

body package_method freebsd taken from stdlib  except package_verify_command 
defined as pkg_info -qE.
Version sudo-1.7.4.3_1 installed on server. I want check installed new version 
1.7.4.4 or not.




#cf-agent -I -K -f PACKAGES_verify.cf

Q:pkg_info -qE sudo-1. ...:
R: sudo-1.7.4.4 installed

#cf-agent -v -K -f PACKAGES_verify.cf
cf3    =========================================================
cf3    packages in bundle packages_verify (1)
cf3    =========================================================
cf3 
cf3 Extended process options are only available with Cfengine Nova or above
cf3 
cf3     .........................................................
cf3     Promise handle: 
cf3     Promise made by: sudo-1.7.4.4
cf3     .........................................................
cf3 
cf3  ???????????????????????????????????????????????????????????????
cf3    Reading package list from /usr/sbin/pkg_info
cf3  ???????????????????????????????????????????????????????????????
cf3 # Software reporting feature is only available in version Nova and above
cf3 # Patch reporting feature is only available in version Nova and above
cf3  ???????????????????????????????????????????????????????????????
cf3   Done checking packages and patches
cf3  ???????????????????????????????????????????????????????????????
cf3  -> Package version specified implicitly in promiser's name
cf3  -> Looking for (sudo,*,*)
cf3  -> Matched name sudo
cf3  -> Matched version *
cf3  -> Looking for (sudo,1.7.4.4,*)
cf3  -> Matched name sudo
cf3  -> Check for compatible versioning model in (1.7.4.4,1.7.4.3_1)
cf3  -> Verified that versioning models are compatible
cf3  -> Verified version constraint promise kept
cf3  -> 1 package(s) matching the name "sudo" already installed
cf3  -> 1 package(s) match the promise body's criteria fully
cf3  -> Package promises to refer to itself as "sudo-1.7.4.4" to the manager
cf3  -> Package version seems to match criteria
cf3  -> Schedule package for verification
cf3  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cf3    Offering these package-promise suggestions to the managers
cf3  >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
cf3  -> Deletion schedule...
cf3  -> Addition schedule...
cf3  -> Update schedule...
cf3  -> Patch schedule...
cf3  -> Verify schedule...
cf3 Execute scheduled package verification
cf3 Command prefix: /usr/sbin/pkg_info -qE
cf3 Executing /usr/sbin/pkg_info -qE sudo-1.7.4.4...
cf3 Q:pkg_info -qE sudo-1. ...:
cf3 Package schedule execution ok for sudo-1.7.4.4 (outcome cannot be promised 
by cf-agent)
cf3  ?> defining promise result class pkg_ok
cf3 
cf3    =========================================================
cf3    reports in bundle packages_verify (1)
cf3    =========================================================
cf3 
cf3 Extended process options are only available with Cfengine Nova or above
cf3 
cf3     .........................................................
cf3     Promise handle: 
cf3     Promise made by: sudo-1.7.4.4 installed
cf3     .........................................................
cf3 
cf3 Reporting about this...
cf3 R: sudo-1.7.4.4 installed
{skip}


So, i have wrong result. How i can use pkg_info for correct works with "verify" 
package policy?


---
Igor

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

Reply via email to