- purp += ", used for the following services:\n"
- nodeinfo['ldap'][0]['purpose'].sort.each do |l|
- if l =~ /\[\[(\*|-)?(.*?)\]\]/
- l = $2
- end
- if l =~ /\[\[(.*?)\|(.*?)\]\]/
- l = $2
+ entries += ".\n"
+ end
+ extra += entries
+else
+ extra += "."
+end
+purp += " " + wrap(extra) + "\n"
+
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('physicalHost'))
+ if ninfo['ldap']['physicalHost'][0] =~ /ganeti/
+ phys_host = 'cluster'
+ else
+ phys_host = 'physical host'
+ end
+ purp += wrap(" This virtual server runs on the #{phys_host} #{ninfo['ldap']['physicalHost'][0]}, " +
+ "which is hosted at #{ninfo['hoster']['longname']}."
+ )
+elsif scope.lookupvar('site::nodeinfo')['hoster']['name']
+ purp += wrap(" This server is hosted at #{ninfo['hoster']['longname']}.")
+end
+
+
+vms = []
+scope.lookupvar('site::allnodeinfo').keys.sort.each do |node|
+ if scope.lookupvar('site::allnodeinfo')[node]['physicalHost'] and scope.lookupvar('site::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 scope.lookupvar('site::allnodeinfo')[node]['purpose']
+ purp += ":\n"
+ scope.lookupvar('site::allnodeinfo')[node]['purpose'].sort.each do |l|
+ l = markup(l)
+ purp += "\t " + l + "\n"