Sha256: e4a03944d0b53eec48f559ac00d82903198c3abc26105eef624e3397b4707ca6

Contents?: true

Size: 1.2 KB

Versions: 91

Compression:

Stored size: 1.2 KB

Contents

# Fact: system_uptime
#
# Purpose:
#   Return the system uptime in a hash in the forms of
#   seconds, hours, days and a general, human
#   readable uptime.
#
#   This fact is structured. These values are returned as a group of key-value pairs.
#
# Resolution:
#   Does basic math on the get_uptime_seconds utility
#   to calculate seconds, hours and days.
#
# Caveats:
#

require 'facter/util/uptime'

Facter.add(:system_uptime) do
  setcode do
    system_uptime = {}
    if Facter.value(:kernel) == 'windows'
      seconds = Facter::Util::Uptime.get_uptime_seconds_win
    else
      seconds = Facter::Util::Uptime.get_uptime_seconds_unix
    end

    if seconds
      system_uptime['seconds'] = seconds
      minutes                  = seconds / 60 % 60
      system_uptime['hours']   = seconds / (60 * 60)
      system_uptime['days']    = system_uptime['hours'] / 24

      case system_uptime['days']
      when 0 then system_uptime['uptime'] = "#{system_uptime['hours']}:#{"%02d" % minutes} hours"
      when 1 then system_uptime['uptime'] = "1 day"
      else system_uptime['uptime']        = "#{system_uptime['days']} days"
      end
    else
      system_uptime['uptime']  = 'unknown'
    end
    system_uptime
  end
end

Version data entries

91 entries across 91 versions & 2 rubygems

Version Path
facter-2.5.7 lib/facter/system_uptime.rb
facter-2.5.7-x86-mingw32 lib/facter/system_uptime.rb
facter-2.5.7-x64-mingw32 lib/facter/system_uptime.rb
facter-2.5.7-universal-darwin lib/facter/system_uptime.rb
facter-2.5.6-x86-mingw32 lib/facter/system_uptime.rb
facter-2.5.6-x64-mingw32 lib/facter/system_uptime.rb
facter-2.5.6-universal-darwin lib/facter/system_uptime.rb
facter-2.5.6 lib/facter/system_uptime.rb
facter-2.5.5-x86-mingw32 lib/facter/system_uptime.rb
facter-2.5.5-x64-mingw32 lib/facter/system_uptime.rb
facter-2.5.5-universal-darwin lib/facter/system_uptime.rb
facter-2.5.5 lib/facter/system_uptime.rb
facter-2.5.4-x86-mingw32 lib/facter/system_uptime.rb
facter-2.5.4-x64-mingw32 lib/facter/system_uptime.rb
facter-2.5.4-universal-darwin lib/facter/system_uptime.rb
facter-2.5.4 lib/facter/system_uptime.rb
bolt-0.24.0 vendored/facter/lib/facter/system_uptime.rb
bolt-0.23.0 vendored/facter/lib/facter/system_uptime.rb
bolt-0.22.0 vendored/facter/lib/facter/system_uptime.rb
bolt-0.21.8 vendored/facter/lib/facter/system_uptime.rb