node default {
$localinfo = yamlinfo('*', "/etc/puppet/modules/debian-org/misc/local.yaml")
$nodeinfo = nodeinfo($fqdn, "/etc/puppet/modules/debian-org/misc/local.yaml")
- $allnodeinfo = allnodeinfo("sshRSAHostKey ipHostNumber", "purpose mXRecord")
+ $allnodeinfo = allnodeinfo("sshRSAHostKey ipHostNumber", "purpose mXRecord physicalHost purpose")
notice( sprintf("hoster for %s is %s", $fqdn, getfromhash($nodeinfo, 'hoster', 'name') ) )
include munin-node
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