File: //proc/self/root/usr/lib/ruby/site_ruby/1.8/facter/util/xendomains.rb
# A module to gather running Xen Domains
#
module Facter::Util::Xendomains
XEN_COMMANDS = ['/usr/sbin/xl', '/usr/sbin/xm']
def self.xen_command
if File.file?('/usr/lib/xen-common/bin/xen-toolstack')
xen_toolstack_cmd = Facter::Util::Resolution.exec('/usr/lib/xen-common/bin/xen-toolstack')
if xen_toolstack_cmd
xen_toolstack_cmd.chomp
else
nil
end
else
XEN_COMMANDS.find { |cmd| Facter::Util::Resolution.which(cmd) }
end
end
def self.get_domains
command = self.xen_command
if command
if domains_list = Facter::Util::Resolution.exec("#{command} list 2>/dev/null")
domains = domains_list.split("\n").reject { |line| line =~ /^(Name|Domain-0)/ }
domains.map { |line| line.split(/\s/)[0] }.join(',')
end
end
end
end