<def-group>
  <definition class="compliance" id="grub2_{{{ ARG_NAME }}}_argument" version="2">
    <metadata>
      <title>Ensure GRUB 2 is configured to run Linux operating system with argument {{{ ARG_NAME_VALUE }}}</title>
      <affected family="unix">
        <platform>Red Hat Enterprise Linux 7</platform>
        <platform>Red Hat Enterprise Linux 8</platform>
        <platform>multi_platform_fedora</platform>
        <platform>multi_platform_rhv</platform>
        <platform>multi_platform_ol</platform>
      </affected>
      <description>Look for argument {{{ ARG_NAME_VALUE }}} in the kernel line in /etc/default/grub.</description>
    </metadata>
    <criteria operator="OR">
      <criterion test_ref="test_grub2_{{{ ARG_NAME }}}_argument"
      comment="check for {{{ ARG_NAME_VALUE }}} in /etc/default/grub via GRUB_CMDLINE_LINUX" />
      <criteria operator="AND">
        <criterion test_ref="test_grub2_{{{ ARG_NAME }}}_argument_default"
        comment="check for {{{ ARG_NAME_VALUE }}} in /etc/default/grub via GRUB_CMDLINE_LINUX_DEFAULT" />
        <extend_definition definition_ref="bootloader_disable_recovery_set_to_true"
        comment="Check GRUB_DISABLE_RECOVERY=true in /etc/default/grub" />
      </criteria>
    </criteria>
  </definition>

  <ind:textfilecontent54_test id="test_grub2_{{{ ARG_NAME }}}_argument"
  comment="check for {{{ ARG_NAME_VALUE }}} in /etc/default/grub via GRUB_CMDLINE_LINUX"
  check="all" check_existence="all_exist" version="1">
    <ind:object object_ref="object_grub2_{{{ ARG_NAME }}}_argument" />
    <ind:state state_ref="state_grub2_{{{ ARG_NAME }}}_argument" />
  </ind:textfilecontent54_test>

  <ind:textfilecontent54_object id="object_grub2_{{{ ARG_NAME }}}_argument" version="1">
    <ind:filepath>/etc/default/grub</ind:filepath>
    <ind:pattern operation="pattern match">^\s*GRUB_CMDLINE_LINUX="(.*)"$</ind:pattern>
    <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
  </ind:textfilecontent54_object>

  <ind:textfilecontent54_test id="test_grub2_{{{ ARG_NAME }}}_argument_default"
  comment="check for {{{ ARG_NAME_VALUE }}} in /etc/default/grub via GRUB_CMDLINE_LINUX_DEFAULT"
  check="all" check_existence="all_exist" version="1">
    <ind:object object_ref="object_grub2_{{{ ARG_NAME }}}_argument_default" />
    <ind:state state_ref="state_grub2_{{{ ARG_NAME }}}_argument" />
  </ind:textfilecontent54_test>

  <ind:textfilecontent54_object id="object_grub2_{{{ ARG_NAME }}}_argument_default"
  version="1">
    <ind:filepath>/etc/default/grub</ind:filepath>
    <ind:pattern operation="pattern match">^\s*GRUB_CMDLINE_LINUX_DEFAULT="(.*)"$</ind:pattern>
    <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
  </ind:textfilecontent54_object>

  <ind:textfilecontent54_state id="state_grub2_{{{ ARG_NAME }}}_argument"
  version="1">
    <ind:subexpression datatype="string" operation="pattern match">^.*{{{ ARG_NAME_VALUE }}}.*$</ind:subexpression>
  </ind:textfilecontent54_state>

</def-group>
