view modules/firewall/lib/facter/iptables_persistent_version.rb @ 398:66c406eec60d

Update and fix firewall for Ubuntu * Use later version of module (not latest because our Puppet isn't supported) * Change how we define "ensure" because Ubuntu doesn't use IPv6 methods
author IBBoard <dev@ibboard.co.uk>
date Wed, 20 Apr 2022 19:04:13 +0100
parents d9352a684e62
children adf6fe9bbc17
line wrap: on
line source

# frozen_string_literal: true

Facter.add(:iptables_persistent_version) do
  confine operatingsystem: ['Debian', 'Ubuntu']
  setcode do
    # Throw away STDERR because dpkg >= 1.16.7 will make some noise if the
    # package isn't currently installed.
    os = Facter.value(:operatingsystem)
    os_release = Facter.value(:operatingsystemrelease)
    cmd = if (os == 'Debian' && (Puppet::Util::Package.versioncmp(os_release, '8.0') >= 0)) ||
             (os == 'Ubuntu' && (Puppet::Util::Package.versioncmp(os_release, '14.10') >= 0)) ||
             (os == 'Debian' && (Puppet::Util::Package.versioncmp(os_release, 'unstable') >= 0))
            "dpkg-query -Wf '${Version}' netfilter-persistent 2>/dev/null"
          else
            "dpkg-query -Wf '${Version}' iptables-persistent 2>/dev/null"
          end
    version = Facter::Util::Resolution.exec(cmd)

    if version.nil? || !version.match(%r{\d+\.\d+})
      nil
    else
      version
    end
  end
end