From a2bcacdc54fc9e9446bd5b084e70d60aaaeeebd2 Mon Sep 17 00:00:00 2001 From: Rein Henrichs Date: Mon, 2 Aug 2010 17:28:45 -0700 Subject: [#2330] Uptime should not make redundant system calls Rewrite of uptime facts and supporting utility methods. Works on unix, BSD, windows. No longer makes redundant system calls. Uses Facter::Util::Uptime utility methods: * Implemented uptime_seconds_unix using /proc/uptime or who -b on unix, sysctl on BSD. Added unit tests for the behaviors of get_uptime_seconds_unix: read from proc/uptime, read uptime from "sysctl -b kern.boottime", read uptime from "who -b", and return nil if nothing else works. * Implemented uptime_seconds_win using the Win32 API. Facts implemented: * uptime_{seconds,hours,days} Returns the respective integer value. * uptime Returns human readable uptime statistic that preserves original behavior. Examples: 3 days 1 day 5:08 hours 0:35 hours --- spec/fixtures/uptime/sysctl_kern_boottime | Bin 0 -> 16 bytes spec/fixtures/uptime/ubuntu_proc_uptime | 1 + spec/fixtures/uptime/who_b_boottime | 1 + 3 files changed, 2 insertions(+) create mode 100644 spec/fixtures/uptime/sysctl_kern_boottime create mode 100644 spec/fixtures/uptime/ubuntu_proc_uptime create mode 100644 spec/fixtures/uptime/who_b_boottime (limited to 'spec/fixtures') diff --git a/spec/fixtures/uptime/sysctl_kern_boottime b/spec/fixtures/uptime/sysctl_kern_boottime new file mode 100644 index 0000000..0c54fe4 Binary files /dev/null and b/spec/fixtures/uptime/sysctl_kern_boottime differ diff --git a/spec/fixtures/uptime/ubuntu_proc_uptime b/spec/fixtures/uptime/ubuntu_proc_uptime new file mode 100644 index 0000000..7e8ed74 --- /dev/null +++ b/spec/fixtures/uptime/ubuntu_proc_uptime @@ -0,0 +1 @@ +5097686.63 40756306.43 diff --git a/spec/fixtures/uptime/who_b_boottime b/spec/fixtures/uptime/who_b_boottime new file mode 100644 index 0000000..9b29dcd --- /dev/null +++ b/spec/fixtures/uptime/who_b_boottime @@ -0,0 +1 @@ +reboot ~ Aug 1 14:13 -- cgit