s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
end
+def markup(l)
+ if l =~ /\[\[(\*|-)?(.*?)\]\]/
+ l = $2
+ end
+ if l =~ /\[\[(.*?)\|(.*?)\]\]/
+ l = $2
+ end
+ return l
+end
+
purp = ''
if nodeinfo.has_key?('nameinfo')
purp += wrap(nodeinfo['nameinfo']) + "\n\n"
else
purp += ", used for the following services:\n"
nodeinfo['ldap']['purpose'].sort.each do |l|
- if l =~ /\[\[(\*|-)?(.*?)\]\]/
- l = $2
- end
- if l =~ /\[\[(.*?)\|(.*?)\]\]/
- l = $2
- end
+ l = markup(l)
purp += "\t" + l + "\n"
end
end
purp += "\nThis virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}.\n"
end
+
+vms = []
+allnodeinfo.keys.sort.each do |node|
+ if allnodeinfo[node]['physicalHost'] and allnodeinfo[node]['physicalHost'].include?(fqdn)
+ vms << node
+ end
+end
+unless vms.empty?
+ purp += "\nThe following virtual machines run on this system:\n"
+ vms.each do |node|
+ purp += "\t- #{node}"
+ if allnodeinfo[node]['purpose']
+ purp += ":\n"
+ allnodeinfo[node]['purpose'].sort.each do |l|
+ l = markup(l)
+ purp += "\t " + l + "\n"
+ end
+ else
+ purp += "\n"
+ end
+ end
+end
+
+
if nodeinfo.has_key?('footer')
purp += "\n" + wrap(nodeinfo['footer']) + "\n"
end