Revision 7e2880b6
Added by Ruediger Mueck over 10 years ago
app/helpers/operatingsystems_helper.rb | ||
---|---|---|
"SLC"
|
||
when /FreeBSD/i
|
||
"FreeBSD"
|
||
when /aix/i
|
||
"AIX"
|
||
else
|
||
return "" if record.family.blank?
|
||
record.family
|
app/models/operatingsystem.rb | ||
---|---|---|
'Archlinux' => %r{Archlinux}i,
|
||
'Gentoo' => %r{Gentoo}i,
|
||
'Solaris' => %r{Solaris}i,
|
||
'Freebsd' => %r{FreeBSD}i }
|
||
'Freebsd' => %r{FreeBSD}i,
|
||
'AIX' => %r{AIX}i }
|
||
|
||
class Jail < Safemode::Jail
|
||
allow :name, :media_url, :major, :minor, :family, :to_s, :repos, :==, :release_name, :kernel, :initrd, :pxe_type, :medium_uri
|
app/models/operatingsystems/aix.rb | ||
---|---|---|
class AIX < Operatingsystem
|
||
|
||
PXEFILES = {:kernel => "powerpc", :initrd => "initrd"}
|
||
|
||
# Override the class representation, as this breaks many rails helpers
|
||
def class
|
||
Operatingsystem
|
||
end
|
||
|
||
def pxe_type
|
||
"nim"
|
||
end
|
||
|
||
def pxedir
|
||
"boot/$arch/loader"
|
||
end
|
||
|
||
def url_for_boot(file)
|
||
pxedir + "/" + PXEFILES[file]
|
||
end
|
||
|
||
def display_family
|
||
"AIX"
|
||
end
|
||
|
||
end
|
app/services/facts_parser.rb | ||
---|---|---|
when /sid/i
|
||
orel = "99"
|
||
end
|
||
elsif os_name[/AIX/i]
|
||
majoraix, tlaix, spaix, yearaix = orel.split("-")
|
||
orel = majoraix + "." + tlaix + spaix
|
||
end
|
||
major, minor = orel.split(".")
|
||
major.to_s.gsub!(/\D/,'') unless is_numeric? major
|
test/unit/facts_aix.json | ||
---|---|---|
{"name":"hostname.domain.com","facts":{"kernel":"AIX","swapfree":"499.00 MB","processorcount":"1","fqdn":"hostname.domain.com","uniqueid":168965206,"operatingsystemrelease":"6100-06-04-1112","ipaddress":"192.168.1.102","hardwaremodel":"powerpc","rubysitedir":"/opt/puppet/pup-puppet/lib/ruby/site_ruby/1.8","ps":"ps -ef","kernelrelease":"6100-06-04-1112","domain":"domain.com","timezone":"EST","uptime_days":-286,"id":"root","uptime_hours":-6841,"processor0":[0,"PowerPC_POWER5"],"hardwareisa":"powerpc","manufacturer":"IBM","osfamily":"AIX","kernelversion":"6100","path":"/usr/bin:/etc:/usr/sbin:/usr/ucb://bin:/usr/bin/X11:/sbin:/opt/freeware/bin:.:/usr/sbin:/opt/VRTSvxfs/sbin:/opt/VRTSob/bin:/opt/VRTSvcs/bin:/opt/VRTS/bin","hostname":"hostname","puppetversion":"2.7.6","uptime":"-286 days","operatingsystem":"AIX","swapsize":"512.00 MB","kernelmajversion":"6100","macaddress":"00:00:00:ff:ee:cc","serialnumber":"SNABC123","facterversion":"1.6.5","uptime_seconds":-24624185,"rubyversion":"1.8.7","productname":"IBM,9131-52A","architecture":"powerpc"}}
|
test/unit/facts_parser_test.rb | ||
---|---|---|
refute @importer.operatingsystem.description
|
||
end
|
||
|
||
test "should set os.major and minor for from AIX facts" do
|
||
@importer = Facts::Parser.new(aix_facts)
|
||
assert_equal 'AIX', @importer.operatingsystem.family
|
||
assert_equal '6100', @importer.operatingsystem.major
|
||
assert_equal '0604', @importer.operatingsystem.minor
|
||
end
|
||
|
||
private
|
||
|
||
def facts
|
||
... | ... | |
def debian_facts
|
||
JSON.parse(File.read(File.expand_path(File.dirname(__FILE__) + '/facts_debian.json')))['facts']
|
||
end
|
||
|
||
def aix_facts
|
||
JSON.parse(File.read(File.expand_path(File.dirname(__FILE__) + '/facts_aix.json')))['facts']
|
||
end
|
||
end
|
test/unit/operatingsystem_test.rb | ||
---|---|---|
|
||
test "families_as_collection contains correct names and values" do
|
||
families = Operatingsystem.families_as_collection
|
||
assert_equal ["Arch Linux", "Debian", "FreeBSD", "Gentoo", "Red Hat", "SUSE", "Solaris", "Windows"], families.map(&:name).sort
|
||
assert_equal ["Archlinux", "Debian", "Freebsd", "Gentoo", "Redhat", "Solaris", "Suse", "Windows"], families.map(&:value).sort
|
||
assert_equal ["AIX", "Arch Linux", "Debian", "FreeBSD", "Gentoo", "Red Hat", "SUSE", "Solaris", "Windows"], families.map(&:name).sort
|
||
assert_equal ["AIX", "Archlinux", "Debian", "Freebsd", "Gentoo", "Redhat", "Solaris", "Suse", "Windows"], families.map(&:value).sort
|
||
end
|
||
end
|
||
|
Also available in: Unified diff
fixes #1489 - add AIX family and facts importer support