diff options
-rw-r--r-- | lib/facter/hardwaremodel.rb | 5 | ||||
-rw-r--r-- | lib/facter/id.rb | 2 | ||||
-rw-r--r-- | lib/facter/ipaddress.rb | 20 | ||||
-rw-r--r-- | lib/facter/kernelrelease.rb | 5 | ||||
-rw-r--r-- | lib/facter/macaddress.rb | 23 | ||||
-rw-r--r-- | lib/facter/uniqueid.rb | 2 |
6 files changed, 55 insertions, 2 deletions
diff --git a/lib/facter/hardwaremodel.rb b/lib/facter/hardwaremodel.rb index 8cc53f0..b69848d 100644 --- a/lib/facter/hardwaremodel.rb +++ b/lib/facter/hardwaremodel.rb @@ -1,3 +1,8 @@ Facter.add(:hardwaremodel) do setcode 'uname -m' end + + Facter.add(:hardwaremodel) do + confine :operatingsystem => :aix + setcode 'lsattr -El proc0 -a type|cut -f2 -d" "' + end diff --git a/lib/facter/id.rb b/lib/facter/id.rb index e66745f..99f822c 100644 --- a/lib/facter/id.rb +++ b/lib/facter/id.rb @@ -1,4 +1,4 @@ Facter.add(:id) do - confine :operatingsystem => %w{Solaris Linux Fedora RedHat CentOS SuSE Debian Gentoo} + confine :operatingsystem => %w{Solaris Linux Fedora RedHat CentOS SuSE Debian Gentoo AIX} setcode "whoami" end diff --git a/lib/facter/ipaddress.rb b/lib/facter/ipaddress.rb index cd6dbcf..cf80c0c 100644 --- a/lib/facter/ipaddress.rb +++ b/lib/facter/ipaddress.rb @@ -129,3 +129,23 @@ ip end end + + Facter.add(:ipaddress) do + confine :kernel => %w{AIX} + setcode do + ip = nil + output = %x{/usr/sbin/ifconfig -a} + + output.split(/^\S/).each { |str| + if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/ + tmp = $1 + unless tmp =~ /127\./ + ip = tmp + break + end + end + } + + ip + end + end diff --git a/lib/facter/kernelrelease.rb b/lib/facter/kernelrelease.rb index 9766ad9..8c6ac57 100644 --- a/lib/facter/kernelrelease.rb +++ b/lib/facter/kernelrelease.rb @@ -1,3 +1,8 @@ Facter.add(:kernelrelease) do setcode 'uname -r' end + + Facter.add(:kernelrelease) do + confine :kernel => :aix + setcode 'oslevel -s' + end diff --git a/lib/facter/macaddress.rb b/lib/facter/macaddress.rb index 647f39d..f42f8a1 100644 --- a/lib/facter/macaddress.rb +++ b/lib/facter/macaddress.rb @@ -40,3 +40,26 @@ ether end end + + Facter.add(:macaddress) do + confine :kernel => %w{AIX} + setcode do + ether = [] + ip = nil + output = %x{/usr/sbin/ifconfig -a} + output.each { |str| + if str =~ /([a-z]+\d+): flags=/ + devname = $1 + unless devname =~ /lo0/ + output2 = %x{/usr/bin/entstat #{devname}} + output2.each { |str2| + if str2 =~ /^Hardware Address: (\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2})/ + ether.push($1) + end + } + end + end + } + ether[0] + end + end diff --git a/lib/facter/uniqueid.rb b/lib/facter/uniqueid.rb index b5726a0..2eae3cc 100644 --- a/lib/facter/uniqueid.rb +++ b/lib/facter/uniqueid.rb @@ -1,4 +1,4 @@ Facter.add(:uniqueid) do setcode 'hostid', '/bin/sh' - confine :operatingsystem => %w{Solaris Linux Fedora RedHat CentOS SuSE Debian Gentoo} + confine :operatingsystem => %w{Solaris Linux Fedora RedHat CentOS SuSE Debian Gentoo AIX} end |