This policy is inventory related to redhat hosts.

common bodies

inventory_redhat

Prototype: inventory_redhat

Description: Red Hat inventory bundle

This common bundle is for Red Hat Linux inventory work.

Implementation:

bundle common inventory_redhat
{
  classes:
    "redhat_pure"
      or => {
        strcmp("$(sys.os_release[ID])", "rhel"),
        # Red Hat > 7 have /etc/os-release and the ID field is set to rhel
        strcmp(
          "any",
          and(
            "redhat.!(centos|oracle|fedora|rocky|almalinux)",
            # Red Hat < 7 does not have /etc/os-release, and is pure if we don't find another known derivative
            not(isvariable("sys.os_release"))
          )
        ),
      },
      comment => "pure Red Hat",
      meta => { "inventory", "attribute_name=none" };

    "redhat_derived"
      expression => "redhat.!redhat_pure",
      comment => "derived from Red Hat",
      meta => { "inventory", "attribute_name=none" };

    "inventory_redhat_have_python_symlink"
      expression => fileexists("$(sys.bindir)/cfengine-selected-python");
}