X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=inline;f=modules%2Fmotd%2Ftemplates%2Fmotd.erb;h=4dc5ac5a597703d47f976a75e81523eee5bd4360;hb=a2fbbfd82aa339ef029a12e273009e9ac7690c81;hp=777ce8fcb5fdd1c2a6d9e9105a950905482921f4;hpb=83d4d78d784e5d53a9df5d5df6f5b785d10fbab0;p=mirror%2Fdsa-puppet.git
diff --git a/modules/motd/templates/motd.erb b/modules/motd/templates/motd.erb
index 777ce8fcb..4dc5ac5a5 100644
--- a/modules/motd/templates/motd.erb
+++ b/modules/motd/templates/motd.erb
@@ -12,59 +12,74 @@ def wrap(s, width=78)
end
def markup(l)
- if l =~ /\[\[(\*|-)?(.*?)\]\]/
- l = $2
- end
- if l =~ /\[\[(.*?)\|(.*?)\]\]/
- l = $2
- end
+ l = l.gsub(/\[\[(.*?)\|(.*?)\]\]/, '\2')
+ l = l.gsub(/\[\[(\*|-)?(.*?)\]\]/, '\2')
return l
end
purp = ''
-if nodeinfo.has_key?('nameinfo')
- purp += wrap(nodeinfo['nameinfo']) + "\n\n"
+if scope.lookupvar('site::nodeinfo').has_key?('nameinfo')
+ purp += wrap(scope.lookupvar('site::nodeinfo')['nameinfo']) + "\n\n"
end
+ninfo = scope.lookupvar('site::nodeinfo')
+
purp += 'Welcome to ' + fqdn
-if (nodeinfo['ldap'].has_key?('purpose'))
- if nodeinfo['ldap']['purpose'].include?('buildd')
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('purpose'))
+ p = scope.lookupvar('site::nodeinfo')['ldap']['purpose'].clone()
+ extra = ''
+
+ if p.delete('buildd')
purp += ", the Debian "
- if nodeinfo['ldap'].has_key?('architecture')
- purp += nodeinfo['ldap']['architecture'][0]
+ if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
+ purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
end
- purp += " build daemon\n"
- elsif nodeinfo['ldap']['purpose'].include?('porterbox')
+ purp += " build daemon"
+ end
+
+ if p.delete('porterbox')
purp += ", the Debian "
- if nodeinfo['ldap'].has_key?('architecture')
- purp += nodeinfo['ldap']['architecture'][0]
+ if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('architecture')
+ purp += scope.lookupvar('site::nodeinfo')['ldap']['architecture'][0]
end
- purp += " porterbox\n"
- purp += "\n"
- purp += "See 'dchroot -l' or 'schroot -l' for a list of available chroots.\n"
- if nodeinfo['ldap'].has_key?('admin')
- purp += "Please contact #{nodeinfo['ldap']['admin'][0]} for install requests,\n"
- purp += "following the recommendations in .\n"
+ purp += " porterbox"
+ extra += "\n"
+ extra += "See 'dchroot -l' or 'schroot -l' for a list of available chroots.\n"
+ if scope.lookupvar('site::nodeinfo')['ldap'].has_key?('admin')
+ extra += "Please contact #{ninfo['ldap']['admin'][0]} for install requests,\n"
+ extra += "following the recommendations in .\n"
end
- else
+ end
+
+ if p.size() > 0
purp += ", used for the following services:\n"
- nodeinfo['ldap']['purpose'].sort.each do |l|
+ scope.lookupvar('site::nodeinfo')['ldap']['purpose'].sort.each do |l|
l = markup(l)
purp += "\t" + l + "\n"
end
+ else
+ purp += ".\n"
end
+
+ purp += extra
else
- purp += "\n"
+ purp += ".\n"
end
-if (nodeinfo['ldap'].has_key?('physicalHost'))
- purp += "\nThis virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}.\n"
+purp += "\n"
+
+if (scope.lookupvar('site::nodeinfo')['ldap'].has_key?('physicalHost'))
+ purp += wrap("This virtual server runs on the physical 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 = []
-allnodeinfo.keys.sort.each do |node|
- if allnodeinfo[node]['physicalHost'] and allnodeinfo[node]['physicalHost'].include?(fqdn)
+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
@@ -72,9 +87,9 @@ unless vms.empty?
purp += "\nThe following virtual machines run on this system:\n"
vms.each do |node|
purp += "\t- #{node}"
- if allnodeinfo[node]['purpose']
+ if scope.lookupvar('site::allnodeinfo')[node]['purpose']
purp += ":\n"
- allnodeinfo[node]['purpose'].sort.each do |l|
+ scope.lookupvar('site::allnodeinfo')[node]['purpose'].sort.each do |l|
l = markup(l)
purp += "\t " + l + "\n"
end
@@ -85,9 +100,23 @@ unless vms.empty?
end
-if nodeinfo.has_key?('footer')
- purp += "\n" + wrap(nodeinfo['footer']) + "\n"
+if scope.lookupvar('::cluster')
+ purp += "\nThis server is a node in ganeti cluster: "
+ purp += scope.lookupvar('::cluster') + ".\n"
+ Puppet::Parser::Functions.function('hiera_array')
+ scope.function_hiera_array('nodes').each do |node|
+ purp += "\t" + node + "\n"
+ end
+ scope.lookupvar('::cluster_nodes').each do |node|
+ purp += "\t" + node + "\n"
+ end
end
+
+
+if scope.lookupvar('site::nodeinfo').has_key?('footer')
+ purp += "\n" + wrap(scope.lookupvar('site::nodeinfo')['footer']) + "\n"
+end
+
purp
-%>