diff options
author | James Turnbull <james@lovedthanlost.net> | 2009-01-26 14:39:35 +1100 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-01-26 14:39:35 +1100 |
commit | c2de35f1329dbaf6c843ff0a4967955ce989f2f0 (patch) | |
tree | 53e947fa5a70e2d6690be2c6a72ed1d213dee135 | |
parent | 02c2912fb94edd37d6d7001e28714c11d5939f6d (diff) | |
download | facter-c2de35f1329dbaf6c843ff0a4967955ce989f2f0.tar.gz facter-c2de35f1329dbaf6c843ff0a4967955ce989f2f0.tar.xz facter-c2de35f1329dbaf6c843ff0a4967955ce989f2f0.zip |
Added uptime facts
-rw-r--r-- | CHANGELOG | 2 | ||||
-rw-r--r-- | lib/facter/uptime.rb | 19 | ||||
-rw-r--r-- | lib/facter/util/uptime.rb | 32 |
3 files changed, 53 insertions, 0 deletions
@@ -1,4 +1,6 @@ 1.5.3: + Added uptime facts + Fixed autotest on win32 Fixed #1870 - Added interface support for Darwin diff --git a/lib/facter/uptime.rb b/lib/facter/uptime.rb new file mode 100644 index 0000000..0ccd844 --- /dev/null +++ b/lib/facter/uptime.rb @@ -0,0 +1,19 @@ +require 'facter/util/uptime' + +Facter.add(:uptime) do + confine :operatingsystem => %w{Solaris Linux Fedora RedHat CentOS SuSE SLES Debian Ubuntu Gentoo AIX} + setcode do + Facter::Util::Uptime.get_uptime_simple + end +end + +uptime = Facter::Util::Uptime.get_uptime + +%w{days hours seconds}.each do |label| + Facter.add("uptime_" + label) do + confine :kernel => 'Linux' + setcode do + Facter::Util::Uptime.get_uptime_period(uptime, label) + end + end +end diff --git a/lib/facter/util/uptime.rb b/lib/facter/util/uptime.rb new file mode 100644 index 0000000..7c53b2c --- /dev/null +++ b/lib/facter/util/uptime.rb @@ -0,0 +1,32 @@ +# A module to gather uptime facts +# +module Facter::Util::Uptime + + def self.get_uptime_simple + time = Facter::Util::Resolution.exec('uptime') + if time =~ /up\s*(\d+\s\w+)/ + $1 + else + "unknown" + end + end + + def self.get_uptime + uptime, idletime = File.open("/proc/uptime").gets.split(" ") + uptime_seconds = uptime.to_i + end + + def self.get_uptime_period(seconds, label) + + case label + when 'days' + value = seconds / 86400 + when 'hours' + value = seconds / 3600 + when 'seconds' + seconds + end + + end + +end |