diff options
author | Stefan Schulte <stefan.schulte@taunusstein.net> | 2010-11-03 21:55:58 +0100 |
---|---|---|
committer | Stefan Schulte <stefan.schulte@taunusstein.net> | 2010-11-03 23:50:10 +0100 |
commit | 43e203c688399ac86d337514aecb6fa0c9def683 (patch) | |
tree | b8e45f29cfc15264ac2a2d50a38575cdabb9dea8 /lib/facter/virtual.rb | |
parent | 889e1504c101b36741141ef95cf5cbdfedd95e56 (diff) | |
download | facter-43e203c688399ac86d337514aecb6fa0c9def683.tar.gz facter-43e203c688399ac86d337514aecb6fa0c9def683.tar.xz facter-43e203c688399ac86d337514aecb6fa0c9def683.zip |
(#5040) fact virtual should detect hpvm
With HP-UX you can build virtual machines that are often refered to as
HP-VMs.
This patch detecs HP-VMs by introducing a new function hpvm? that will
check the output of /usr/bin/getconf MACHINE_MODEL. This should not
depend on any tools that might be not installed.
If inside a HP-VM the command will say something like
ia64 hp server Integrity Virtual Machine
while on real hardware the output could be
ia64 hp server rx660
so searching for "Virtual Machine" should work.
Currently it only works if the guest is also running HP-UX.
(I guess this is the most common usecase).
Diffstat (limited to 'lib/facter/virtual.rb')
-rw-r--r-- | lib/facter/virtual.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/facter/virtual.rb b/lib/facter/virtual.rb index c14a715..faefb29 100644 --- a/lib/facter/virtual.rb +++ b/lib/facter/virtual.rb @@ -1,7 +1,7 @@ require 'facter/util/virtual' Facter.add("virtual") do - confine :kernel => %w{Linux FreeBSD OpenBSD SunOS} + confine :kernel => %w{Linux FreeBSD OpenBSD SunOS HP-UX} result = "physical" @@ -9,6 +9,10 @@ Facter.add("virtual") do result = "zone" if Facter::Util::Virtual.zone? + if Facter.value(:kernel)=="HP-UX" + result = "hpvm" if Facter::Util::Virtual.hpvm? + end + if Facter::Util::Virtual.openvz? result = Facter::Util::Virtual.openvz_type() end @@ -76,11 +80,11 @@ Facter.add("virtual") do end Facter.add("is_virtual") do - confine :kernel => %w{Linux FreeBSD OpenBSD SunOS} + confine :kernel => %w{Linux FreeBSD OpenBSD SunOS HP-UX} setcode do case Facter.value(:virtual) - when "xenu", "openvzve", "vmware", "kvm", "vserver", "jail" + when "xenu", "openvzve", "vmware", "kvm", "vserver", "jail", "zone", "hpvm" true else false |