class PuppetMetadata::OperatingSystem
An abstraction layer over operating systems. Mostly to determine End Of Life dates.
Constants
- EOL_DATES
The EOL dates for the various operating systems @see .eol_date
Public Class Methods
eol?(operatingsystem, release, at = nil)
click to toggle source
Return whether the given operating system release is EOL at the given date
@param [String] operatingsystem
The operating system
@param [String] release
The major version of the operating system
@return [Boolean]
The EOL date for the given operating system release. Nil is returned when the either when the OS, the release or the EOL date is unknown
# File lib/puppet_metadata/operatingsystem.rb, line 145 def self.eol?(operatingsystem, release, at = nil) date = eol_date(operatingsystem, release) date && date < (at || Date.today) end
eol_date(operatingsystem, release)
click to toggle source
Return the EOL date for the given operating system release @param [String] operatingsystem
The operating system
@param [String] release
The major version of the operating system
@return [optional, Date]
The EOL date for the given operating system release. Nil is returned when the either when the OS, the release or the EOL date is unknown
# File lib/puppet_metadata/operatingsystem.rb, line 127 def self.eol_date(operatingsystem, release) releases = EOL_DATES[operatingsystem] return unless releases date = releases[release] return unless date Date.parse(date) end
latest_release(operatingsystem)
click to toggle source
Return the latest known release for a given operating system @param [String] operatingsystem The operating system @return [optional, String]
The latest major release for the given operating system, if any is known
# File lib/puppet_metadata/operatingsystem.rb, line 155 def self.latest_release(operatingsystem) releases = EOL_DATES[operatingsystem] releases&.keys&.max_by { |release| Gem::Version.new(release) } end